1 |
- {"version":3,"sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/src/pdf.js","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/src/shared/global_scope.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_hide.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-dp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_dom-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_property-desc.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_redefine.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_has.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_ctx.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_a-function.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_cof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_library.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_defined.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_fails-is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/array/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.array.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-iobject.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iobject.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/object/assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gops.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-pie.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/math/log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/number/is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/number/is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-dps.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gpo.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.dom.iterable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-step.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_for-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-call.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-array-iter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/core.get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_task.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_invoke.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_microtask.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_new-promise-capability.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_perform.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_promise-resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_redefine-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-detect.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.promise.finally.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.promise.try.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-methods.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-species-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_meta.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_collection-weak.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_validate-collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_inherit-if-required.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-proto.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopd.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-map.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-collection-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-map.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-collection-from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/weak-set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.weak-set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-set.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-set.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es6/symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks-ext.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_enum-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopn-ext.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopn.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/object/values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.object.values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-to-array.js","webpack://pdfjs-dist/build/pdf/src/shared/streams_polyfill.js","webpack://pdfjs-dist/build/pdf/external/streams/streams-lib.js","webpack://pdfjs-dist/build/pdf/src/shared/url_polyfill.js","webpack://pdfjs-dist/build/pdf/external/url/url-lib.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf/node_modules/regenerator-runtime/runtime-module.js","webpack://pdfjs-dist/build/pdf/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/node_modules/webpack/buildin/module.js","webpack://pdfjs-dist/build/pdf/src/display/dom_utils.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/api_compatibility.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/xml_parser.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/webgl.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network.js"],"names":["pdfjsVersion","pdfjsBuild","pdfjsSharedUtil","require","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDOMUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","isNodeJS","PDFNodeStream","params","Response","PDFFetchStream","PDFNetworkStream","exports","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","NativeImageDecoding","NONE","DECODE","DISPLAY","PermissionFlag","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","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","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","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","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RL","FontType","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","OPS","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","UNSUPPORTED_FEATURES","unknown","forms","javaScript","smask","shadingPattern","font","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","Number","console","unreachable","base","other","url","absoluteUrl","baseUrl","_isValidProtocol","Object","value","enumerable","configurable","writable","lookup","initializer","PasswordException","UnknownErrorException","InvalidPDFException","MissingPDFException","UnexpectedResponseException","MissingDataException","XRefParseException","FormatError","AbortException","NullCharactersRegExp","warn","str","assert","bytes","length","MAX_ARGUMENT_COUNT","String","strBuf","i","chunkEnd","Math","chunk","arr","resultLength","ii","item","itemLength","arrayByteLength","pos","data","stringToBytes","x","offset","buffer8","view32","getArray","stopWhenFound","LOOP_LIMIT","loopCount","dict","values","Util","rgbBuf","m1","m2","xt","p","m","yt","d","p1","p2","r","p3","p4","v","transpose","a","b","c","first","second","sx","sy","rect","orderedX","rect1","rect2","orderedY","result","ROMAN_NUMBER_MAP","lowerCase","number","romanBuf","romanStr","PDFStringTranslateTable","n","code","decodeURIComponent","escape","unescape","encodeURIComponent","ch","capability","createObjectURL","digits","forceDataSchema","URL","blob","type","buffer","b1","b2","b3","d1","d2","d3","d4","globalScope","hasDOM","Buffer","get","scripts","document","Element","div","originalDOMTokenListToggle","DOMTokenList","arguments","force","Array","module","window","global","self","process","$export","context","INCLUDES","includes","core","hide","redefine","ctx","PROTOTYPE","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","target","expProto","source","own","out","exp","Function","__g","version","__e","dP","createDesc","object","anObject","IE8_DOM_DEFINE","toPrimitive","P","TypeError","O","Attributes","isObject","it","exec","is","S","val","fn","has","SRC","TO_STRING","$toString","TPL","isFunction","hasOwnProperty","id","px","key","aFunction","that","isRegExp","defined","cof","MATCH","toString","store","uid","Symbol","USE_SYMBOL","$exports","SHARED","mode","copyright","re","$includes","toIObject","toLength","toAbsoluteIndex","index","IS_INCLUDES","el","IObject","toInteger","min","ceil","floor","isNaN","max","UNSCOPABLES","ArrayProto","assign","getKeys","gOPS","pIE","toObject","$assign","A","B","K","T","aLen","getSymbols","isEnum","keys","j","$keys","enumBugKeys","arrayIndexOf","IE_PROTO","names","shared","log2","isInteger","isFinite","classof","test","TAG","ARG","tryGet","$at","done","point","s","l","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","getMethod","kind","proto","NAME","DEF_VALUES","DEFAULT","VALUES_BUG","Base","$native","$default","$entries","$anyNative","IteratorPrototype","methods","IS_SET","entries","create","descriptor","Constructor","next","dPs","Empty","createDict","iframe","lt","gt","iframeDocument","Properties","def","stat","ObjectProto","$iterators","wks","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","addToUnscopables","step","anInstance","forOf","speciesConstructor","task","microtask","newPromiseCapabilityModule","perform","userAgent","promiseResolve","PROMISE","versions","v8","$Promise","isNode","empty","newPromiseCapability","newGenericPromiseCapability","USE_NATIVE","promise","FakePromise","isThenable","notify","chain","ok","run","handler","reaction","resolve","reject","domain","onHandleUnhandled","exited","then","isReject","onUnhandled","unhandled","isUnhandled","reason","$reject","$resolve","wrapper","_w","_d","Internal","executor","OwnPromiseCapability","C","Promise","Wrapper","$$reject","all","remaining","$index","alreadyCalled","race","forbiddenField","name","call","isArrayIter","getIterFn","BREAK","RETURN","iterFn","f","iterable","iterator","ret","SPECIES","invoke","html","cel","setTask","clearTask","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","listener","event","args","defer","channel","port","setTimeout","set","clear","un","macrotask","Observer","flush","parent","head","last","toggle","node","characterData","e","navigator","promiseCapability","src","DESCRIPTORS","SAFE_CLOSING","riter","safe","iter","onFinally","each","meta","weak","fails","validate","WEAK_MAP","getWeak","isExtensible","uncaughtFrozenStore","tmp","$WeakMap","InternalMap","method","asc","IS_MAP","TYPE","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$create","res","isArray","original","META","setDesc","FREEZE","setMeta","w","fastKey","onFreeze","KEY","NEED","redefineAll","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","entry","getConstructor","ufstore","$iterDetect","inheritIfRequired","ADDER","fixMethod","IS_WEAK","common","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setPrototypeOf","check","buggy","gOPD","of","from","mapFn","mapping","cb","WEAK_SET","add","codePointAt","fromCharCode","$fromCodePoint","fromCodePoint","RangeError","$fails","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$DP","gOPN","$Symbol","$JSON","_stringify","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperty","D","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","tag","$set","es6Symbols","wellKnownSymbols","k","keyFor","useSetter","useSimple","defineProperty","defineProperties","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","stringify","$replacer","replacer","symbols","windowNames","getWindowNames","hiddenKeys","$values","isReadableStreamSupported","start","controller","installedModules","modules","__w_pdfjs_require__","getter","_typeof","obj","_require","elements","IsPropertyKey","Call","F","highWaterMark","size","message","AssertionError","Error","rethrowAssertionErrorRejection","_createClass","props","InvokeOrNoop","PromiseInvokeOrNoop","ValidateAndNormalizeQueuingStrategy","typeIsObject","_require2","_require3","DequeueValue","EnqueueValueWithSize","PeekQueueValue","ResetQueue","WritableStream","underlyingSink","_ref","_ref$highWaterMark","_classCallCheck","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","WritableStreamAbort","AcquireWritableStreamDefaultWriter","WritableStreamDefaultControllerError","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamCloseQueuedOrInFlight","stream","state","error","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","writeRequest","WritableStreamFinishErroring","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamDealWithRejection","defaultWriterClosedPromiseResolve","defaultWriterClosedPromiseReject","backpressure","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","WritableStreamDefaultWriter","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterGetDesiredSize","closeRequest","WritableStreamDefaultControllerClose","defaultWriterClosedPromiseResetToRejected","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","WritableStreamDefaultWriterEnsureClosedPromiseRejected","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamAddWriteRequest","WritableStreamDefaultControllerWrite","WritableStreamDefaultController","normalizedStrategy","WritableStreamDefaultControllerGetBackpressure","WritableStreamUpdateBackpressure","IsWritableStreamDefaultController","_this","startResult","WritableStreamDefaultControllerAdvanceQueueIfNeeded","strategySize","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","WritableStreamMarkCloseRequestInFlight","sinkClosePromise","WritableStreamFinishInFlightClose","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkFirstWriteRequestInFlight","sinkWritePromise","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","desiredSize","IsFiniteNonNegativeNumber","container","pair","ArrayBufferCopy","CreateIterResultObject","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","createArrayFromList","createDataProperty","_require4","_require5","ReadableStream","underlyingSource","typeString","IsReadableStream","IsReadableStreamLocked","ReadableStreamCancel","_ref2","AcquireReadableStreamDefaultReader","AcquireReadableStreamBYOBReader","_ref3","readable","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","_ref4","preventClose","preventAbort","preventCancel","Boolean","reader","shuttingDown","currentWrite","_ref5","isOrBecomesErrored","shutdownWithAction","shutdown","isOrBecomesClosed","dest","destClosed","pipeLoop","oldCurrentWrite","waitForWritesToFinish","action","doTheRest","finalize","ReadableStreamReaderGenericRelease","branches","ReadableStreamTee","IsReadableStreamDisturbed","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","ReadableStreamDefaultControllerGetDesiredSize","teeState","closedOrErrored","canceled1","canceled2","reason1","reason2","pull","create_ReadableStreamTeePullFunction","cancel1","create_ReadableStreamTeeBranch1CancelFunction","cancel2","create_ReadableStreamTeeBranch2CancelFunction","underlyingSource1","branch1Stream","underlyingSource2","branch2Stream","branch1","branch2","value1","value2","compositeReason","cancelResult","IsReadableStreamBYOBReader","readIntoRequest","IsReadableStreamDefaultReader","readRequest","ReadableStreamClose","sourceCancelPromise","defaultReaderClosedPromiseResolve","_i","defaultReaderClosedPromiseReject","ReadableStreamDefaultReader","ReadableStreamReaderGenericInitialize","defaultReaderBrandCheckException","readerLockException","ReadableStreamReaderGenericCancel","ReadableStreamDefaultReaderRead","ReadableStreamBYOBReader","IsReadableByteStreamController","byobReaderBrandCheckException","ArrayBuffer","view","ReadableStreamBYOBReaderRead","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","defaultReaderClosedPromiseResetToRejected","ReadableByteStreamControllerPullInto","ReadableStreamDefaultController","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerErrorIfNeeded","IsReadableStreamDefaultController","defaultControllerBrandCheckException","pendingPromise","ReadableStreamAddReadRequest","shouldPull","ReadableStreamDefaultControllerShouldCallPull","pullPromise","ReadableStreamGetNumReadRequests","ReadableStreamFulfillReadRequest","ReadableStreamError","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","ReadableByteStreamControllerRespond","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","ReadableByteStreamControllerClearPendingPullIntos","autoAllocateChunkSize","underlyingByteSource","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerError","byteStreamControllerBrandCheckException","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","firstDescriptor","ReadableStreamHasDefaultReader","ReadableByteStreamControllerHandleQueueDrain","pullIntoDescriptor","byteOffset","byteLength","bytesFilled","elementSize","ctor","readerType","ReadableByteStreamControllerGetDesiredSize","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerInvalidateBYOBRequest","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerCommitPullIntoDescriptor","ReadableStreamAddReadIntoRequest","emptyView","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","remainderSize","end","remainder","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","bytesWritten","ReadableByteStreamControllerRespondInClosedState","ReadableByteStreamControllerRespondInReadableState","firstPendingPullInto","transferredBuffer","transferredView","ReadableByteStreamControllerRespondInternal","transformStream","readableStream","writableStream","PromiseInvokeOrPerformFallback","TransformStreamCloseReadableInternal","TransformStreamErrorIfNeeded","maybeBackpressure","TransformStreamSetBackpressure","TransformStreamErrorInternal","resolution","transformStreamController","TransformStreamEnqueueToReadable","transformer","transformPromise","TransformStreamReadableReadyPromise","TransformStreamSink","TransformStreamTransform","flushPromise","TransformStreamSource","TransformStreamDefaultController","IsTransformStream","IsTransformStreamDefaultController","TransformStreamCloseReadable","TransformStreamError","readableController","TransformStream","readableStrategy","writableStrategy","startPromise_resolve","startPromise","sink","isURLSupported","u","PolyfillURL","OriginalURL","relative","relativePathDotMapping","h","invalid","unicode","ALPHA","ALPHANUMERIC","errors","stateOverride","cursor","seenAt","seenBracket","input","err","isRelativeScheme","percentEscape","nextC","nextNextC","cp","tempC","IDNAToASCII","temp","parseInt","percentEscapeQuery","parse","JURL","authority","host","DEFAULT_RANGE_CHUNK_SIZE","isWorkerDisabled","fakeWorkerFilesLoader","useRequireEnsure","__non_webpack_require__","requirejs","fallbackWorkerSrc","dynamicLoaderSupported","worker","pdfjsFilePath","createPDFNetworkStream","isArrayBuffer","range","rangeTransport","pdfBytes","NativeImageDecoderValues","apiCompatibilityParams","setVerbosityLevel","workerParams","postMessageTransfers","GlobalWorkerOptions","PDFWorker","docId","networkStream","initialData","disableRange","disableStream","httpHeaders","withCredentials","rangeChunkSize","messageHandler","transport","pdfDataRangeTransport","apiVersion","password","disableAutoFetch","maxImageSize","disableFontFace","disableCreateObjectURL","docBaseUrl","nativeImageDecoderSupport","ignoreErrors","isEvalSupported","PDFDocumentLoadingTask","nextDocumentId","constructor","transportDestroyed","deprecated","addRangeListener","addProgressListener","addProgressiveReadListener","onDataRange","onDataProgress","onDataProgressiveRead","requestDataRange","getPage","getPageIndex","getDestination","pdfBug","getViewport","rotate","dontFlip","viewBox","scale","rotation","getAnnotations","intent","enableWebGL","renderInteractiveForms","imageLayer","canvasFactory","background","render","stats","renderingIntent","canvasFactoryInstance","webGLContext","enable","intentState","fnArray","argsArray","lastChunk","pageIndex","complete","internalRenderTask","callback","canvasContext","viewport","objs","commonObjs","operatorList","pageNumber","useRequestAnimationFrame","renderTask","transparency","opListTask","streamTextContent","normalizeWhitespace","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","combineTextItems","textContent","getTextContent","pump","items","styles","waitOn","renderCompleted","resetStats","cleanup","_tryCleanup","_startRenderPage","_renderPageChunk","operatorListChunk","postMessage","cloned","transferable","transfers","desc","cloneValue","addEventListener","removeEventListener","pdfWorkerPorts","nextFakeWorkerId","fakeWorkerFilesLoadedCapability","mainWorkerMessageHandler","getMainThreadWorkerMessageHandler","loader","getWorkerSrc","_initializeFromPort","workerSrc","isSameOrigin","createCDNWrapper","terminateEarly","onWorkerError","sendTest","testObj","info","setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","loadingTask","isCompressed","page","terminated","evt","loaded","total","headersCapability","fullReader","isStreamingSupported","isRangeSupported","contentLength","rangeReader","pdfInfo","updatePassword","exception","exportedError","exportedData","fontRegistry","registerFont","onUnsupportedFeature","fontReady","fontObjs","pageProxy","img","MAX_IMAGE_SIZE_TO_STORE","imageData","components","width","height","rgbaLength","buf","tmpCanvas","tmpCtx","_onUnsupportedFeature","pageInfo","ref","results","metadata","contentDispositionFilename","_ensureObj","resolved","InternalRenderTask","canvasInRendering","initializeGraphics","build","g","hadRuntime","oldRuntime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","inModule","runtime","protoGenerator","outerFn","generator","tryLocsList","makeInvokeMethod","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","prototype","genFun","__await","record","tryCatch","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","doneResult","delegate","delegateResult","maybeInvokeDelegate","tryLoc","locs","iteratorMethod","Context","reset","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","finish","resetTryEntry","thrown","delegateYield","resultName","nextLoc","DEFAULT_LINK_REL","SVG_NS","canvas","canvasAndContext","destroy","fetch","request","XMLHttpRequest","cMapData","compressionType","svg","createElement","offsetX","offsetY","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","clone","convertToViewportPoint","convertToViewportRectangle","tl","br","convertToPdfPoint","RenderingCancelledException","LinkTarget","SELF","BLANK","PARENT","TOP","LinkTargetStringMap","link","removeNullCharacters","LinkTargetValues","targetIndex","anchor","query","time","Date","timeEnd","times","longest","span","duration","script","requests","nextRequestId","addNativeFontFace","insertRule","styleElement","styleSheet","bind","rules","fontsToLoad","fontLoadPromises","getNativeFontPromise","nativeFontFace","rule","_queueLoadingCallback","otherRequest","_prepareFontLoadEvent","FontLoader","chunk1","chunk2","called","isFontReady","loadTestFontId","COMMENT_OFFSET","spliceString","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","int32","string32","btoa","fonts","supported","shadow","getLoadTestFont","atob","IsEvalSupportedCached","translatedData","bytesToString","getPathGenerator","cmds","featureId","js","current","compatibilityParams","isIE","isIOSChrome","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","IsLittleEndianCached","ad_bc","bc_ad","old","prev","cosValue","sinValue","CachedCanvases","getCanvas","canvasEntry","addContextCurrentTransform","POINT_TO_PROCESS_LIMIT","imgData","width1","points","POINT_TYPES","lineSize","data0","mask","elem","count","j0","sum","steps","outlines","coords","p0","pp","drawOutline","o","jj","CanvasExtraState","setCurrentPoint","CanvasGraphics","EXECUTION_TIME","EXECUTION_STEPS","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","thisChunkHeight","destPos","srcDiff","kEnd","kEndUnrolled","srcByte","elemsInThisChunk","properties","property","sourceCtx","destCtx","alpha","alpha_","r0","g0","b0","maskData","transferMap","layerData","y","hasBackdrop","backdrop","subtype","composeFn","PIXELS_TO_PROCESS","row","chunkHeight","maskCtx","layerCtx","composeSMaskBackdrop","composed","layer","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","beginDrawing","transparentCanvas","resetCtxToDefault","executeOperatorList","executionStartIdx","argsArrayLen","chunkOperations","endTime","stepper","fnId","deps","nn","depObjId","objsPool","continueCallback","endDrawing","states","beginSMaskGroup","activeSMask","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","copyCtxState","suspendSMaskGroup","composeSMask","deltaTransform","resumeSMaskGroup","endSMaskGroup","ops","xw","yh","consumePath","strokeColor","fillColor","isPatternFill","needRestore","paths","path","fontObj","bold","italic","typeface","browserFontSize","paintChar","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","enabled","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","glyphs","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","patternTransform","lineWidth","glyph","isNum","restoreNeeded","spacing","character","accent","vmetric","vx","vy","scaledX","scaledY","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","showType3Text","fontMatrix","isTextInvisible","spacingLength","transformed","urx","ury","getColorN_Pattern","IR","color","baseTransform","canvasGraphicsFactory","createCanvasGraphics","getShadingPatternFromIR","inv","bl","ul","ur","x0","y0","x1","y1","matrix","bbox","group","bounds","canvasBounds","scaleX","scaleY","startTransformInverse","domImage","position","objId","left","top","maskCanvas","putBinaryImageMask","positions","images","image","map","widthScale","heightScale","imgToPaint","putBinaryImageData","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getSinglePixelWidth","inverse","getCanvasPosition","ShadingIRs","fromIR","raw","colorStops","r1","getPattern","grad","createMeshCanvas","colors","rowSize","c1","c2","c3","x2","y2","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","ps","figure","cs","verticesPerRow","rows","cols","q","drawTriangle","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","combinesScale","paddedWidth","paddedHeight","backgroundColor","figures","cachedCanvases","drawFigure","owner","matrixScale","temporaryPatternCanvas","shadingIR","TilingPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","xstep","ystep","paintType","tilingType","topLeft","botRight","curMatrixScale","combinedScale","graphics","tmpTranslate","setScale","transformToScale","tmpScale","scaleToContext","clipBbox","bboxWidth","bboxHeight","setFillAndStrokeStyleToContext","cssColor","thisArg","callbacksCapabilities","ah","callbackId","wrapReason","sourceName","targetName","comObj","isReply","makeReasonSerializable","MessageHandler","on","send","sendWithPromise","sendWithStream","streamId","startCapability","startCall","isClosed","pullCapability","cancel","cancelCapability","_createStreamSink","sendStreamRequest","success","streamSink","enqueue","lastDesiredSize","close","sinkCapability","onPull","onCancel","isCancelled","resolveCall","_processStreamMessage","sendStreamResponse","deleteStreamController","resolveOrReject","parser","xmlDocument","_repair","chars","_parse","rdf","nodeName","children","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","_resolveEntities","entity","_parseContent","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","pi","q2","complexDoctype","doctypeContent","content","text","onResolveEntity","onPi","onComment","onCdata","onDoctype","onText","onBeginElement","onEndElement","onError","child","parseFromString","documentElement","isWhitespaceString","lastElement","PDFDataTransportStream","begin","_onReceiveData","found","_onProgress","firstReader","_removeRangeReader","getFullReader","queuedChunks","getRangeReader","cancelAllRequests","readers","PDFDataTransportStreamReader","_enqueue","requestCapability","PDFDataTransportStreamRangeReader","requestsCapability","WebGLUtils","drawFigures","shader","gl","compiled","errorMsg","loadShader","program","shaders","linked","texture","currentCanvas","currentGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","generateGL","vertexShader","createVertexShader","fragmentShader","createFragmentShader","cache","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","initSmaskGL","createTexture","maskTexture","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","tryInitGL","renderTextLayer","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","styleBuf","textDiv","textDivProperties","style","angle","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","isAllWhitespace","geom","tx","fontHeight","fontAscent","angleCos","angleSin","divWidth","divHeight","right","bottom","textDivs","textDivsLength","expanded","expandBounds","divProperties","ts","t","findPositiveMin","boxScale","box","x1New","x2New","expandBoundsLTR","boxes","fakeBoundary","horizon","boundary","maxXNew","horizonPart","affectedBoundary","xNew","changedHorizon","lastBoundary","useBoundary","used","textContentItemsStr","TextLayerRenderTask","clearTimeout","_processItems","len","appendText","_layoutText","textLayerFrag","fontFamily","_render","styleCache","textItems","textStyles","expandTextDivs","expand","padding","renderParameters","textContentStream","enhanceTextSelection","parameters","fieldType","isRenderable","ignoreBorder","_createContainer","horizontalRadius","verticalRadius","radius","_createPopup","trigger","popupElement","title","contents","hideWrapper","popup","addLinkAttributes","linkService","rel","_bindLink","_bindNamedAction","JSON","TEXT_ALIGNMENT","element","fieldWidth","combWidth","_setTextStyle","fallbackName","selectElement","option","optionElement","IGNORE_TYPES","selector","parentElement","parentLeft","parseFloat","parentWidth","BACKGROUND_ENLIGHT","_formatContents","lines","line","pin","_show","unpin","_hide","borderWidth","square","circle","vertices","polyline","inkLists","inkList","getFilenameFromUrl","stringToPDFString","filename","downloadManager","imageResourcesPath","svgFactory","SVGGraphics","SVG_DEFAULTS","fontStyle","fontWeight","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc","body","crc32","deflateSyncUncompressed","output","level","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","colorType","bitDepth","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","writePngChunk","encode","SVGExtraState","opTree","opListLen","opList","pf","XML_NS","XLINK_NS","clipCount","maskCount","loadDependencies","fnArrayLen","transformMatrix","getSVG","svgElement","convertOpList","REVOPS","opListToTree","executeOpTree","opTreeLen","textMatrix","pm","addFontStyle","details","setStrokeAlpha","setFillAlpha","opLength","clipId","clipPath","clipElement","_setStrokeAttributes","imgObj","imgEl","imgSrc","cliprect","_initialize","definitions","rootGroup","_ensureClipGroup","clipGroup","_ensureTransformGroup","fs","http","https","fileUriRegex","parsedUrl","parseUrl","_error","_setReadableStream","protocol","auth","headers","handleResponse","response","getResponseHeader","isHttp","suggestedLength","extractFilenameFromHeader","createRequestOptions","returnValues","allowRangeRequests","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","status","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","decoder","fatal","textdecode","matches","parts","part","quotindex","encodingend","extvalue","encoding","langvalue","signal","abortController","credentials","redirect","createFetchOptions","validateResponseStatus","createResponseStatusError","rangeStr","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","array","supportsMozChunked","NetworkManager","requestRange","listeners","requestFull","xhrId","pendingRequest","useMozChunkedLoading","onProgress","getArrayBuffer","onStateChange","xhrStatus","ok_response_on_range_request","rangeHeader","hasPendingRequests","getRequestXhr","isStreamingRequest","isPendingRequest","isLoadedRequest","abortAllRequests","_onRangeRequestReaderClosed","onHeadersReceived","onProgressiveData","onDone","manager","PDFNetworkStreamFullRequestReader","_onHeadersReceived","fullRequestXhrId","fullRequestXhr","networkManager","_onProgressiveData","_onDone","_onError","PDFNetworkStreamRangeRequestReader","_close"],"mappings":"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","file":"pdf.js","sourcesContent":["(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\"] = factory();\n})(this, function() {\nreturn "," \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","/* Copyright 2012 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/* eslint-disable no-unused-vars, no-restricted-globals */\n\n'use strict';\n\nvar pdfjsVersion =\n typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_VERSION') : void 0;\nvar pdfjsBuild =\n typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_BUILD') : void 0;\n\nvar pdfjsSharedUtil = require('./shared/util.js');\nvar pdfjsDisplayAPI = require('./display/api.js');\nvar pdfjsDisplayTextLayer = require('./display/text_layer.js');\nvar pdfjsDisplayAnnotationLayer = require('./display/annotation_layer.js');\nvar pdfjsDisplayDOMUtils = require('./display/dom_utils.js');\nvar pdfjsDisplaySVG = require('./display/svg.js');\nlet pdfjsDisplayWorkerOptions = require('./display/worker_options.js');\nlet pdfjsDisplayAPICompatibility = require('./display/api_compatibility.js');\n\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n const isNodeJS = require('./shared/is_node.js');\n if (isNodeJS()) {\n let PDFNodeStream = require('./display/node_stream.js').PDFNodeStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n return new PDFNodeStream(params);\n });\n } else if (typeof Response !== 'undefined' && 'body' in Response.prototype &&\n typeof ReadableStream !== 'undefined') {\n let PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n return new PDFFetchStream(params);\n });\n } else {\n let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n return new PDFNetworkStream(params);\n });\n }\n} else if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;\n let PDFFetchStream;\n let isChromeWithFetchCredentials = function() {\n // fetch does not include credentials until Chrome 61.0.3138.0 and later.\n // https://chromium.googlesource.com/chromium/src/+/2e231cf052ca5e68e22baf0008ac9e5e29121707\n try {\n // Indexed properties on window are read-only in Chrome 61.0.3151.0+\n // https://chromium.googlesource.com/chromium/src.git/+/58ab4a971b06dec13e4edf9de8382ca6847f6190\n window[999] = 123; // should throw. Note: JS strict mode MUST be enabled.\n delete window[999];\n return false;\n } catch (e) {\n return true;\n }\n };\n if (typeof Response !== 'undefined' && 'body' in Response.prototype &&\n typeof ReadableStream !== 'undefined' && isChromeWithFetchCredentials()) {\n PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;\n }\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n if (PDFFetchStream && /^https?:/i.test(params.url)) {\n // \"fetch\" is only supported for http(s), not file/ftp.\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n}\n\nexports.build = pdfjsDisplayAPI.build;\nexports.version = pdfjsDisplayAPI.version;\nexports.getDocument = pdfjsDisplayAPI.getDocument;\nexports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;\nexports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;\nexports.PDFWorker = pdfjsDisplayAPI.PDFWorker;\nexports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;\nexports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;\nexports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;\nexports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;\nexports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;\nexports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;\nexports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;\nexports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;\nexports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;\nexports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;\nexports.UnexpectedResponseException =\n pdfjsSharedUtil.UnexpectedResponseException;\nexports.OPS = pdfjsSharedUtil.OPS;\nexports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;\nexports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;\nexports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;\nexports.createObjectURL = pdfjsSharedUtil.createObjectURL;\nexports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;\nexports.shadow = pdfjsSharedUtil.shadow;\nexports.Util = pdfjsSharedUtil.Util;\nexports.ReadableStream = pdfjsSharedUtil.ReadableStream;\nexports.URL = pdfjsSharedUtil.URL;\nexports.RenderingCancelledException =\n pdfjsDisplayDOMUtils.RenderingCancelledException;\nexports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl;\nexports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget;\nexports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes;\nexports.loadScript = pdfjsDisplayDOMUtils.loadScript;\nexports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;\nexports.apiCompatibilityParams =\n pdfjsDisplayAPICompatibility.apiCompatibilityParams;\n","/* Copyright 2012 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\nimport './compatibility';\nimport { ReadableStream } from './streams_polyfill';\nimport { URL } from './url_polyfill';\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display',\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\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};\n\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};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\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};\n\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};\n\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};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst StreamType = {\n UNKNOWN: 0,\n FLATE: 1,\n LZW: 2,\n DCT: 3,\n JPX: 4,\n JBIG: 5,\n A85: 6,\n AHX: 7,\n CCF: 8,\n RL: 9,\n};\n\nconst FontType = {\n UNKNOWN: 0,\n TYPE1: 1,\n TYPE1C: 2,\n CIDFONTTYPE0: 3,\n CIDFONTTYPE0C: 4,\n TRUETYPE: 5,\n CIDFONTTYPE2: 6,\n TYPE3: 7,\n OPENTYPE: 8,\n TYPE0: 9,\n MMTYPE1: 10,\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\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};\n\nconst UNSUPPORTED_FEATURES = {\n unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font',\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\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\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log('Info: ' + msg);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log('Warning: ' + msg);\n }\n}\n\n// Deprecated API function -- display regardless of the `verbosity` setting.\nfunction deprecated(details) {\n console.log('Deprecated API usage: ' + details);\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\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new URL(baseUrl);\n if (!base.origin || base.origin === 'null') {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n var other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the whitelisted protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} baseUrl - An absolute URL.\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) { /* `new URL()` will throw on incorrect data. */ }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, { value,\n enumerable: true,\n configurable: true,\n writable: false, });\n return value;\n}\n\nfunction getLookupTableFactory(initializer) {\n var lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\n\nvar PasswordException = (function PasswordExceptionClosure() {\n function PasswordException(msg, code) {\n this.name = 'PasswordException';\n this.message = msg;\n this.code = code;\n }\n\n PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n\n return PasswordException;\n})();\n\nvar UnknownErrorException = (function UnknownErrorExceptionClosure() {\n function UnknownErrorException(msg, details) {\n this.name = 'UnknownErrorException';\n this.message = msg;\n this.details = details;\n }\n\n UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n\n return UnknownErrorException;\n})();\n\nvar InvalidPDFException = (function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n\n return InvalidPDFException;\n})();\n\nvar MissingPDFException = (function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n\n return MissingPDFException;\n})();\n\nvar UnexpectedResponseException =\n (function UnexpectedResponseExceptionClosure() {\n function UnexpectedResponseException(msg, status) {\n this.name = 'UnexpectedResponseException';\n this.message = msg;\n this.status = status;\n }\n\n UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n\n return UnexpectedResponseException;\n})();\n\nvar MissingDataException = (function MissingDataExceptionClosure() {\n function MissingDataException(begin, end) {\n this.begin = begin;\n this.end = end;\n this.message = 'Missing data [' + begin + ', ' + end + ')';\n }\n\n MissingDataException.prototype = new Error();\n MissingDataException.prototype.name = 'MissingDataException';\n MissingDataException.constructor = MissingDataException;\n\n return MissingDataException;\n})();\n\nvar XRefParseException = (function XRefParseExceptionClosure() {\n function XRefParseException(msg) {\n this.message = msg;\n }\n\n XRefParseException.prototype = new Error();\n XRefParseException.prototype.name = 'XRefParseException';\n XRefParseException.constructor = XRefParseException;\n\n return XRefParseException;\n})();\n\n/**\n * Error caused during parsing PDF data.\n */\nlet FormatError = (function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n\n return FormatError;\n})();\n\n/**\n * Error used to indicate task cancellation.\n */\nlet AbortException = (function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n\n return AbortException;\n})();\n\nvar 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 return str.replace(NullCharactersRegExp, '');\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === 'object' &&\n bytes.length !== undefined, 'Invalid argument for bytesToString');\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n var strBuf = [];\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join('');\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n var length = str.length;\n var bytes = new Uint8Array(length);\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xFF;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array} arr - the array of the arrays (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n // Shortcut: if first and only item is Uint8Array, return it.\n if (arr.length === 1 && (arr[0] instanceof Uint8Array)) {\n return arr[0];\n }\n var resultLength = 0;\n var i, ii = arr.length;\n var item, itemLength;\n for (i = 0; i < ii; i++) {\n item = arr[i];\n itemLength = arrayByteLength(item);\n resultLength += itemLength;\n }\n var pos = 0;\n var data = new Uint8Array(resultLength);\n for (i = 0; i < ii; i++) {\n item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === 'string') {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff,\n (value >> 8) & 0xff, value & 0xff);\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, start) {\n return (data[start] << 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) |\n (data[offset + 2] << 8) | data[offset + 3]) >>> 0;\n}\n\n// Lazy test the endianness of the platform\n// NOTE: This will be 'true' for simulated TypedArrays\nfunction isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return (view32[0] === 1);\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(''); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned. To avoid infinite loops, the traversal is stopped when\n * the loop limit is reached.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n * array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n * the key is found. If set to `false`, we always walk up the entire parent\n * chain, for example to be able to find `\\Resources` placed on multiple\n * levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({ dict, key, getArray = false,\n stopWhenFound = true, }) {\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 if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n if (!values) {\n values = [];\n }\n values.push(value);\n }\n if (++loopCount > LOOP_LIMIT) {\n warn(`getInheritableProperty: maximum loop count exceeded for \"${key}\"`);\n break;\n }\n dict = dict.get('Parent');\n }\n return values;\n}\n\nvar Util = (function UtilClosure() {\n function Util() {}\n\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\n // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids\n // creating many intermediate strings.\n Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join('');\n };\n\n // Concatenates two transformation matrices together and returns the result.\n Util.transform = function Util_transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5]\n ];\n };\n\n // For 2d affine transforms\n Util.applyTransform = function Util_applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n };\n\n Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var 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 // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n Util.getAxialAlignedBoundingBox =\n function Util_getAxialAlignedBoundingBox(r, m) {\n\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1])\n ];\n };\n\n Util.inverseTransform = function Util_inverseTransform(m) {\n var d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n };\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2]\n ];\n };\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n Util.singularValueDecompose2dScale =\n function Util_singularValueDecompose2dScale(m) {\n\n var transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n var first = (a + d) / 2;\n var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n };\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n };\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'false'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n // Order points along the axes\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n result = [];\n\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n // X: first and second points belong to different rectangles?\n if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {\n // Intersection must be between second and third points\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return false;\n }\n\n // Y: first and second points belong to different rectangles?\n if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {\n // Intersection must be between second and third points\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return false;\n }\n\n return result;\n };\n\n return Util;\n})();\n\nconst ROMAN_NUMBER_MAP = [\n '', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM',\n '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC',\n '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {integer} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default value is `false`.\n * @return {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n assert(Number.isInteger(number) && number > 0,\n 'The number should be a positive integer.');\n let pos, romanBuf = [];\n // Thousands\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push('M');\n }\n // Hundreds\n pos = (number / 100) | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n // Tens\n pos = (number / 10) | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n // Ones\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n\n const romanStr = romanBuf.join('');\n return (lowerCase ? romanStr.toLowerCase() : romanStr);\n}\n\nconst PDFStringTranslateTable = [\n 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 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 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 0, 0, 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 0, 0, 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 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n var i, n = str.length, strBuf = [];\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n // UTF16BE BOM\n for (i = 2; i < n; i += 2) {\n strBuf.push(String.fromCharCode(\n (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)));\n }\n } else {\n for (i = 0; i < n; ++i) {\n var code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\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 (var key in obj) {\n return false;\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\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isSpace(ch) {\n return (ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A);\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A promise object.\n * @property {function} resolve - Fulfills the promise.\n * @property {function} reject - Rejects the promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @return {PromiseCapability} A capability object contains:\n * - a Promise, resolve and reject methods.\n */\nfunction createPromiseCapability() {\n var capability = {};\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = resolve;\n capability.reject = reject;\n });\n return capability;\n}\n\nvar createObjectURL = (function createObjectURLClosure() {\n // Blob/createObjectURL is not available, falling back to data schema.\n var digits =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], { type: contentType, });\n return URL.createObjectURL(blob);\n }\n\n var buffer = 'data:' + contentType + ';base64,';\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xFF;\n var b2 = data[i + 1] & 0xFF;\n var b3 = data[i + 2] & 0xFF;\n var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);\n var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;\n var d4 = i + 2 < ii ? (b3 & 0x3F) : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n})();\n\nexport {\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n OPS,\n VerbosityLevel,\n UNSUPPORTED_FEATURES,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationType,\n FontType,\n ImageKind,\n CMapCompressionType,\n AbortException,\n InvalidPDFException,\n MissingDataException,\n MissingPDFException,\n NativeImageDecoding,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n StreamType,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n Util,\n toRomanNumerals,\n XRefParseException,\n FormatError,\n arrayByteLength,\n arraysToBytes,\n assert,\n bytesToString,\n createPromiseCapability,\n createObjectURL,\n deprecated,\n getInheritableProperty,\n getLookupTableFactory,\n getVerbosityLevel,\n info,\n isArrayBuffer,\n isBool,\n isEmptyObj,\n isNum,\n isString,\n isSpace,\n isSameOrigin,\n createValidAbsoluteUrl,\n isLittleEndian,\n isEvalSupported,\n log2,\n readInt8,\n readUint16,\n readUint32,\n removeNullCharacters,\n ReadableStream,\n URL,\n setVerbosityLevel,\n shadow,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n utf8StringToString,\n warn,\n unreachable,\n};\n","/* Copyright 2017 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\nconst globalScope = require('./global_scope');\n\n// Skip compatibility checks for the extensions and if we already ran\n// this module.\nif ((typeof PDFJSDev === 'undefined' ||\n !PDFJSDev.test('FIREFOX || MOZCENTRAL')) &&\n !globalScope._pdfjsCompatibilityChecked) {\n\nglobalScope._pdfjsCompatibilityChecked = true;\n\n// In the Chrome extension, most of the polyfills are unnecessary.\n// We support down to Chrome 49, because it's still commonly used by Windows XP\n// users - https://github.com/mozilla/pdf.js/issues/9397\nif (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('CHROME')) {\n\nconst isNodeJS = require('./is_node');\n\nconst hasDOM = typeof window === 'object' && typeof document === 'object';\n\n// Support: Node.js\n(function checkNodeBtoa() {\n if (globalScope.btoa || !isNodeJS()) {\n return;\n }\n globalScope.btoa = function(chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, 'binary').toString('base64');\n };\n})();\n\n// Support: Node.js\n(function checkNodeAtob() {\n if (globalScope.atob || !isNodeJS()) {\n return;\n }\n globalScope.atob = function(input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, 'base64').toString('binary');\n };\n})();\n\n// Provides document.currentScript support\n// Support: IE, Chrome<29.\n(function checkCurrentScript() {\n if (!hasDOM) {\n return;\n }\n if ('currentScript' in document) {\n return;\n }\n Object.defineProperty(document, 'currentScript', {\n get() {\n var scripts = document.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n },\n enumerable: true,\n configurable: true,\n });\n})();\n\n// Provides support for ChildNode.remove in legacy browsers.\n// Support: IE.\n(function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n Element.prototype.remove = function () {\n if (this.parentNode) {\n // eslint-disable-next-line mozilla/avoid-removeChild\n this.parentNode.removeChild(this);\n }\n };\n})();\n\n// Provides support for DOMTokenList.prototype.toggle, with the optional\n// \"force\" parameter, in legacy browsers.\n// Support: IE\n(function checkDOMTokenListToggle() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n const div = document.createElement('div');\n if (div.classList.toggle('test', 0) === false) {\n return;\n }\n const originalDOMTokenListToggle = DOMTokenList.prototype.toggle;\n\n DOMTokenList.prototype.toggle = function(token) {\n if (arguments.length > 1) {\n const force = !!arguments[1];\n return (this[force ? 'add' : 'remove'](token), force);\n }\n return originalDOMTokenListToggle(token);\n };\n})();\n\n// Provides support for String.prototype.includes in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringIncludes() {\n if (String.prototype.includes) {\n return;\n }\n require('core-js/fn/string/includes');\n})();\n\n// Provides support for Array.prototype.includes in legacy browsers.\n// Support: IE, Chrome<47\n(function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n require('core-js/fn/array/includes');\n})();\n\n// Provides support for Object.assign in legacy browsers.\n// Support: IE\n(function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n require('core-js/fn/object/assign');\n})();\n\n// Provides support for Math.log2 in legacy browsers.\n// Support: IE, Chrome<38\n(function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n Math.log2 = require('core-js/fn/math/log2');\n})();\n\n// Provides support for Number.isNaN in legacy browsers.\n// Support: IE.\n(function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = require('core-js/fn/number/is-nan');\n})();\n\n// Provides support for Number.isInteger in legacy browsers.\n// Support: IE, Chrome<34\n(function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = require('core-js/fn/number/is-integer');\n})();\n\n// Support: IE, Safari<8, Chrome<32\n(function checkPromise() {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalScope.Promise) {\n return;\n }\n globalScope.Promise = require('core-js/fn/promise');\n})();\n\n// Support: IE<11, Safari<8, Chrome<36\n(function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n globalScope.WeakMap = require('core-js/fn/weak-map');\n})();\n\n// Support: IE11\n(function checkWeakSet() {\n if (globalScope.WeakSet) {\n return;\n }\n globalScope.WeakSet = require('core-js/fn/weak-set');\n})();\n\n// Provides support for String.codePointAt in legacy browsers.\n// Support: IE11.\n(function checkStringCodePointAt() {\n if (String.codePointAt) {\n return;\n }\n String.codePointAt = require('core-js/fn/string/code-point-at');\n})();\n\n// Provides support for String.fromCodePoint in legacy browsers.\n// Support: IE11.\n(function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n String.fromCodePoint = require('core-js/fn/string/from-code-point');\n})();\n\n// Support: IE\n(function checkSymbol() {\n if (globalScope.Symbol) {\n return;\n }\n require('core-js/es6/symbol');\n})();\n\n} // End of !PDFJSDev.test('CHROME')\n\n// Provides support for Object.values in legacy browsers.\n// Support: IE, Chrome<54\n(function checkObjectValues() {\n if (Object.values) {\n return;\n }\n Object.values = require('core-js/fn/object/values');\n})();\n\n}\n","/* Copyright 2017 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/* globals module */\n\nmodule.exports =\n (typeof window !== 'undefined' && window.Math === Math) ? window :\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global.Math === Math) ? global :\n (typeof self !== 'undefined' && self.Math === Math) ? self : {};\n","/* Copyright 2018 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/* globals module, process */\n\nmodule.exports = function isNodeJS() {\n // NW.js is a browser context, but copies some Node.js objects; see\n // http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n return typeof process === 'object' &&\n process + '' === '[object process]' &&\n !process.versions['nw'];\n};\n","require('../../modules/es6.string.includes');\nmodule.exports = require('../../modules/_core').String.includes;\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","require('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","require('../../modules/es6.math.log2');\nmodule.exports = require('../../modules/_core').Math.log2;\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","require('../../modules/es6.number.is-nan');\nmodule.exports = require('../../modules/_core').Number.isNaN;\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = {};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es7.weak-map.of');\nrequire('../modules/es7.weak-map.from');\nmodule.exports = require('../modules/_core').WeakMap;\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\nrequire('./_set-collection-of')('WeakMap');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\nrequire('./_set-collection-from')('WeakMap');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-set');\nrequire('../modules/es7.weak-set.of');\nrequire('../modules/es7.weak-set.from');\nmodule.exports = require('../modules/_core').WeakSet;\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\nrequire('./_set-collection-of')('WeakSet');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\nrequire('./_set-collection-from')('WeakSet');\n","require('../../modules/es6.string.code-point-at');\nmodule.exports = require('../../modules/_core').String.codePointAt;\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","require('../../modules/es6.string.from-code-point');\nmodule.exports = require('../../modules/_core').String.fromCodePoint;\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.to-string');\nmodule.exports = require('../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","require('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n","/* Copyright 2017 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/* eslint-disable no-restricted-globals */\n\nlet isReadableStreamSupported = false;\nif (typeof ReadableStream !== 'undefined') {\n // MS Edge may say it has ReadableStream but they are not up to spec yet.\n try {\n // eslint-disable-next-line no-new\n new ReadableStream({\n start(controller) {\n controller.close();\n },\n });\n isReadableStreamSupported = true;\n } catch (e) {\n // The ReadableStream constructor cannot be used.\n }\n}\nif (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n} else {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n class DummyReadableStream {\n constructor() {\n throw new Error('The current image decoders are synchronous, ' +\n 'hence `ReadableStream` shouldn\\'t need to be ' +\n 'polyfilled for the IMAGE_DECODERS build target.');\n }\n }\n exports.ReadableStream = DummyReadableStream;\n } else {\n exports.ReadableStream =\n require('../../external/streams/streams-lib').ReadableStream;\n }\n}\n","/*\n * To the extent possible under law, the authors have dedicated all copyright\n * and related and neighboring rights to this software to the public\n * domain worldwide. This software is distributed without any warranty.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with this software. If not, see https://creativecommons.org/publicdomain/zero/1.0/.\n */\n\n(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap\n/******/ // The module cache\n/******/ var installedModules = {};\n/******/\n/******/ // The require function\n/******/ function __w_pdfjs_require__(moduleId) {\n/******/\n/******/ // Check if module is in cache\n/******/ if(installedModules[moduleId])\n/******/ return installedModules[moduleId].exports;\n/******/\n/******/ // Create a new module (and put it into the cache)\n/******/ var module = installedModules[moduleId] = {\n/******/ i: moduleId,\n/******/ l: false,\n/******/ exports: {}\n/******/ };\n/******/\n/******/ // Execute the module function\n/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ // Flag the module as loaded\n/******/ module.l = true;\n/******/\n/******/ // Return the exports of the module\n/******/ return module.exports;\n/******/ }\n/******/\n/******/\n/******/ // expose the modules object (__webpack_modules__)\n/******/ __w_pdfjs_require__.m = modules;\n/******/\n/******/ // expose the module cache\n/******/ __w_pdfjs_require__.c = installedModules;\n/******/\n/******/ // identity function for calling harmony imports with the correct context\n/******/ __w_pdfjs_require__.i = function(value) { return value; };\n/******/\n/******/ // define getter function for harmony exports\n/******/ __w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ if(!__w_pdfjs_require__.o(exports, name)) {\n/******/ Object.defineProperty(exports, name, {\n/******/ configurable: false,\n/******/ enumerable: true,\n/******/ get: getter\n/******/ });\n/******/ }\n/******/ };\n/******/\n/******/ // getDefaultExport function for compatibility with non-harmony modules\n/******/ __w_pdfjs_require__.n = function(module) {\n/******/ var getter = module && module.__esModule ?\n/******/ function getDefault() { return module['default']; } :\n/******/ function getModuleExports() { return module; };\n/******/ __w_pdfjs_require__.d(getter, 'a', getter);\n/******/ return getter;\n/******/ };\n/******/\n/******/ // Object.prototype.hasOwnProperty.call\n/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ // __webpack_public_path__\n/******/ __w_pdfjs_require__.p = \"\";\n/******/\n/******/ // Load entry module and return exports\n/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n\nfunction IsPropertyKey(argument) {\n return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n}\n\nexports.typeIsObject = function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n};\n\nexports.createDataProperty = function (o, p, v) {\n assert(exports.typeIsObject(o));\n Object.defineProperty(o, p, { value: v, writable: true, enumerable: true, configurable: true });\n};\n\nexports.createArrayFromList = function (elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n};\n\nexports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n};\n\nexports.CreateIterResultObject = function (value, done) {\n assert(typeof done === 'boolean');\n var obj = {};\n Object.defineProperty(obj, 'value', { value: value, enumerable: true, writable: true, configurable: true });\n Object.defineProperty(obj, 'done', { value: done, enumerable: true, writable: true, configurable: true });\n return obj;\n};\n\nexports.IsFiniteNonNegativeNumber = function (v) {\n if (Number.isNaN(v)) {\n return false;\n }\n if (v === Infinity) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n\n return true;\n};\n\nfunction Call(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n\n return Function.prototype.apply.call(F, V, args);\n}\n\nexports.InvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n\n var method = O[P];\n if (method === undefined) {\n return undefined;\n }\n\n return Call(method, O, args);\n};\n\nexports.PromiseInvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n try {\n return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n } catch (returnValueE) {\n return Promise.reject(returnValueE);\n }\n};\n\nexports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n assert(Array.isArray(argsF));\n\n var method = void 0;\n try {\n method = O[P];\n } catch (methodE) {\n return Promise.reject(methodE);\n }\n\n if (method === undefined) {\n return F.apply(null, argsF);\n }\n\n try {\n return Promise.resolve(Call(method, O, args));\n } catch (e) {\n return Promise.reject(e);\n }\n};\n\n// Not implemented correctly\nexports.TransferArrayBuffer = function (O) {\n return O.slice();\n};\n\nexports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n highWaterMark = Number(highWaterMark);\n if (Number.isNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n }\n\n return highWaterMark;\n};\n\nexports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {\n if (size !== undefined && typeof size !== 'function') {\n throw new TypeError('size property of a queuing strategy must be a function');\n }\n\n highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);\n\n return { size: size, highWaterMark: highWaterMark };\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction rethrowAssertionErrorRejection(e) {\n // Used throughout the reference implementation, as `.catch(rethrowAssertionErrorRejection)`, to ensure any errors\n // get shown. There are places in the spec where we do promise transformations and purposefully ignore or don't\n // expect any errors, but assertion errors are always problematic.\n if (e && e.constructor === AssertionError) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n};\n\nfunction AssertionError(message) {\n this.name = 'AssertionError';\n this.message = message || '';\n this.stack = new Error().stack;\n}\nAssertionError.prototype = Object.create(Error.prototype);\nAssertionError.prototype.constructor = AssertionError;\n\nfunction assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}\n\nmodule.exports = {\n rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n AssertionError: AssertionError,\n assert: assert\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = __w_pdfjs_require__(0),\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n typeIsObject = _require.typeIsObject;\n\nvar _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert,\n rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n\nvar _require3 = __w_pdfjs_require__(3),\n DequeueValue = _require3.DequeueValue,\n EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n PeekQueueValue = _require3.PeekQueueValue,\n ResetQueue = _require3.ResetQueue;\n\nvar WritableStream = function () {\n function WritableStream() {\n var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n _ref$highWaterMark = _ref.highWaterMark,\n highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;\n\n _classCallCheck(this, WritableStream);\n\n this._state = 'writable';\n\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n this._storedError = undefined;\n\n this._writer = undefined;\n\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n this._writableStreamController = undefined;\n\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n this._writeRequests = [];\n\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n this._inFlightWriteRequest = undefined;\n\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n this._closeRequest = undefined;\n\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n this._inFlightCloseRequest = undefined;\n\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n this._pendingAbortRequest = undefined;\n\n // The backpressure signal set by the controller.\n this._backpressure = false;\n\n var type = underlyingSink.type;\n\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n\n this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n this._writableStreamController.__startSteps();\n }\n\n _createClass(WritableStream, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('abort'));\n }\n\n if (IsWritableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\n }\n\n return WritableStreamAbort(this, reason);\n }\n }, {\n key: 'getWriter',\n value: function getWriter() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('getWriter');\n }\n\n return AcquireWritableStreamDefaultWriter(this);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n\n return IsWritableStreamLocked(this);\n }\n }]);\n\n return WritableStream;\n}();\n\nmodule.exports = {\n AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,\n IsWritableStream: IsWritableStream,\n IsWritableStreamLocked: IsWritableStreamLocked,\n WritableStream: WritableStream,\n WritableStreamAbort: WritableStreamAbort,\n WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,\n WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight\n};\n\n// Abstract operations for the WritableStream.\n\nfunction AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n}\n\nfunction IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsWritableStreamLocked(stream) {\n assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n\n if (stream._writer === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamAbort(stream, reason) {\n var state = stream._state;\n if (state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n var error = new TypeError('Requested to abort');\n if (stream._pendingAbortRequest !== undefined) {\n return Promise.reject(error);\n }\n\n assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n\n var promise = new Promise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n\n if (wasAlreadyErroring === false) {\n WritableStreamStartErroring(stream, error);\n }\n\n return promise;\n}\n\n// WritableStream API exposed for controllers.\n\nfunction WritableStreamAddWriteRequest(stream) {\n assert(IsWritableStreamLocked(stream) === true);\n assert(stream._state === 'writable');\n\n var promise = new Promise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._writeRequests.push(writeRequest);\n });\n\n return promise;\n}\n\nfunction WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n\n assert(state === 'erroring');\n WritableStreamFinishErroring(stream);\n}\n\nfunction WritableStreamStartErroring(stream, reason) {\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n assert(stream._state === 'writable', 'state must be writable');\n\n var controller = stream._writableStreamController;\n assert(controller !== undefined, 'controller must not be undefined');\n\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n WritableStreamFinishErroring(stream);\n }\n}\n\nfunction WritableStreamFinishErroring(stream) {\n assert(stream._state === 'erroring', 'stream._state === erroring');\n assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');\n stream._state = 'errored';\n stream._writableStreamController.__errorSteps();\n\n var storedError = stream._storedError;\n for (var i = 0; i < stream._writeRequests.length; i++) {\n var writeRequest = stream._writeRequests[i];\n writeRequest._reject(storedError);\n }\n stream._writeRequests = [];\n\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n\n if (abortRequest._wasAlreadyErroring === true) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n\n var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n promise.then(function () {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n}\n\nfunction WritableStreamFinishInFlightWrite(stream) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n}\n\nfunction WritableStreamFinishInFlightWriteWithError(stream, error) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n\n assert(stream._state === 'writable' || stream._state === 'erroring');\n\n WritableStreamDealWithRejection(stream, error);\n}\n\nfunction WritableStreamFinishInFlightClose(stream) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n\n var state = stream._state;\n\n assert(state === 'writable' || state === 'erroring');\n\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n\n stream._state = 'closed';\n\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n\n assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n}\n\nfunction WritableStreamFinishInFlightCloseWithError(stream, error) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n\n assert(stream._state === 'writable' || stream._state === 'erroring');\n\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n}\n\n// TODO(ricea): Fix alphabetical order.\nfunction WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamMarkCloseRequestInFlight(stream) {\n assert(stream._inFlightCloseRequest === undefined);\n assert(stream._closeRequest !== undefined);\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n}\n\nfunction WritableStreamMarkFirstWriteRequestInFlight(stream) {\n assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');\n assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n}\n\nfunction WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n if (stream._closeRequest !== undefined) {\n assert(stream._inFlightCloseRequest === undefined);\n\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n writer._closedPromise.catch(function () {});\n }\n}\n\nfunction WritableStreamUpdateBackpressure(stream, backpressure) {\n assert(stream._state === 'writable');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n\n var writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure === true) {\n defaultWriterReadyPromiseReset(writer);\n } else {\n assert(backpressure === false);\n\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n\n stream._backpressure = backpressure;\n}\n\nvar WritableStreamDefaultWriter = function () {\n function WritableStreamDefaultWriter(stream) {\n _classCallCheck(this, WritableStreamDefaultWriter);\n\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n }\n if (IsWritableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n\n this._ownerWritableStream = stream;\n stream._writer = this;\n\n var state = stream._state;\n\n if (state === 'writable') {\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n defaultWriterReadyPromiseInitialize(this);\n } else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n } else {\n assert(state === 'errored', 'state must be errored');\n\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n this._closedPromise.catch(function () {});\n }\n }\n\n _createClass(WritableStreamDefaultWriter, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('abort'));\n }\n\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('abort'));\n }\n\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('close'));\n }\n\n var stream = this._ownerWritableStream;\n\n if (stream === undefined) {\n return Promise.reject(defaultWriterLockException('close'));\n }\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n return Promise.reject(new TypeError('cannot close an already-closing stream'));\n }\n\n return WritableStreamDefaultWriterClose(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n\n var stream = this._ownerWritableStream;\n\n if (stream === undefined) {\n return;\n }\n\n assert(stream._writer !== undefined);\n\n WritableStreamDefaultWriterRelease(this);\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('write'));\n }\n\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n }, {\n key: 'ready',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('ready'));\n }\n\n return this._readyPromise;\n }\n }]);\n\n return WritableStreamDefaultWriter;\n}();\n\n// Abstract operations for the WritableStreamDefaultWriter.\n\nfunction IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n\n return true;\n}\n\n// A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n\nfunction WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n return WritableStreamAbort(stream, reason);\n}\n\nfunction WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));\n }\n\n assert(state === 'writable' || state === 'erroring');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n\n var promise = new Promise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._closeRequest = closeRequest;\n });\n\n if (stream._backpressure === true && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n\n return promise;\n}\n\nfunction WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.resolve();\n }\n\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n assert(state === 'writable' || state === 'erroring');\n\n return WritableStreamDefaultWriterClose(writer);\n}\n\nfunction WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n } else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n writer._closedPromise.catch(function () {});\n}\n\nfunction WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n } else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n writer._readyPromise.catch(function () {});\n}\n\nfunction WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n\n if (state === 'closed') {\n return 0;\n }\n\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n}\n\nfunction WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n assert(stream._writer === writer);\n\n var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n}\n\nfunction WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n var controller = stream._writableStreamController;\n\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n\n if (stream !== writer._ownerWritableStream) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n\n var state = stream._state;\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return Promise.reject(stream._storedError);\n }\n\n assert(state === 'writable');\n\n var promise = WritableStreamAddWriteRequest(stream);\n\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n\n return promise;\n}\n\nvar WritableStreamDefaultController = function () {\n function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n _classCallCheck(this, WritableStreamDefaultController);\n\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n }\n\n if (stream._writableStreamController !== undefined) {\n throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\n }\n\n this._controlledWritableStream = stream;\n\n this._underlyingSink = underlyingSink;\n\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n\n this._started = false;\n\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n\n var backpressure = WritableStreamDefaultControllerGetBackpressure(this);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n _createClass(WritableStreamDefaultController, [{\n key: 'error',\n value: function error(e) {\n if (IsWritableStreamDefaultController(this) === false) {\n throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n }\n var state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n\n WritableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__abortSteps',\n value: function __abortSteps(reason) {\n return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);\n }\n }, {\n key: '__errorSteps',\n value: function __errorSteps() {\n ResetQueue(this);\n }\n }, {\n key: '__startSteps',\n value: function __startSteps() {\n var _this = this;\n\n var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);\n var stream = this._controlledWritableStream;\n\n Promise.resolve(startResult).then(function () {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);\n }, function (r) {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDealWithRejection(stream, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n }]);\n\n return WritableStreamDefaultController;\n}();\n\n// Abstract operations implementing interface required by the WritableStream.\n\nfunction WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, 'close', 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n}\n\nfunction WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n var strategySize = controller._strategySize;\n\n if (strategySize === undefined) {\n return 1;\n }\n\n try {\n return strategySize(chunk);\n } catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n}\n\nfunction WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n}\n\nfunction WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n var writeRecord = { chunk: chunk };\n\n try {\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\n } catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n\n var stream = controller._controlledWritableStream;\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n}\n\n// Abstract operations for the WritableStreamDefaultController.\n\nfunction IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n\n if (controller._started === false) {\n return;\n }\n\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return;\n }\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n\n if (controller._queue.length === 0) {\n return;\n }\n\n var writeRecord = PeekQueueValue(controller);\n if (writeRecord === 'close') {\n WritableStreamDefaultControllerProcessClose(controller);\n } else {\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n }\n}\n\nfunction WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n}\n\nfunction WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n\n WritableStreamMarkCloseRequestInFlight(stream);\n\n DequeueValue(controller);\n assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n\n var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);\n sinkClosePromise.then(function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n}\n\nfunction WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n\n var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n sinkWritePromise.then(function () {\n WritableStreamFinishInFlightWrite(stream);\n\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n\n DequeueValue(controller);\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n}\n\nfunction WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n}\n\n// A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n\nfunction WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n\n assert(stream._state === 'writable');\n\n WritableStreamStartErroring(stream, error);\n}\n\n// Helper functions for the WritableStream.\n\nfunction streamBrandCheckException(name) {\n return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n}\n\n// Helper functions for the WritableStreamDefaultWriter.\n\nfunction defaultWriterBrandCheckException(name) {\n return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n}\n\nfunction defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n}\n\nfunction defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = new Promise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n}\n\nfunction defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n}\n\nfunction defaultWriterClosedPromiseInitializeAsResolved(writer) {\n writer._closedPromise = Promise.resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n}\n\nfunction defaultWriterClosedPromiseReject(writer, reason) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n}\n\nfunction defaultWriterClosedPromiseResetToRejected(writer, reason) {\n assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');\n assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');\n assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');\n\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromiseState = 'rejected';\n}\n\nfunction defaultWriterClosedPromiseResolve(writer) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n}\n\nfunction defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n}\n\nfunction defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n}\n\nfunction defaultWriterReadyPromiseInitializeAsResolved(writer) {\n writer._readyPromise = Promise.resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n}\n\nfunction defaultWriterReadyPromiseReject(writer, reason) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n}\n\nfunction defaultWriterReadyPromiseReset(writer) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n}\n\nfunction defaultWriterReadyPromiseResetToRejected(writer, reason) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromiseState = 'rejected';\n}\n\nfunction defaultWriterReadyPromiseResolve(writer) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _require = __w_pdfjs_require__(0),\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n\nvar _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert;\n\nexports.DequeueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');\n\n var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n\n return pair.value;\n};\n\nexports.EnqueueValueWithSize = function (container, value, size) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');\n\n size = Number(size);\n if (!IsFiniteNonNegativeNumber(size)) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n\n container._queue.push({ value: value, size: size });\n container._queueTotalSize += size;\n};\n\nexports.PeekQueueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');\n\n var pair = container._queue[0];\n return pair.value;\n};\n\nexports.ResetQueue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n\n container._queue = [];\n container._queueTotalSize = 0;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = __w_pdfjs_require__(0),\n ArrayBufferCopy = _require.ArrayBufferCopy,\n CreateIterResultObject = _require.CreateIterResultObject,\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n TransferArrayBuffer = _require.TransferArrayBuffer,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;\n\nvar _require2 = __w_pdfjs_require__(0),\n createArrayFromList = _require2.createArrayFromList,\n createDataProperty = _require2.createDataProperty,\n typeIsObject = _require2.typeIsObject;\n\nvar _require3 = __w_pdfjs_require__(1),\n assert = _require3.assert,\n rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n\nvar _require4 = __w_pdfjs_require__(3),\n DequeueValue = _require4.DequeueValue,\n EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n ResetQueue = _require4.ResetQueue;\n\nvar _require5 = __w_pdfjs_require__(2),\n AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,\n IsWritableStream = _require5.IsWritableStream,\n IsWritableStreamLocked = _require5.IsWritableStreamLocked,\n WritableStreamAbort = _require5.WritableStreamAbort,\n WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;\n\nvar ReadableStream = function () {\n function ReadableStream() {\n var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n highWaterMark = _ref.highWaterMark;\n\n _classCallCheck(this, ReadableStream);\n\n // Exposed to controllers.\n this._state = 'readable';\n\n this._reader = undefined;\n this._storedError = undefined;\n\n this._disturbed = false;\n\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n this._readableStreamController = undefined;\n var type = underlyingSource.type;\n var typeString = String(type);\n if (typeString === 'bytes') {\n if (highWaterMark === undefined) {\n highWaterMark = 0;\n }\n this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n } else if (type === undefined) {\n if (highWaterMark === undefined) {\n highWaterMark = 1;\n }\n this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n } else {\n throw new RangeError('Invalid type is specified');\n }\n }\n\n _createClass(ReadableStream, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('cancel'));\n }\n\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n\n return ReadableStreamCancel(this, reason);\n }\n }, {\n key: 'getReader',\n value: function getReader() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mode = _ref2.mode;\n\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('getReader');\n }\n\n if (mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n\n mode = String(mode);\n\n if (mode === 'byob') {\n return AcquireReadableStreamBYOBReader(this);\n }\n\n throw new RangeError('Invalid mode is specified');\n }\n }, {\n key: 'pipeThrough',\n value: function pipeThrough(_ref3, options) {\n var writable = _ref3.writable,\n readable = _ref3.readable;\n\n var promise = this.pipeTo(writable, options);\n\n ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n\n return readable;\n }\n }, {\n key: 'pipeTo',\n value: function pipeTo(dest) {\n var _this = this;\n\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n preventClose = _ref4.preventClose,\n preventAbort = _ref4.preventAbort,\n preventCancel = _ref4.preventCancel;\n\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('pipeTo'));\n }\n if (IsWritableStream(dest) === false) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n }\n\n preventClose = Boolean(preventClose);\n preventAbort = Boolean(preventAbort);\n preventCancel = Boolean(preventCancel);\n\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(dest) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n\n var reader = AcquireReadableStreamDefaultReader(this);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n\n var shuttingDown = false;\n\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n var currentWrite = Promise.resolve();\n\n return new Promise(function (resolve, reject) {\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n currentWrite = Promise.resolve();\n\n if (shuttingDown === true) {\n return Promise.resolve();\n }\n\n return writer._readyPromise.then(function () {\n return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n var value = _ref5.value,\n done = _ref5.done;\n\n if (done === true) {\n return;\n }\n\n currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});\n });\n }).then(pipeLoop);\n }\n\n // Errors must be propagated forward\n isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {\n if (preventAbort === false) {\n shutdownWithAction(function () {\n return WritableStreamAbort(dest, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n\n // Closing must be propagated forward\n isOrBecomesClosed(_this, reader._closedPromise, function () {\n if (preventClose === false) {\n shutdownWithAction(function () {\n return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);\n });\n } else {\n shutdown();\n }\n });\n\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, destClosed);\n }, true, destClosed);\n } else {\n shutdown(true, destClosed);\n }\n }\n\n pipeLoop().catch(function (err) {\n currentWrite = Promise.resolve();\n rethrowAssertionErrorRejection(err);\n });\n\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n var oldCurrentWrite = currentWrite;\n return currentWrite.then(function () {\n return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n });\n }\n\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n } else {\n promise.catch(action).catch(rethrowAssertionErrorRejection);\n }\n }\n\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n } else {\n promise.then(action).catch(rethrowAssertionErrorRejection);\n }\n }\n\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(doTheRest);\n } else {\n doTheRest();\n }\n\n function doTheRest() {\n action().then(function () {\n return finalize(originalIsError, originalError);\n }, function (newError) {\n return finalize(true, newError);\n }).catch(rethrowAssertionErrorRejection);\n }\n }\n\n function shutdown(isError, error) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(function () {\n return finalize(isError, error);\n }).catch(rethrowAssertionErrorRejection);\n } else {\n finalize(isError, error);\n }\n }\n\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n\n if (isError) {\n reject(error);\n } else {\n resolve(undefined);\n }\n }\n });\n }\n }, {\n key: 'tee',\n value: function tee() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('tee');\n }\n\n var branches = ReadableStreamTee(this, false);\n return createArrayFromList(branches);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n\n return IsReadableStreamLocked(this);\n }\n }]);\n\n return ReadableStream;\n}();\n\nmodule.exports = {\n ReadableStream: ReadableStream,\n IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n};\n\n// Abstract operations for the ReadableStream.\n\nfunction AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n}\n\nfunction AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n}\n\nfunction IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsReadableStreamDisturbed(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n\n return stream._disturbed;\n}\n\nfunction IsReadableStreamLocked(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n\n if (stream._reader === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamTee(stream, cloneForBranch2) {\n assert(IsReadableStream(stream) === true);\n assert(typeof cloneForBranch2 === 'boolean');\n\n var reader = AcquireReadableStreamDefaultReader(stream);\n\n var teeState = {\n closedOrErrored: false,\n canceled1: false,\n canceled2: false,\n reason1: undefined,\n reason2: undefined\n };\n teeState.promise = new Promise(function (resolve) {\n teeState._resolve = resolve;\n });\n\n var pull = create_ReadableStreamTeePullFunction();\n pull._reader = reader;\n pull._teeState = teeState;\n pull._cloneForBranch2 = cloneForBranch2;\n\n var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n cancel1._stream = stream;\n cancel1._teeState = teeState;\n\n var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n cancel2._stream = stream;\n cancel2._teeState = teeState;\n\n var underlyingSource1 = Object.create(Object.prototype);\n createDataProperty(underlyingSource1, 'pull', pull);\n createDataProperty(underlyingSource1, 'cancel', cancel1);\n var branch1Stream = new ReadableStream(underlyingSource1);\n\n var underlyingSource2 = Object.create(Object.prototype);\n createDataProperty(underlyingSource2, 'pull', pull);\n createDataProperty(underlyingSource2, 'cancel', cancel2);\n var branch2Stream = new ReadableStream(underlyingSource2);\n\n pull._branch1 = branch1Stream._readableStreamController;\n pull._branch2 = branch2Stream._readableStreamController;\n\n reader._closedPromise.catch(function (r) {\n if (teeState.closedOrErrored === true) {\n return;\n }\n\n ReadableStreamDefaultControllerError(pull._branch1, r);\n ReadableStreamDefaultControllerError(pull._branch2, r);\n teeState.closedOrErrored = true;\n });\n\n return [branch1Stream, branch2Stream];\n}\n\nfunction create_ReadableStreamTeePullFunction() {\n function f() {\n var reader = f._reader,\n branch1 = f._branch1,\n branch2 = f._branch2,\n teeState = f._teeState;\n\n\n return ReadableStreamDefaultReaderRead(reader).then(function (result) {\n assert(typeIsObject(result));\n var value = result.value;\n var done = result.done;\n assert(typeof done === 'boolean');\n\n if (done === true && teeState.closedOrErrored === false) {\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerClose(branch1);\n }\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerClose(branch2);\n }\n teeState.closedOrErrored = true;\n }\n\n if (teeState.closedOrErrored === true) {\n return;\n }\n\n var value1 = value;\n var value2 = value;\n\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (teeState.canceled2 === false && cloneForBranch2 === true) {\n // value2 = StructuredDeserialize(StructuredSerialize(value2));\n // }\n\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerEnqueue(branch1, value1);\n }\n\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerEnqueue(branch2, value2);\n }\n });\n }\n return f;\n}\n\nfunction create_ReadableStreamTeeBranch1CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n\n\n teeState.canceled1 = true;\n teeState.reason1 = reason;\n if (teeState.canceled2 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\n}\n\nfunction create_ReadableStreamTeeBranch2CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n\n\n teeState.canceled2 = true;\n teeState.reason2 = reason;\n if (teeState.canceled1 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\n}\n\n// ReadableStream API exposed for controllers.\n\nfunction ReadableStreamAddReadIntoRequest(stream) {\n assert(IsReadableStreamBYOBReader(stream._reader) === true);\n assert(stream._state === 'readable' || stream._state === 'closed');\n\n var promise = new Promise(function (resolve, reject) {\n var readIntoRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._reader._readIntoRequests.push(readIntoRequest);\n });\n\n return promise;\n}\n\nfunction ReadableStreamAddReadRequest(stream) {\n assert(IsReadableStreamDefaultReader(stream._reader) === true);\n assert(stream._state === 'readable');\n\n var promise = new Promise(function (resolve, reject) {\n var readRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._reader._readRequests.push(readRequest);\n });\n\n return promise;\n}\n\nfunction ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n\n if (stream._state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n ReadableStreamClose(stream);\n\n var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n return sourceCancelPromise.then(function () {\n return undefined;\n });\n}\n\nfunction ReadableStreamClose(stream) {\n assert(stream._state === 'readable');\n\n stream._state = 'closed';\n\n var reader = stream._reader;\n\n if (reader === undefined) {\n return undefined;\n }\n\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var _resolve = reader._readRequests[i]._resolve;\n\n _resolve(CreateIterResultObject(undefined, true));\n }\n reader._readRequests = [];\n }\n\n defaultReaderClosedPromiseResolve(reader);\n\n return undefined;\n}\n\nfunction ReadableStreamError(stream, e) {\n assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n assert(stream._state === 'readable', 'state must be readable');\n\n stream._state = 'errored';\n stream._storedError = e;\n\n var reader = stream._reader;\n\n if (reader === undefined) {\n return undefined;\n }\n\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var readRequest = reader._readRequests[i];\n readRequest._reject(e);\n }\n\n reader._readRequests = [];\n } else {\n assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n\n for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n var readIntoRequest = reader._readIntoRequests[_i];\n readIntoRequest._reject(e);\n }\n\n reader._readIntoRequests = [];\n }\n\n defaultReaderClosedPromiseReject(reader, e);\n reader._closedPromise.catch(function () {});\n}\n\nfunction ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n\n assert(reader._readIntoRequests.length > 0);\n\n var readIntoRequest = reader._readIntoRequests.shift();\n readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n}\n\nfunction ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n\n assert(reader._readRequests.length > 0);\n\n var readRequest = reader._readRequests.shift();\n readRequest._resolve(CreateIterResultObject(chunk, done));\n}\n\nfunction ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n}\n\nfunction ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n}\n\nfunction ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n\n if (reader === undefined) {\n return false;\n }\n\n if (IsReadableStreamBYOBReader(reader) === false) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n\n if (reader === undefined) {\n return false;\n }\n\n if (IsReadableStreamDefaultReader(reader) === false) {\n return false;\n }\n\n return true;\n}\n\n// Readers\n\nvar ReadableStreamDefaultReader = function () {\n function ReadableStreamDefaultReader(stream) {\n _classCallCheck(this, ReadableStreamDefaultReader);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n }\n if (IsReadableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n\n ReadableStreamReaderGenericInitialize(this, stream);\n\n this._readRequests = [];\n }\n\n _createClass(ReadableStreamDefaultReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('cancel'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('read'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n\n return ReadableStreamDefaultReaderRead(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsReadableStreamDefaultReader(this) === false) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n\n if (this._ownerReadableStream === undefined) {\n return;\n }\n\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }]);\n\n return ReadableStreamDefaultReader;\n}();\n\nvar ReadableStreamBYOBReader = function () {\n function ReadableStreamBYOBReader(stream) {\n _classCallCheck(this, ReadableStreamBYOBReader);\n\n if (!IsReadableStream(stream)) {\n throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');\n }\n if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n }\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n\n ReadableStreamReaderGenericInitialize(this, stream);\n\n this._readIntoRequests = [];\n }\n\n _createClass(ReadableStreamBYOBReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('cancel'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('read'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n\n if (!ArrayBuffer.isView(view)) {\n return Promise.reject(new TypeError('view must be an array buffer view'));\n }\n\n if (view.byteLength === 0) {\n return Promise.reject(new TypeError('view must have non-zero byteLength'));\n }\n\n return ReadableStreamBYOBReaderRead(this, view);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n\n if (this._ownerReadableStream === undefined) {\n return;\n }\n\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }]);\n\n return ReadableStreamBYOBReader;\n}();\n\n// Abstract operations for the readers.\n\nfunction IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n } else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n } else {\n assert(stream._state === 'errored', 'state must be errored');\n\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n reader._closedPromise.catch(function () {});\n }\n}\n\n// A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n// check.\n\nfunction ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n return ReadableStreamCancel(stream, reason);\n}\n\nfunction ReadableStreamReaderGenericRelease(reader) {\n assert(reader._ownerReadableStream !== undefined);\n assert(reader._ownerReadableStream._reader === reader);\n\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n } else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n }\n reader._closedPromise.catch(function () {});\n\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n}\n\nfunction ReadableStreamBYOBReaderRead(reader, view) {\n var stream = reader._ownerReadableStream;\n\n assert(stream !== undefined);\n\n stream._disturbed = true;\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n // Controllers must implement this.\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n}\n\nfunction ReadableStreamDefaultReaderRead(reader) {\n var stream = reader._ownerReadableStream;\n\n assert(stream !== undefined);\n\n stream._disturbed = true;\n\n if (stream._state === 'closed') {\n return Promise.resolve(CreateIterResultObject(undefined, true));\n }\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n assert(stream._state === 'readable');\n\n return stream._readableStreamController.__pullSteps();\n}\n\n// Controllers\n\nvar ReadableStreamDefaultController = function () {\n function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n _classCallCheck(this, ReadableStreamDefaultController);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n }\n\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\n }\n\n this._controlledReadableStream = stream;\n\n this._underlyingSource = underlyingSource;\n\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n\n this._started = false;\n this._closeRequested = false;\n this._pullAgain = false;\n this._pulling = false;\n\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n\n var controller = this;\n\n var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n\n _createClass(ReadableStreamDefaultController, [{\n key: 'close',\n value: function close() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n\n ReadableStreamDefaultControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n\n var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n\n ReadableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n\n if (this._closeRequested === true && this._queue.length === 0) {\n ReadableStreamClose(stream);\n } else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n\n return Promise.resolve(CreateIterResultObject(chunk, false));\n }\n\n var pendingPromise = ReadableStreamAddReadRequest(stream);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n return pendingPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n }]);\n\n return ReadableStreamDefaultController;\n}();\n\n// Abstract operations for the ReadableStreamDefaultController.\n\nfunction IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n\n assert(controller._pullAgain === false);\n\n controller._pulling = true;\n\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n return ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n return undefined;\n }, function (e) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n }).catch(rethrowAssertionErrorRejection);\n\n return undefined;\n}\n\nfunction ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n\n if (stream._state === 'closed' || stream._state === 'errored') {\n return false;\n }\n\n if (controller._closeRequested === true) {\n return false;\n }\n\n if (controller._started === false) {\n return false;\n }\n\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n\n return false;\n}\n\n// A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n\nfunction ReadableStreamDefaultControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n controller._closeRequested = true;\n\n if (controller._queue.length === 0) {\n ReadableStreamClose(stream);\n }\n}\n\nfunction ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n } else {\n var chunkSize = 1;\n\n if (controller._strategySize !== undefined) {\n var strategySize = controller._strategySize;\n try {\n chunkSize = strategySize(chunk);\n } catch (chunkSizeE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n throw chunkSizeE;\n }\n }\n\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n throw enqueueE;\n }\n }\n\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n\n return undefined;\n}\n\nfunction ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n\n assert(stream._state === 'readable');\n\n ResetQueue(controller);\n\n ReadableStreamError(stream, e);\n}\n\nfunction ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableStreamDefaultControllerError(controller, e);\n }\n}\n\nfunction ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n\n return controller._strategyHWM - controller._queueTotalSize;\n}\n\nvar ReadableStreamBYOBRequest = function () {\n function ReadableStreamBYOBRequest(controller, view) {\n _classCallCheck(this, ReadableStreamBYOBRequest);\n\n this._associatedReadableByteStreamController = controller;\n this._view = view;\n }\n\n _createClass(ReadableStreamBYOBRequest, [{\n key: 'respond',\n value: function respond(bytesWritten) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n }, {\n key: 'respondWithNewView',\n value: function respondWithNewView(view) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }, {\n key: 'view',\n get: function get() {\n return this._view;\n }\n }]);\n\n return ReadableStreamBYOBRequest;\n}();\n\nvar ReadableByteStreamController = function () {\n function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n _classCallCheck(this, ReadableByteStreamController);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\n }\n\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');\n }\n\n this._controlledReadableStream = stream;\n\n this._underlyingByteSource = underlyingByteSource;\n\n this._pullAgain = false;\n this._pulling = false;\n\n ReadableByteStreamControllerClearPendingPullIntos(this);\n\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n this._queue = this._queueTotalSize = undefined;\n ResetQueue(this);\n\n this._closeRequested = false;\n this._started = false;\n\n this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n throw new RangeError('autoAllocateChunkSize must be a positive integer');\n }\n }\n this._autoAllocateChunkSize = autoAllocateChunkSize;\n\n this._pendingPullIntos = [];\n\n var controller = this;\n\n var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n if (stream._state === 'readable') {\n ReadableByteStreamControllerError(controller, r);\n }\n }).catch(rethrowAssertionErrorRejection);\n }\n\n _createClass(ReadableByteStreamController, [{\n key: 'close',\n value: function close() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('close');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n\n ReadableByteStreamControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n }\n\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('error');\n }\n\n var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n\n ReadableByteStreamControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n if (this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n firstDescriptor.bytesFilled = 0;\n }\n\n ResetQueue(this);\n\n return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n assert(ReadableStreamHasDefaultReader(stream) === true);\n\n if (this._queueTotalSize > 0) {\n assert(ReadableStreamGetNumReadRequests(stream) === 0);\n\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n\n ReadableByteStreamControllerHandleQueueDrain(this);\n\n var view = void 0;\n try {\n view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n } catch (viewE) {\n return Promise.reject(viewE);\n }\n\n return Promise.resolve(CreateIterResultObject(view, false));\n }\n\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n } catch (bufferE) {\n return Promise.reject(bufferE);\n }\n\n var pullIntoDescriptor = {\n buffer: buffer,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n ctor: Uint8Array,\n readerType: 'default'\n };\n\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n\n var promise = ReadableStreamAddReadRequest(stream);\n\n ReadableByteStreamControllerCallPullIfNeeded(this);\n\n return promise;\n }\n }, {\n key: 'byobRequest',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n\n if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n\n this._byobRequest = new ReadableStreamBYOBRequest(this, view);\n }\n\n return this._byobRequest;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n }]);\n\n return ReadableByteStreamController;\n}();\n\n// Abstract operations for the ReadableByteStreamController.\n\nfunction IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n\n assert(controller._pullAgain === false);\n\n controller._pulling = true;\n\n // TODO: Test controller argument\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableByteStreamControllerError(controller, e);\n }\n }).catch(rethrowAssertionErrorRejection);\n\n return undefined;\n}\n\nfunction ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = [];\n}\n\nfunction ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n assert(stream._state !== 'errored', 'state must not be errored');\n\n var done = false;\n if (stream._state === 'closed') {\n assert(pullIntoDescriptor.bytesFilled === 0);\n done = true;\n }\n\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n } else {\n assert(pullIntoDescriptor.readerType === 'byob');\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n}\n\nfunction ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n\n assert(bytesFilled <= pullIntoDescriptor.byteLength);\n assert(bytesFilled % elementSize === 0);\n\n return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n}\n\nfunction ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n controller._queueTotalSize += byteLength;\n}\n\nfunction ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n\n var queue = controller._queue;\n\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue[0];\n\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n } else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n\n if (ready === false) {\n assert(controller._queueTotalSize === 0, 'queue must be empty');\n assert(pullIntoDescriptor.bytesFilled > 0);\n assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);\n }\n\n return ready;\n}\n\nfunction ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n pullIntoDescriptor.bytesFilled += size;\n}\n\nfunction ReadableByteStreamControllerHandleQueueDrain(controller) {\n assert(controller._controlledReadableStream._state === 'readable');\n\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n ReadableStreamClose(controller._controlledReadableStream);\n } else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n}\n\nfunction ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === undefined) {\n return;\n }\n\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = undefined;\n controller._byobRequest = undefined;\n}\n\nfunction ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n assert(controller._closeRequested === false);\n\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n\n var pullIntoDescriptor = controller._pendingPullIntos[0];\n\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n }\n }\n}\n\nfunction ReadableByteStreamControllerPullInto(controller, view) {\n var stream = controller._controlledReadableStream;\n\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n\n var ctor = view.constructor;\n\n var pullIntoDescriptor = {\n buffer: view.buffer,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n ctor: ctor,\n readerType: 'byob'\n };\n\n if (controller._pendingPullIntos.length > 0) {\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n\n return ReadableStreamAddReadIntoRequest(stream);\n }\n\n if (stream._state === 'closed') {\n var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n return Promise.resolve(CreateIterResultObject(emptyView, true));\n }\n\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n\n ReadableByteStreamControllerHandleQueueDrain(controller);\n\n return Promise.resolve(CreateIterResultObject(filledView, false));\n }\n\n if (controller._closeRequested === true) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n\n return Promise.reject(e);\n }\n }\n\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n\n var promise = ReadableStreamAddReadIntoRequest(stream);\n\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n\n return promise;\n}\n\nfunction ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n\n assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n\n var stream = controller._controlledReadableStream;\n if (ReadableStreamHasBYOBReader(stream) === true) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n}\n\nfunction ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n // TODO: Figure out whether we should detach the buffer or not here.\n return;\n }\n\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n}\n\nfunction ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos[0];\n\n var stream = controller._controlledReadableStream;\n\n if (stream._state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n } else {\n assert(stream._state === 'readable');\n\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n}\n\nfunction ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n return descriptor;\n}\n\nfunction ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n\n if (stream._state !== 'readable') {\n return false;\n }\n\n if (controller._closeRequested === true) {\n return false;\n }\n\n if (controller._started === false) {\n return false;\n }\n\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n\n if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n return true;\n }\n\n return false;\n}\n\n// A client of ReadableByteStreamController may use these functions directly to bypass state check.\n\nfunction ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n\n return;\n }\n\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos[0];\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n\n throw e;\n }\n }\n\n ReadableStreamClose(stream);\n}\n\nfunction ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n\n if (ReadableStreamHasDefaultReader(stream) === true) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n } else {\n assert(controller._queue.length === 0);\n\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n } else if (ReadableStreamHasBYOBReader(stream) === true) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n } else {\n assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n}\n\nfunction ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n\n assert(stream._state === 'readable');\n\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n}\n\nfunction ReadableByteStreamControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n\n return controller._strategyHWM - controller._queueTotalSize;\n}\n\nfunction ReadableByteStreamControllerRespond(controller, bytesWritten) {\n bytesWritten = Number(bytesWritten);\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n throw new RangeError('bytesWritten must be a finite');\n }\n\n assert(controller._pendingPullIntos.length > 0);\n\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n}\n\nfunction ReadableByteStreamControllerRespondWithNewView(controller, view) {\n assert(controller._pendingPullIntos.length > 0);\n\n var firstDescriptor = controller._pendingPullIntos[0];\n\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.byteLength !== view.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n\n firstDescriptor.buffer = view.buffer;\n\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n}\n\n// Helper functions for the ReadableStream.\n\nfunction streamBrandCheckException(name) {\n return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n}\n\n// Helper functions for the readers.\n\nfunction readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n}\n\n// Helper functions for the ReadableStreamDefaultReader.\n\nfunction defaultReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n}\n\nfunction defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = new Promise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n}\n\nfunction defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n reader._closedPromise = Promise.reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseInitializeAsResolved(reader) {\n reader._closedPromise = Promise.resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseReject(reader, reason) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseResetToRejected(reader, reason) {\n assert(reader._closedPromise_resolve === undefined);\n assert(reader._closedPromise_reject === undefined);\n\n reader._closedPromise = Promise.reject(reason);\n}\n\nfunction defaultReaderClosedPromiseResolve(reader) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\n// Helper functions for the ReadableStreamDefaultReader.\n\nfunction byobReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n}\n\n// Helper functions for the ReadableStreamDefaultController.\n\nfunction defaultControllerBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n}\n\n// Helper functions for the ReadableStreamBYOBRequest.\n\nfunction byobRequestBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n}\n\n// Helper functions for the ReadableByteStreamController.\n\nfunction byteStreamControllerBrandCheckException(name) {\n return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n}\n\n// Helper function for ReadableStream pipeThrough\n\nfunction ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n try {\n // This relies on the brand-check that is enforced by Promise.prototype.then(). As with the rest of the reference\n // implementation, it doesn't attempt to do the right thing if someone has modified the global environment.\n Promise.prototype.then.call(promise, undefined, function () {});\n } catch (e) {\n // The brand check failed, therefore the internal slot is not present and there's nothing further to do.\n }\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar transformStream = __w_pdfjs_require__(6);\nvar readableStream = __w_pdfjs_require__(4);\nvar writableStream = __w_pdfjs_require__(2);\n\nexports.TransformStream = transformStream.TransformStream;\nexports.ReadableStream = readableStream.ReadableStream;\nexports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\nexports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\nexports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\nexports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\nexports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\nexports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\nexports.IsWritableStream = writableStream.IsWritableStream;\nexports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\nexports.WritableStream = writableStream.WritableStream;\nexports.WritableStreamAbort = writableStream.WritableStreamAbort;\nexports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\nexports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\nexports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\nexports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n\nvar _require2 = __w_pdfjs_require__(0),\n InvokeOrNoop = _require2.InvokeOrNoop,\n PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n typeIsObject = _require2.typeIsObject;\n\nvar _require3 = __w_pdfjs_require__(4),\n ReadableStream = _require3.ReadableStream,\n ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;\n\nvar _require4 = __w_pdfjs_require__(2),\n WritableStream = _require4.WritableStream,\n WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n\n// Methods on the transform stream controller object\n\nfunction TransformStreamCloseReadable(transformStream) {\n // console.log('TransformStreamCloseReadable()');\n\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n\n TransformStreamCloseReadableInternal(transformStream);\n}\n\nfunction TransformStreamEnqueueToReadable(transformStream, chunk) {\n // console.log('TransformStreamEnqueueToReadable()');\n\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n\n // We throttle transformer.transform invocation based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamEnqueueToReadable() calls.\n\n var controller = transformStream._readableController;\n\n try {\n ReadableStreamDefaultControllerEnqueue(controller, chunk);\n } catch (e) {\n // This happens when readableStrategy.size() throws.\n // The ReadableStream has already errored itself.\n transformStream._readableClosed = true;\n TransformStreamErrorIfNeeded(transformStream, e);\n\n throw transformStream._storedError;\n }\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n var maybeBackpressure = desiredSize <= 0;\n\n if (maybeBackpressure === true && transformStream._backpressure === false) {\n // This allows pull() again. When desiredSize is 0, it's possible that a pull() will happen immediately (but\n // asynchronously) after this because of pending read()s and set _backpressure back to false.\n //\n // If pull() could be called from inside enqueue(), then this logic would be wrong. This cannot happen\n // because there is always a promise pending from start() or pull() when _backpressure is false.\n TransformStreamSetBackpressure(transformStream, true);\n }\n}\n\nfunction TransformStreamError(transformStream, e) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n TransformStreamErrorInternal(transformStream, e);\n}\n\n// Abstract operations.\n\nfunction TransformStreamCloseReadableInternal(transformStream) {\n assert(transformStream._errored === false);\n assert(transformStream._readableClosed === false);\n\n try {\n ReadableStreamDefaultControllerClose(transformStream._readableController);\n } catch (e) {\n assert(false);\n }\n\n transformStream._readableClosed = true;\n}\n\nfunction TransformStreamErrorIfNeeded(transformStream, e) {\n if (transformStream._errored === false) {\n TransformStreamErrorInternal(transformStream, e);\n }\n}\n\nfunction TransformStreamErrorInternal(transformStream, e) {\n // console.log('TransformStreamErrorInternal()');\n\n assert(transformStream._errored === false);\n\n transformStream._errored = true;\n transformStream._storedError = e;\n\n if (transformStream._writableDone === false) {\n WritableStreamDefaultControllerError(transformStream._writableController, e);\n }\n if (transformStream._readableClosed === false) {\n ReadableStreamDefaultControllerError(transformStream._readableController, e);\n }\n}\n\n// Used for preventing the next write() call on TransformStreamSink until there\n// is no longer backpressure.\nfunction TransformStreamReadableReadyPromise(transformStream) {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n if (transformStream._backpressure === false) {\n return Promise.resolve();\n }\n\n assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n\n return transformStream._backpressureChangePromise;\n}\n\nfunction TransformStreamSetBackpressure(transformStream, backpressure) {\n // console.log(`TransformStreamSetBackpressure(${backpressure})`);\n\n // Passes also when called during construction.\n assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n\n if (transformStream._backpressureChangePromise !== undefined) {\n // The fulfillment value is just for a sanity check.\n transformStream._backpressureChangePromise_resolve(backpressure);\n }\n\n transformStream._backpressureChangePromise = new Promise(function (resolve) {\n transformStream._backpressureChangePromise_resolve = resolve;\n });\n\n transformStream._backpressureChangePromise.then(function (resolution) {\n assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n });\n\n transformStream._backpressure = backpressure;\n}\n\nfunction TransformStreamDefaultTransform(chunk, transformStreamController) {\n var transformStream = transformStreamController._controlledTransformStream;\n TransformStreamEnqueueToReadable(transformStream, chunk);\n return Promise.resolve();\n}\n\nfunction TransformStreamTransform(transformStream, chunk) {\n // console.log('TransformStreamTransform()');\n\n assert(transformStream._errored === false);\n assert(transformStream._transforming === false);\n assert(transformStream._backpressure === false);\n\n transformStream._transforming = true;\n\n var transformer = transformStream._transformer;\n var controller = transformStream._transformStreamController;\n\n var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n\n return transformPromise.then(function () {\n transformStream._transforming = false;\n\n return TransformStreamReadableReadyPromise(transformStream);\n }, function (e) {\n TransformStreamErrorIfNeeded(transformStream, e);\n return Promise.reject(e);\n });\n}\n\nfunction IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n\n return true;\n}\n\nvar TransformStreamSink = function () {\n function TransformStreamSink(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSink);\n\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n\n _createClass(TransformStreamSink, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n\n transformStream._writableController = c;\n\n return this._startPromise.then(function () {\n return TransformStreamReadableReadyPromise(transformStream);\n });\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n // console.log('TransformStreamSink.write()');\n\n var transformStream = this._transformStream;\n\n return TransformStreamTransform(transformStream, chunk);\n }\n }, {\n key: 'abort',\n value: function abort() {\n var transformStream = this._transformStream;\n transformStream._writableDone = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));\n }\n }, {\n key: 'close',\n value: function close() {\n // console.log('TransformStreamSink.close()');\n\n var transformStream = this._transformStream;\n\n assert(transformStream._transforming === false);\n\n transformStream._writableDone = true;\n\n var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n // Return a promise that is fulfilled with undefined on success.\n return flushPromise.then(function () {\n if (transformStream._errored === true) {\n return Promise.reject(transformStream._storedError);\n }\n if (transformStream._readableClosed === false) {\n TransformStreamCloseReadableInternal(transformStream);\n }\n return Promise.resolve();\n }).catch(function (r) {\n TransformStreamErrorIfNeeded(transformStream, r);\n return Promise.reject(transformStream._storedError);\n });\n }\n }]);\n\n return TransformStreamSink;\n}();\n\nvar TransformStreamSource = function () {\n function TransformStreamSource(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSource);\n\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n\n _createClass(TransformStreamSource, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n\n transformStream._readableController = c;\n\n return this._startPromise.then(function () {\n // Prevent the first pull() call until there is backpressure.\n\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n if (transformStream._backpressure === true) {\n return Promise.resolve();\n }\n\n assert(transformStream._backpressure === false, '_backpressure should have been initialized');\n\n return transformStream._backpressureChangePromise;\n });\n }\n }, {\n key: 'pull',\n value: function pull() {\n // console.log('TransformStreamSource.pull()');\n\n var transformStream = this._transformStream;\n\n // Invariant. Enforced by the promises returned by start() and pull().\n assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n TransformStreamSetBackpressure(transformStream, false);\n\n // Prevent the next pull() call until there is backpressure.\n return transformStream._backpressureChangePromise;\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n var transformStream = this._transformStream;\n transformStream._readableClosed = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));\n }\n }]);\n\n return TransformStreamSource;\n}();\n\nvar TransformStreamDefaultController = function () {\n function TransformStreamDefaultController(transformStream) {\n _classCallCheck(this, TransformStreamDefaultController);\n\n if (IsTransformStream(transformStream) === false) {\n throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n }\n\n if (transformStream._transformStreamController !== undefined) {\n throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n }\n\n this._controlledTransformStream = transformStream;\n }\n\n _createClass(TransformStreamDefaultController, [{\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n\n TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n\n TransformStreamCloseReadable(this._controlledTransformStream);\n }\n }, {\n key: 'error',\n value: function error(reason) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n\n TransformStreamError(this._controlledTransformStream, reason);\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n\n var transformStream = this._controlledTransformStream;\n var readableController = transformStream._readableController;\n\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n }]);\n\n return TransformStreamDefaultController;\n}();\n\nvar TransformStream = function () {\n function TransformStream() {\n var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, TransformStream);\n\n this._transformer = transformer;\n var readableStrategy = transformer.readableStrategy,\n writableStrategy = transformer.writableStrategy;\n\n\n this._transforming = false;\n this._errored = false;\n this._storedError = undefined;\n\n this._writableController = undefined;\n this._readableController = undefined;\n this._transformStreamController = undefined;\n\n this._writableDone = false;\n this._readableClosed = false;\n\n this._backpressure = undefined;\n this._backpressureChangePromise = undefined;\n this._backpressureChangePromise_resolve = undefined;\n\n this._transformStreamController = new TransformStreamDefaultController(this);\n\n var startPromise_resolve = void 0;\n var startPromise = new Promise(function (resolve) {\n startPromise_resolve = resolve;\n });\n\n var source = new TransformStreamSource(this, startPromise);\n\n this._readable = new ReadableStream(source, readableStrategy);\n\n var sink = new TransformStreamSink(this, startPromise);\n\n this._writable = new WritableStream(sink, writableStrategy);\n\n assert(this._writableController !== undefined);\n assert(this._readableController !== undefined);\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n // Set _backpressure based on desiredSize. As there is no read() at this point, we can just interpret\n // desiredSize being non-positive as backpressure.\n TransformStreamSetBackpressure(this, desiredSize <= 0);\n\n var transformStream = this;\n var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n startPromise_resolve(startResult);\n startPromise.catch(function (e) {\n // The underlyingSink and underlyingSource will error the readable and writable ends on their own.\n if (transformStream._errored === false) {\n transformStream._errored = true;\n transformStream._storedError = e;\n }\n });\n }\n\n _createClass(TransformStream, [{\n key: 'readable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('readable');\n }\n\n return this._readable;\n }\n }, {\n key: 'writable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('writable');\n }\n\n return this._writable;\n }\n }]);\n\n return TransformStream;\n}();\n\nmodule.exports = { TransformStream: TransformStream };\n\n// Helper functions for the TransformStreamDefaultController.\n\nfunction defaultControllerBrandCheckException(name) {\n return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n}\n\n// Helper functions for the TransformStream.\n\nfunction streamBrandCheckException(name) {\n return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n}\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nmodule.exports = __w_pdfjs_require__(5);\n\n\n/***/ })\n/******/ ])));","/* Copyright 2018 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/* eslint-disable no-restricted-globals */\n\nif (typeof PDFJSDev !== 'undefined' && !PDFJSDev.test('GENERIC')) {\n // The `URL` constructor is assumed to be available in the extension builds.\n exports.URL = URL;\n} else {\n let isURLSupported = false;\n try {\n if (typeof URL === 'function' && typeof URL.prototype === 'object' &&\n ('origin' in URL.prototype)) {\n const u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n isURLSupported = (u.href === 'http://a/c%20d');\n }\n } catch (ex) {\n // The `URL` constructor cannot be used.\n }\n\n if (isURLSupported) {\n exports.URL = URL;\n } else {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n class DummyURL {\n constructor() {\n throw new Error('The current image decoders doesn\\'t utilize the ' +\n '`URL` constructor, hence it shouldn\\'t need to be ' +\n 'polyfilled for the IMAGE_DECODERS build target.');\n }\n }\n exports.URL = DummyURL;\n } else {\n const PolyfillURL = require('../../external/url/url-lib').URL;\n\n // Attempt to copy over the static methods.\n const OriginalURL = require('./global_scope').URL;\n if (OriginalURL) {\n PolyfillURL.createObjectURL = function(blob) {\n // IE extension allows a second optional options argument, see\n // http://msdn.microsoft.com/en-us/library/ie/hh772302(v=vs.85).aspx\n return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n };\n PolyfillURL.revokeObjectURL = function(url) {\n OriginalURL.revokeObjectURL(url);\n };\n }\n exports.URL = PolyfillURL;\n }\n }\n}\n","/* Any copyright is dedicated to the Public Domain.\n * http://creativecommons.org/publicdomain/zero/1.0/\n */\n\n// Polyfill obtained from: https://github.com/Polymer/URL\n\n(function URLConstructorClosure() {\n 'use strict';\n\n var relative = Object.create(null);\n relative['ftp'] = 21;\n relative['file'] = 0;\n relative['gopher'] = 70;\n relative['http'] = 80;\n relative['https'] = 443;\n relative['ws'] = 80;\n relative['wss'] = 443;\n\n var relativePathDotMapping = Object.create(null);\n relativePathDotMapping['%2e'] = '.';\n relativePathDotMapping['.%2e'] = '..';\n relativePathDotMapping['%2e.'] = '..';\n relativePathDotMapping['%2e%2e'] = '..';\n\n function isRelativeScheme(scheme) {\n return relative[scheme] !== undefined;\n }\n\n function invalid() {\n clear.call(this);\n this._isInvalid = true;\n }\n\n function IDNAToASCII(h) {\n if (h === '') {\n invalid.call(this);\n }\n // XXX\n return h.toLowerCase();\n }\n\n function percentEscape(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 &&\n unicode < 0x7F &&\n // \" # < > ? `\n [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1\n ) {\n return c;\n }\n return encodeURIComponent(c);\n }\n\n function percentEscapeQuery(c) {\n // XXX This actually needs to encode c using encoding and then\n // convert the bytes one-by-one.\n\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 &&\n unicode < 0x7F &&\n // \" # < > ` (do not escape '?')\n [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1\n ) {\n return c;\n }\n return encodeURIComponent(c);\n }\n\n var EOF, ALPHA = /[a-zA-Z]/,\n ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\n function parse(input, stateOverride, base) {\n function err(message) {\n errors.push(message);\n }\n\n var state = stateOverride || 'scheme start',\n cursor = 0,\n buffer = '',\n seenAt = false,\n seenBracket = false,\n errors = [];\n\n loop: while ((input[cursor - 1] !== EOF || cursor === 0) &&\n !this._isInvalid) {\n var c = input[cursor];\n switch (state) {\n case 'scheme start':\n if (c && ALPHA.test(c)) {\n buffer += c.toLowerCase(); // ASCII-safe\n state = 'scheme';\n } else if (!stateOverride) {\n buffer = '';\n state = 'no scheme';\n continue;\n } else {\n err('Invalid scheme.');\n break loop;\n }\n break;\n\n case 'scheme':\n if (c && ALPHANUMERIC.test(c)) {\n buffer += c.toLowerCase(); // ASCII-safe\n } else if (c === ':') {\n this._scheme = buffer;\n buffer = '';\n if (stateOverride) {\n break loop;\n }\n if (isRelativeScheme(this._scheme)) {\n this._isRelative = true;\n }\n if (this._scheme === 'file') {\n state = 'relative';\n } else if (this._isRelative && base &&\n base._scheme === this._scheme) {\n state = 'relative or authority';\n } else if (this._isRelative) {\n state = 'authority first slash';\n } else {\n state = 'scheme data';\n }\n } else if (!stateOverride) {\n buffer = '';\n cursor = 0;\n state = 'no scheme';\n continue;\n } else if (c === EOF) {\n break loop;\n } else {\n err('Code point not allowed in scheme: ' + c);\n break loop;\n }\n break;\n\n case 'scheme data':\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else {\n // XXX error handling\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._schemeData += percentEscape(c);\n }\n }\n break;\n\n case 'no scheme':\n if (!base || !(isRelativeScheme(base._scheme))) {\n err('Missing scheme.');\n invalid.call(this);\n } else {\n state = 'relative';\n continue;\n }\n break;\n\n case 'relative or authority':\n if (c === '/' && input[cursor + 1] === '/') {\n state = 'authority ignore slashes';\n } else {\n err('Expected /, got: ' + c);\n state = 'relative';\n continue;\n }\n break;\n\n case 'relative':\n this._isRelative = true;\n if (this._scheme !== 'file') {\n this._scheme = base._scheme;\n }\n if (c === EOF) {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._username = base._username;\n this._password = base._password;\n break loop;\n } else if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n state = 'relative slash';\n } else if (c === '?') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = '?';\n this._username = base._username;\n this._password = base._password;\n state = 'query';\n } else if (c === '#') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._fragment = '#';\n this._username = base._username;\n this._password = base._password;\n state = 'fragment';\n } else {\n var nextC = input[cursor + 1];\n var nextNextC = input[cursor + 2];\n if (this._scheme !== 'file' || !ALPHA.test(c) ||\n (nextC !== ':' && nextC !== '|') ||\n (nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' &&\n nextNextC !== '?' && nextNextC !== '#')) {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n this._path = base._path.slice();\n this._path.pop();\n }\n state = 'relative path';\n continue;\n }\n break;\n\n case 'relative slash':\n if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n if (this._scheme === 'file') {\n state = 'file host';\n } else {\n state = 'authority ignore slashes';\n }\n } else {\n if (this._scheme !== 'file') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n }\n state = 'relative path';\n continue;\n }\n break;\n\n case 'authority first slash':\n if (c === '/') {\n state = 'authority second slash';\n } else {\n err('Expected \\'/\\', got: ' + c);\n state = 'authority ignore slashes';\n continue;\n }\n break;\n\n case 'authority second slash':\n state = 'authority ignore slashes';\n if (c !== '/') {\n err('Expected \\'/\\', got: ' + c);\n continue;\n }\n break;\n\n case 'authority ignore slashes':\n if (c !== '/' && c !== '\\\\') {\n state = 'authority';\n continue;\n } else {\n err('Expected authority, got: ' + c);\n }\n break;\n\n case 'authority':\n if (c === '@') {\n if (seenAt) {\n err('@ already seen.');\n buffer += '%40';\n }\n seenAt = true;\n for (var i = 0; i < buffer.length; i++) {\n var cp = buffer[i];\n if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n err('Invalid whitespace in authority.');\n continue;\n }\n // XXX check URL code points\n if (cp === ':' && this._password === null) {\n this._password = '';\n continue;\n }\n var tempC = percentEscape(cp);\n if (this._password !== null) {\n this._password += tempC;\n } else {\n this._username += tempC;\n }\n }\n buffer = '';\n } else if (c === EOF || c === '/' || c === '\\\\' ||\n c === '?' || c === '#') {\n cursor -= buffer.length;\n buffer = '';\n state = 'host';\n continue;\n } else {\n buffer += c;\n }\n break;\n\n case 'file host':\n if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n if (buffer.length === 2 && ALPHA.test(buffer[0]) &&\n (buffer[1] === ':' || buffer[1] === '|')) {\n state = 'relative path';\n } else if (buffer.length === 0) {\n state = 'relative path start';\n } else {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n }\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid whitespace in file host.');\n } else {\n buffer += c;\n }\n break;\n\n case 'host':\n case 'hostname':\n if (c === ':' && !seenBracket) {\n // XXX host parsing\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'port';\n if (stateOverride === 'hostname') {\n break loop;\n }\n } else if (c === EOF || c === '/' ||\n c === '\\\\' || c === '?' || c === '#') {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n if (stateOverride) {\n break loop;\n }\n continue;\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n if (c === '[') {\n seenBracket = true;\n } else if (c === ']') {\n seenBracket = false;\n }\n buffer += c;\n } else {\n err('Invalid code point in host/hostname: ' + c);\n }\n break;\n\n case 'port':\n if (/[0-9]/.test(c)) {\n buffer += c;\n } else if (c === EOF || c === '/' || c === '\\\\' ||\n c === '?' || c === '#' || stateOverride) {\n if (buffer !== '') {\n var temp = parseInt(buffer, 10);\n if (temp !== relative[this._scheme]) {\n this._port = temp + '';\n }\n buffer = '';\n }\n if (stateOverride) {\n break loop;\n }\n state = 'relative path start';\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid code point in port: ' + c);\n } else {\n invalid.call(this);\n }\n break;\n\n case 'relative path start':\n if (c === '\\\\') {\n err('\\'\\\\\\' not allowed in path.');\n }\n state = 'relative path';\n if (c !== '/' && c !== '\\\\') {\n continue;\n }\n break;\n\n case 'relative path':\n if (c === EOF || c === '/' || c === '\\\\' ||\n (!stateOverride && (c === '?' || c === '#'))) {\n if (c === '\\\\') {\n err('\\\\ not allowed in relative path.');\n }\n var tmp;\n if ((tmp = relativePathDotMapping[buffer.toLowerCase()])) {\n buffer = tmp;\n }\n if (buffer === '..') {\n this._path.pop();\n if (c !== '/' && c !== '\\\\') {\n this._path.push('');\n }\n } else if (buffer === '.' && c !== '/' && c !== '\\\\') {\n this._path.push('');\n } else if (buffer !== '.') {\n if (this._scheme === 'file' && this._path.length === 0 &&\n buffer.length === 2 && ALPHA.test(buffer[0]) &&\n buffer[1] === '|') {\n buffer = buffer[0] + ':';\n }\n this._path.push(buffer);\n }\n buffer = '';\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n }\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n buffer += percentEscape(c);\n }\n break;\n\n case 'query':\n if (!stateOverride && c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._query += percentEscapeQuery(c);\n }\n break;\n\n case 'fragment':\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._fragment += c;\n }\n break;\n }\n\n cursor++;\n }\n }\n\n function clear() {\n this._scheme = '';\n this._schemeData = '';\n this._username = '';\n this._password = null;\n this._host = '';\n this._port = '';\n this._path = [];\n this._query = '';\n this._fragment = '';\n this._isInvalid = false;\n this._isRelative = false;\n }\n\n // Does not process domain names or IP addresses.\n // Does not handle encoding for the query parameter.\n function JURL(url, base /* , encoding */) {\n if (base !== undefined && !(base instanceof JURL)) {\n base = new JURL(String(base));\n }\n\n this._url = url;\n clear.call(this);\n\n var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n // encoding = encoding || 'utf-8'\n\n parse.call(this, input, null, base);\n }\n\n JURL.prototype = {\n toString() {\n return this.href;\n },\n get href() {\n if (this._isInvalid) {\n return this._url;\n }\n var authority = '';\n if (this._username !== '' || this._password !== null) {\n authority = this._username +\n (this._password !== null ? ':' + this._password : '') + '@';\n }\n\n return this.protocol +\n (this._isRelative ? '//' + authority + this.host : '') +\n this.pathname + this._query + this._fragment;\n },\n // The named parameter should be different from the setter's function name.\n // Otherwise Safari 5 will throw an error (see issue 8541)\n set href(value) {\n clear.call(this);\n parse.call(this, value);\n },\n\n get protocol() {\n return this._scheme + ':';\n },\n set protocol(value) {\n if (this._isInvalid) {\n return;\n }\n parse.call(this, value + ':', 'scheme start');\n },\n\n get host() {\n return this._isInvalid ? '' : this._port ?\n this._host + ':' + this._port : this._host;\n },\n set host(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'host');\n },\n\n get hostname() {\n return this._host;\n },\n set hostname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'hostname');\n },\n\n get port() {\n return this._port;\n },\n set port(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'port');\n },\n\n get pathname() {\n return this._isInvalid ? '' : this._isRelative ?\n '/' + this._path.join('/') : this._schemeData;\n },\n set pathname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._path = [];\n parse.call(this, value, 'relative path start');\n },\n\n get search() {\n return this._isInvalid || !this._query || this._query === '?' ?\n '' : this._query;\n },\n set search(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._query = '?';\n if (value[0] === '?') {\n value = value.slice(1);\n }\n parse.call(this, value, 'query');\n },\n\n get hash() {\n return this._isInvalid || !this._fragment || this._fragment === '#' ?\n '' : this._fragment;\n },\n set hash(value) {\n if (this._isInvalid) {\n return;\n }\n this._fragment = '#';\n if (value[0] === '#') {\n value = value.slice(1);\n }\n parse.call(this, value, 'fragment');\n },\n\n get origin() {\n var host;\n if (this._isInvalid || !this._scheme) {\n return '';\n }\n // javascript: Gecko returns String(\"\"), WebKit/Blink String(\"null\")\n // Gecko throws error for \"data://\"\n // data: Gecko returns \"\", Blink returns \"data://\", WebKit returns \"null\"\n // Gecko returns String(\"\") for file: mailto:\n // WebKit/Blink returns String(\"SCHEME://\") for file: mailto:\n switch (this._scheme) {\n case 'data':\n case 'file':\n case 'javascript':\n case 'mailto':\n return 'null';\n case 'blob':\n // Special case of blob: -- returns valid origin of _schemeData.\n try {\n return new JURL(this._schemeData).origin || 'null';\n } catch (_) {\n // Invalid _schemeData origin -- ignoring errors.\n }\n return 'null';\n }\n host = this.host;\n if (!host) {\n return '';\n }\n return this._scheme + '://' + host;\n },\n };\n\n exports.URL = JURL;\n})();\n","/* Copyright 2012 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/* globals requirejs, __non_webpack_require__ */\n/* eslint no-var: error */\n\nimport {\n assert, createPromiseCapability, deprecated, getVerbosityLevel, info,\n InvalidPDFException, isArrayBuffer, isSameOrigin, MissingPDFException,\n NativeImageDecoding, PasswordException, setVerbosityLevel, shadow,\n stringToBytes, UnexpectedResponseException, UnknownErrorException,\n unreachable, URL, warn\n} from '../shared/util';\nimport {\n DOMCanvasFactory, DOMCMapReaderFactory, DummyStatTimer, loadScript,\n PageViewport, RenderingCancelledException, StatTimer\n} from './dom_utils';\nimport { FontFaceObject, FontLoader } from './font_loader';\nimport { apiCompatibilityParams } from './api_compatibility';\nimport { CanvasGraphics } from './canvas';\nimport globalScope from '../shared/global_scope';\nimport { GlobalWorkerOptions } from './worker_options';\nimport { MessageHandler } from '../shared/message_handler';\nimport { Metadata } from './metadata';\nimport { PDFDataTransportStream } from './transport_stream';\nimport { WebGLContext } from './webgl';\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\n\nlet isWorkerDisabled = false;\nlet fallbackWorkerSrc;\n\nlet fakeWorkerFilesLoader = null;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {\n let useRequireEnsure = false;\n // For GENERIC build we need to add support for different fake file loaders\n // for different frameworks.\n if (typeof window === 'undefined') {\n // node.js - disable worker and set require.ensure.\n isWorkerDisabled = true;\n if (typeof __non_webpack_require__.ensure === 'undefined') {\n __non_webpack_require__.ensure = __non_webpack_require__('node-ensure');\n }\n useRequireEnsure = true;\n } else if (typeof __non_webpack_require__ !== 'undefined' &&\n typeof __non_webpack_require__.ensure === 'function') {\n useRequireEnsure = true;\n }\n if (typeof requirejs !== 'undefined' && requirejs.toUrl) {\n fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');\n }\n const dynamicLoaderSupported =\n typeof requirejs !== 'undefined' && requirejs.load;\n fakeWorkerFilesLoader = useRequireEnsure ? (function() {\n return new Promise(function(resolve, reject) {\n __non_webpack_require__.ensure([], function() {\n try {\n let worker;\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('LIB')) {\n worker = __non_webpack_require__('../pdf.worker.js');\n } else {\n worker = __non_webpack_require__('./pdf.worker.js');\n }\n resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n reject(ex);\n }\n }, reject, 'pdfjsWorker');\n });\n }) : dynamicLoaderSupported ? (function() {\n return new Promise(function(resolve, reject) {\n requirejs(['pdfjs-dist/build/pdf.worker'], function(worker) {\n try {\n resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n });\n }) : null;\n\n if (!fallbackWorkerSrc && typeof document !== 'undefined') {\n const pdfjsFilePath = document.currentScript && document.currentScript.src;\n if (pdfjsFilePath) {\n fallbackWorkerSrc =\n pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, '.worker$1$2');\n }\n }\n}\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params The document initialization\n * parameters. The \"url\" key is always present.\n * @return {IPDFStream}\n */\n\n/** @type IPDFStreamFactory */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates a IPDFStream as an alternative PDF data\n * transport.\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - the factory function\n * that takes document initialization parameters (including a \"url\") and returns\n * an instance of IPDFStream.\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string} url - The URL of the PDF.\n * @property {TypedArray|Array|string} data - Binary PDF data. Use typed arrays\n * (Uint8Array) to improve the memory usage. If PDF data is BASE64-encoded,\n * use atob() to convert it to a binary string first.\n * @property {Object} httpHeaders - Basic authentication headers.\n * @property {boolean} withCredentials - Indicates whether or not cross-site\n * Access-Control requests should be made using credentials such as cookies\n * or authorization headers. The default is false.\n * @property {string} password - For decrypting password-protected PDFs.\n * @property {TypedArray} initialData - A typed array with the first portion or\n * all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} length - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} range\n * @property {number} rangeChunkSize - Optional parameter to specify\n * maximum number of bytes fetched per range request. The default value is\n * 2^16 = 65536.\n * @property {PDFWorker} worker - (optional) The worker that will be used for\n * the loading and parsing of the PDF data.\n * @property {boolean} postMessageTransfers - (optional) Enables transfer usage\n * in postMessage for ArrayBuffers. The default value is `true`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n * @property {string} docBaseUrl - (optional) The base URL of the document,\n * used when attempting to recover valid absolute URLs for annotations, and\n * outline items, that (incorrectly) only specify relative URLs.\n * @property {string} nativeImageDecoderSupport - (optional) Strategy for\n * decoding certain (simple) JPEG images in the browser. This is useful for\n * environments without DOM image and canvas support, such as e.g. Node.js.\n * Valid values are 'decode', 'display' or 'none'; where 'decode' is intended\n * for browsers with full image/canvas support, 'display' for environments\n * with limited image support through stubs (useful for SVG conversion),\n * and 'none' where JPEG images will be decoded entirely by PDF.js.\n * The default value is 'decode'.\n * @property {string} cMapUrl - (optional) The URL where the predefined\n * Adobe CMaps are located. Include trailing slash.\n * @property {boolean} cMapPacked - (optional) Specifies if the Adobe CMaps are\n * binary packed.\n * @property {Object} CMapReaderFactory - (optional) The factory that will be\n * used when reading built-in CMap files. Providing a custom factory is useful\n * for environments without `XMLHttpRequest` support, such as e.g. Node.js.\n * The default value is {DOMCMapReaderFactory}.\n * @property {boolean} stopAtErrors - (optional) Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n * @property {number} maxImageSize - (optional) The maximum allowed image size\n * in total pixels, i.e. width * height. Images above this value will not be\n * rendered. Use -1 for no limit, which is also the default value.\n * @property {boolean} isEvalSupported - (optional) Determines if we can eval\n * strings as JS. Primarily used to improve performance of font rendering,\n * and when parsing PDF functions. The default value is `true`.\n * @property {boolean} disableFontFace - (optional) By default fonts are\n * converted to OpenType fonts and loaded via font face rules. If disabled,\n * fonts will be rendered using a built-in font renderer that constructs the\n * glyphs with primitive path commands. The default value is `false`.\n * @property {boolean} disableRange - (optional) Disable range request loading\n * of PDF files. When enabled, and if the server supports partial content\n * requests, then the PDF will be fetched in chunks.\n * The default value is `false`.\n * @property {boolean} disableStream - (optional) Disable streaming of PDF file\n * data. By default PDF.js attempts to load PDFs in chunks.\n * The default value is `false`.\n * @property {boolean} disableAutoFetch - (optional) Disable pre-fetching of PDF\n * file data. When range requests are enabled PDF.js will automatically keep\n * fetching more data even if it isn't needed to display the current page.\n * The default value is `false`.\n * NOTE: It is also necessary to disable streaming, see above,\n * in order for disabling of pre-fetching to work correctly.\n * @property {boolean} disableCreateObjectURL - (optional) Disable the use of\n * `URL.createObjectURL`, for compatibility with older browsers.\n * The default value is `false`.\n * @property {boolean} pdfBug - (optional) Enables special hooks for debugging\n * PDF.js (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * @typedef {Object} PDFDocumentStats\n * @property {Array} streamTypes - Used stream types in the document (an item\n * is set to true if specific stream ID was used in the document).\n * @property {Array} fontTypes - Used font type in the document (an item is set\n * to true if specific font ID was used in the document).\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR)\n * is used, which means it must follow the same origin rules that any XHR does\n * e.g. No cross domain requests without CORS.\n *\n * @param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src\n * Can be a url to where a PDF is located, a typed array (Uint8Array)\n * already populated with data or parameter object.\n *\n * @return {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === 'string') {\n source = { url: src, };\n } else if (isArrayBuffer(src)) {\n source = { data: src, };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src, };\n } else {\n if (typeof src !== 'object') {\n throw new Error('Invalid parameter in getDocument, ' +\n 'need either Uint8Array, string or a parameter object');\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n 'Invalid parameter object: need either .data, .range or .url');\n }\n source = src;\n }\n const params = Object.create(null);\n let rangeTransport = null, worker = null;\n\n for (const key in source) {\n if (key === 'url' && typeof window !== 'undefined') {\n // The full path is required in the 'url' field.\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 // Converting string or array-like data to Uint8Array.\n const pdfBytes = source[key];\n if (typeof pdfBytes === 'string') {\n params[key] = stringToBytes(pdfBytes);\n } else if (typeof pdfBytes === 'object' && pdfBytes !== null &&\n !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if (isArrayBuffer(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error('Invalid PDF binary data: either typed array, ' +\n 'string or array-like object is expected in the ' +\n 'data property.');\n }\n continue;\n }\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.pdfBug = params.pdfBug === true;\n\n const NativeImageDecoderValues = Object.values(NativeImageDecoding);\n if (params.nativeImageDecoderSupport === undefined ||\n !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n params.nativeImageDecoderSupport =\n (apiCompatibilityParams.nativeImageDecoderSupport ||\n NativeImageDecoding.DECODE);\n }\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n if (typeof params.isEvalSupported !== 'boolean') {\n params.isEvalSupported = true;\n }\n if (typeof params.disableFontFace !== 'boolean') {\n params.disableFontFace = apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.disableRange !== 'boolean') {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== 'boolean') {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== 'boolean') {\n params.disableAutoFetch = false;\n }\n if (typeof params.disableCreateObjectURL !== 'boolean') {\n params.disableCreateObjectURL =\n apiCompatibilityParams.disableCreateObjectURL || false;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n postMessageTransfers: params.postMessageTransfers,\n verbosity: params.verbosity,\n port: GlobalWorkerOptions.workerPort,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) :\n new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docId = task.docId;\n worker.promise.then(function() {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n return _fetchDocument(worker, params, rangeTransport, docId).then(\n function(workerId) {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\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 const messageHandler = new MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n const transport = new WorkerTransport(messageHandler, task, networkStream,\n params);\n task._transport = transport;\n messageHandler.send('Ready', null);\n });\n }).catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId Unique document id, used as MessageHandler id.\n * @returns {Promise} The promise, which is resolved when worker id of\n * MessageHandler is known.\n * @private\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 }\n return worker.messageHandler.sendWithPromise('GetDocRequest', {\n docId,\n apiVersion: (typeof PDFJSDev !== 'undefined' ?\n PDFJSDev.eval('BUNDLE_VERSION') : null),\n source: { // Only send the required properties, and *not* the entire object.\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 disableCreateObjectURL: source.disableCreateObjectURL,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n nativeImageDecoderSupport: source.nativeImageDecoderSupport,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n }).then(function(workerId) {\n if (worker.destroyed) {\n throw new Error('Worker was destroyed');\n }\n return workerId;\n });\n}\n\n/**\n * PDF document loading operation.\n * @class\n * @alias PDFDocumentLoadingTask\n */\nconst PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\n\n /** @constructs PDFDocumentLoadingTask */\n class PDFDocumentLoadingTask {\n constructor() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique document loading task id -- used in MessageHandlers.\n * @type {string}\n */\n this.docId = 'd' + (nextDocumentId++);\n\n /**\n * Shows if loading task is destroyed.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if wrong or no password was provided.\n * The callback receives two parameters: function that needs to be called\n * with new password and reason (see {PasswordResponses}).\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar). The callback receives\n * an {Object} with the properties: {number} loaded and {number} total.\n */\n this.onProgress = null;\n\n /**\n * Callback to when unsupported feature is used. The callback receives\n * an {UNSUPPORTED_FEATURES} argument.\n */\n this.onUnsupportedFeature = null;\n }\n\n /**\n * @return {Promise}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Aborts all network requests and destroys worker.\n * @return {Promise} A promise that is resolved after destruction activity\n * is completed.\n */\n destroy() {\n this.destroyed = true;\n\n const transportDestroyed = !this._transport ? Promise.resolve() :\n this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n });\n }\n\n /**\n * Registers callbacks to indicate the document loading completion.\n *\n * @param {function} onFulfilled The callback for the loading completion.\n * @param {function} onRejected The callback for the loading failure.\n * @return {Promise} A promise that is resolved after the onFulfilled or\n * onRejected callback.\n */\n then(onFulfilled, onRejected) {\n deprecated('PDFDocumentLoadingTask.then method, ' +\n 'use the `promise` getter instead.');\n return this.promise.then.apply(this.promise, arguments);\n }\n }\n return PDFDocumentLoadingTask;\n})();\n\n/**\n * Abstract class to support range requests file loading.\n * @param {number} length\n * @param {Uint8Array} initialData\n */\nclass PDFDataRangeTransport {\n constructor(length, initialData) {\n this.length = length;\n this.initialData = initialData;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._readyCapability = 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 onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded);\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 transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n unreachable('Abstract method PDFDataRangeTransport.requestDataRange');\n }\n\n abort() {}\n}\n\n/**\n * Proxy to a PDFDocument in the worker thread. Also, contains commonly used\n * properties that can be read synchronously.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport, loadingTask) {\n this.loadingTask = loadingTask;\n\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n /**\n * @return {number} Total number of pages the PDF contains.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @return {string} A (not guaranteed to be) unique ID to identify a PDF.\n */\n get fingerprint() {\n return this._pdfInfo.fingerprint;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @return {Promise} A promise that is resolved with a {@link PDFPageProxy}\n * object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {{num: number, gen: number}} ref - The page reference. Must have\n * the `num` and `gen` properties.\n * @return {Promise} A promise that is resolved with the page index that is\n * associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @return {Promise} A promise that is resolved with a lookup table for\n * mapping named destinations to reference numbers.\n *\n * This can be slow for large documents. Use `getDestination` instead.\n */\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n /**\n * @param {string} id - The named destination to get.\n * @return {Promise} A promise that is resolved with all information\n * of the given named destination.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} containing\n * the page labels that correspond to the page indexes, or `null` when\n * no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {string} containing\n * the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a lookup table for\n * mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} of all the\n * JavaScript strings in the name tree, or `null` if no JavaScript exists.\n */\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} that is a\n * tree outline (if it has one) of the PDF. The tree is in the format of:\n * [\n * {\n * title: string,\n * bold: boolean,\n * italic: boolean,\n * color: rgb Uint8ClampedArray,\n * dest: dest obj,\n * url: string,\n * items: array of more items like this\n * },\n * ...\n * ]\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} that contains\n * the permission flags for the PDF document, or `null` when\n * no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Object} that has\n * `info` and `metadata` properties. `info` is an {Object} filled with\n * anything available in the information dictionary and similarly\n * `metadata` is a {Metadata} object with information from the metadata\n * section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {TypedArray} that has\n * the raw data from the PDF.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @return {Promise} A promise that is resolved when the document's data\n * is loaded. It is resolved with an {Object} that contains the `length`\n * property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * @return {Promise} A promise this is resolved with current statistics about\n * document structures (see {@link PDFDocumentStats}).\n */\n getStats() {\n return this._transport.getStats();\n }\n\n /**\n * Cleans up resources allocated by the document, e.g. created `@font-face`.\n */\n cleanup() {\n this._transport.startCleanup();\n }\n\n /**\n * Destroys the current document instance and terminates the worker.\n */\n destroy() {\n return this.loadingTask.destroy();\n }\n\n /**\n * @return {Object} A subset of the current {DocumentInitParameters},\n * which are either needed in the viewer and/or whose default values\n * may be affected by the `apiCompatibilityParams`.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n}\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} normalizeWhitespace - replaces all occurrences of\n * whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {array} items - array of {@link TextItem}\n * @property {Object} styles - {@link TextStyles} objects, indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - text content.\n * @property {string} dir - text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {array} transform - transformation matrix.\n * @property {number} width - width in device space.\n * @property {number} height - height in device space.\n * @property {string} fontName - font name used by pdf.js for converted font.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - font ascent.\n * @property {number} descent - font descent.\n * @property {boolean} vertical - text is in vertical mode.\n * @property {string} fontFamily - possible font family\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} intent - Determines the annotations that will be fetched,\n * can be either 'display' (viewable annotations) or 'print'\n * (printable annotations).\n * If the parameter is omitted, all annotations are fetched.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by\n * calling of PDFPage.getViewport method.\n * @property {string} intent - Rendering intent, can be 'display' or 'print'\n * (default value is 'display').\n * @property {boolean} enableWebGL - (optional) Enables WebGL accelerated\n * rendering for some operations. The default value is `false`.\n * @property {boolean} renderInteractiveForms - (optional) Whether or not\n * interactive form elements are rendered in the display\n * layer. If so, we do not render them on canvas as well.\n * @property {Array} transform - (optional) Additional transform, applied\n * just before viewport transform.\n * @property {Object} imageLayer - (optional) An object that has beginLayout,\n * endLayout and appendImage functions.\n * @property {Object} canvasFactory - (optional) The factory that will be used\n * when creating canvases. The default value is\n * {DOMCanvasFactory}.\n * @property {Object} background - (optional) Background to use for the canvas.\n * Can use any valid canvas.fillStyle: A DOMString parsed as\n * CSS <color> value, a CanvasGradient object (a linear or\n * radial gradient) or a CanvasPattern object (a repetitive\n * image). The default value is 'rgb(255,255,255)'.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array} fnArray - Array containing the operator functions.\n * @property {Array} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a PDFPage in the worker thread.\n * @alias PDFPageProxy\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 StatTimer() : DummyStatTimer);\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n\n /**\n * @return {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this.pageIndex + 1;\n }\n\n /**\n * @return {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @return {Object} The reference that points to this page. It has 'num' and\n * 'gen' properties.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @return {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n /**\n * @return {Array} An array of the visible portion of the PDF page in the\n * user space units - [x1, y1, x2, y2].\n */\n get view() {\n return this._pageInfo.view;\n }\n\n /**\n * @param {number} scale The desired scale of the viewport.\n * @param {number} rotate Degrees to rotate the viewport. If omitted this\n * defaults to the page rotation.\n * @param {boolean} dontFlip (optional) If true, axis Y will not be flipped.\n * @return {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport(scale, rotate = this.rotate, dontFlip = false) {\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation: rotate,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @return {Promise} A promise that is resolved with an {Array} of the\n * annotation objects.\n */\n getAnnotations({ intent = null, } = {}) {\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(this.pageIndex,\n intent);\n this.annotationsIntent = intent;\n }\n return this.annotationsPromise;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n * @param {RenderParameters} params Page render parameters.\n * @return {RenderTask} An object that contains the promise, which\n * is resolved when the page finishes rendering.\n */\n render({ canvasContext, viewport, intent = 'display', enableWebGL = false,\n renderInteractiveForms = false, transform = null, imageLayer = null,\n canvasFactory = null, background = null, }) {\n const stats = this._stats;\n stats.time('Overall');\n\n // If there was a pending destroy cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n const renderingIntent = (intent === 'print' ? 'print' : 'display');\n const canvasFactoryInstance = canvasFactory || new DOMCanvasFactory();\n const webGLContext = new WebGLContext({\n enable: enableWebGL,\n });\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n const intentState = this.intentStates[renderingIntent];\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.receivingOperatorList = true;\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n stats.time('Page Request');\n this._transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageNumber - 1,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true,\n });\n }\n\n const complete = (error) => {\n const i = intentState.renderTasks.indexOf(internalRenderTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n if (this.cleanupAfterRender) {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n } else {\n internalRenderTask.capability.resolve();\n }\n stats.timeEnd('Rendering');\n stats.timeEnd('Overall');\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: { // Include the required properties, and *not* the entire object.\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageNumber: this.pageNumber,\n canvasFactory: canvasFactoryInstance,\n webGLContext,\n useRequestAnimationFrame: renderingIntent !== 'print',\n pdfBug: this._pdfBug,\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n intentState.renderTasks.push(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n intentState.displayReadyCapability.promise.then((transparency) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n stats.time('Rendering');\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n\n return renderTask;\n }\n\n /**\n * @return {Promise} A promise resolved with an {@link PDFOperatorList}\n * object that represents page's operator list.\n */\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n const i = intentState.renderTasks.indexOf(opListTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n const renderingIntent = 'oplist';\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n const intentState = this.intentStates[renderingIntent];\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.receivingOperatorList = true;\n intentState.opListReadCapability = createPromiseCapability();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n this._stats.time('Page Request');\n this._transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageIndex,\n intent: renderingIntent,\n });\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @return {ReadableStream} ReadableStream to read textContent chunks.\n */\n streamTextContent({ normalizeWhitespace = false,\n disableCombineTextItems = false, } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream('GetTextContent', {\n pageIndex: this.pageNumber - 1,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true,\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n });\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @return {Promise} That is resolved a {@link TextContent}\n * object that represent the page text content.\n */\n getTextContent(params = {}) {\n const readableStream = this.streamTextContent(params);\n\n return new Promise(function(resolve, reject) {\n function pump() {\n reader.read().then(function({ value, done, }) {\n if (done) {\n resolve(textContent);\n return;\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 /**\n * Destroys page object.\n */\n _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this.pageIndex] = null;\n\n const waitOn = [];\n Object.keys(this.intentStates).forEach(function(intent) {\n if (intent === 'oplist') {\n // Avoid errors below, since the renderTasks are just stubs.\n return;\n }\n const intentState = this.intentStates[intent];\n intentState.renderTasks.forEach(function(renderTask) {\n const renderCompleted = renderTask.capability.promise.\n catch(function() {}); // ignoring failures\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n /**\n * Cleans up resources allocated by the page.\n * @param {boolean} resetStats - (optional) Reset page stats, if enabled.\n * The default value is `false`.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n this._tryCleanup(resetStats);\n }\n\n /**\n * For internal use only. Attempts to clean up if rendering is in a state\n * where that's possible.\n * @ignore\n */\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup ||\n Object.keys(this.intentStates).some(function(intent) {\n const intentState = this.intentStates[intent];\n return (intentState.renderTasks.length !== 0 ||\n intentState.receivingOperatorList);\n }, this)) {\n return;\n }\n\n Object.keys(this.intentStates).forEach(function(intent) {\n delete this.intentStates[intent];\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n if (resetStats && this._stats instanceof StatTimer) {\n this._stats = new StatTimer();\n }\n this.pendingCleanup = false;\n }\n\n /**\n * For internal use only.\n * @ignore\n */\n _startRenderPage(transparency, intent) {\n const intentState = this.intentStates[intent];\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n /**\n * For internal use only.\n * @ignore\n */\n _renderPageChunk(operatorListChunk, intent) {\n const intentState = this.intentStates[intent];\n // Add the new chunk to the current operator list.\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(\n operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n intentState.receivingOperatorList = false;\n this._tryCleanup();\n }\n }\n\n /**\n * @return {Object} Returns page stats, if enabled.\n */\n get stats() {\n return (this._stats instanceof StatTimer ? this._stats : null);\n }\n}\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 // Trying to perform a structured clone close to the spec, including\n // transfers.\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n if (cloned.has(value)) { // already cloned the object\n return cloned.get(value);\n }\n let buffer, result;\n if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n // We found object with ArrayBuffer (typed array).\n const transferable = transfers && transfers.includes(buffer);\n if (value === buffer) {\n // Special case when we are faking typed arrays in compatibility.js.\n result = value;\n } else if (transferable) {\n result = new value.constructor(buffer, value.byteOffset,\n value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n cloned.set(value, result);\n return result;\n }\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result); // adding to cache now for cyclic references\n // Cloning all value and object properties, however ignoring properties\n // defined via getter.\n for (const i in value) {\n let desc, p = value;\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n if (typeof desc.value === 'undefined' ||\n typeof desc.value === 'function') {\n continue;\n }\n result[i] = cloneValue(desc.value);\n }\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(function(listener) {\n listener.call(this, { data: obj, });\n }, this);\n return;\n }\n\n const cloned = new WeakMap();\n const e = { data: cloneValue(obj), };\n this._deferred.then(() => {\n this._listeners.forEach(function(listener) {\n listener.call(this, e);\n }, this);\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 this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners = [];\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} name - (optional) The name of the worker.\n * @property {Object} port - (optional) The `workerPort`.\n * @property {boolean} postMessageTransfers - (optional) Enables transfer usage\n * in postMessage for ArrayBuffers. The default value is `true`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n */\n\n/**\n * PDF.js web worker abstraction, it controls instantiation of PDF documents and\n * WorkerTransport for them. If creation of a web worker is not possible,\n * a \"fake\" worker will be used instead.\n * @class\n */\nconst PDFWorker = (function PDFWorkerClosure() {\n const pdfWorkerPorts = new WeakMap();\n let nextFakeWorkerId = 0;\n let fakeWorkerFilesLoadedCapability;\n\n function getWorkerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (typeof fallbackWorkerSrc !== 'undefined') {\n return fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n try {\n if (typeof window !== 'undefined') {\n return (window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler);\n }\n } catch (ex) { }\n return null;\n }\n\n // Loads worker code into main thread.\n function setupFakeWorkerGlobal() {\n if (fakeWorkerFilesLoadedCapability) {\n return fakeWorkerFilesLoadedCapability.promise;\n }\n fakeWorkerFilesLoadedCapability = createPromiseCapability();\n\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using a `<script>` tag.\n fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);\n return fakeWorkerFilesLoadedCapability.promise;\n }\n // In the developer build load worker_loader.js which in turn loads all the\n // other files and resolves the promise. In production only the\n // pdf.worker.js file is needed.\n if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {\n if (typeof SystemJS === 'object') {\n SystemJS.import('pdfjs/core/worker').then((worker) => {\n fakeWorkerFilesLoadedCapability.resolve(worker.WorkerMessageHandler);\n }).catch(fakeWorkerFilesLoadedCapability.reject);\n } else if (typeof require === 'function') {\n try {\n const worker = require('../core/worker.js');\n fakeWorkerFilesLoadedCapability.resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n fakeWorkerFilesLoadedCapability.reject(ex);\n }\n } else {\n fakeWorkerFilesLoadedCapability.reject(new Error(\n 'SystemJS or CommonJS must be used to load fake worker.'));\n }\n } else {\n const loader = fakeWorkerFilesLoader || function() {\n return loadScript(getWorkerSrc()).then(function() {\n return window.pdfjsWorker.WorkerMessageHandler;\n });\n };\n loader().then(fakeWorkerFilesLoadedCapability.resolve,\n fakeWorkerFilesLoadedCapability.reject);\n }\n return fakeWorkerFilesLoadedCapability.promise;\n }\n\n function createCDNWrapper(url) {\n // We will rely on blob URL's property to specify origin.\n // We want this function to fail in case if createObjectURL or Blob do not\n // exist or fail for some reason -- our Worker creation will fail anyway.\n const wrapper = 'importScripts(\\'' + url + '\\');';\n return URL.createObjectURL(new Blob([wrapper]));\n }\n\n /**\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\n class PDFWorker {\n constructor({ name = null, port = null, postMessageTransfers = true,\n verbosity = getVerbosityLevel(), } = {}) {\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 = postMessageTransfers !== false;\n this.verbosity = verbosity;\n\n this._readyCapability = createPromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n pdfWorkerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\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 MessageHandler('main', 'worker', port);\n this._messageHandler.on('ready', function() {\n // Ignoring 'ready' event -- MessageHandler shall be already initialized\n // and ready to accept the messages.\n });\n this._readyCapability.resolve();\n }\n\n _initialize() {\n // If worker support isn't disabled explicit and the browser has worker\n // support, create a new web worker and test if it/the browser fulfills\n // all requirements to run parts of pdf.js in a web worker.\n // Right now, the requirement is, that an Uint8Array is still an\n // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n if (typeof Worker !== 'undefined' && !isWorkerDisabled &&\n !getMainThreadWorkerMessageHandler()) {\n let workerSrc = getWorkerSrc();\n\n try {\n // Wraps workerSrc path into blob URL, if the former does not belong\n // to the same origin.\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC') &&\n !isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(\n new URL(workerSrc, window.location).href);\n }\n\n // Some versions of FF can't create a worker on localhost, see:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n const worker = new Worker(workerSrc);\n const messageHandler = new MessageHandler('main', 'worker', worker);\n const terminateEarly = () => {\n worker.removeEventListener('error', onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error('Worker was destroyed'));\n } else {\n // Fall back to fake worker if the termination is caused by an\n // error (e.g. NetworkError / SecurityError).\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n // Worker failed to initialize due to an error. Clean up and fall\n // back to the fake worker.\n terminateEarly();\n }\n };\n worker.addEventListener('error', onWorkerError);\n\n messageHandler.on('test', (data) => {\n worker.removeEventListener('error', onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n if (data && data.supportTypedArray) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n if (!data.supportTransfers) {\n this.postMessageTransfers = false;\n }\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send('configure', {\n verbosity: this.verbosity,\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n\n messageHandler.on('ready', (data) => {\n worker.removeEventListener('error', onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n try {\n sendTest();\n } catch (e) {\n // We need fallback to a faked worker.\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n let testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);\n // Some versions of Opera throw a DATA_CLONE_ERR on serializing the\n // typed array. Also, checking if we can use transfers.\n try {\n messageHandler.send('test', testObj, [testObj.buffer]);\n } catch (ex) {\n info('Cannot use postMessage transfers');\n testObj[0] = 0;\n messageHandler.send('test', testObj);\n }\n };\n\n // It might take time for worker to initialize (especially when AMD\n // loader is used). We will try to send test immediately, and then\n // when 'ready' message will arrive. The worker shall process only\n // first received 'test'.\n sendTest();\n return;\n } catch (e) {\n info('The worker has been disabled.');\n }\n }\n // Either workers are disabled, not supported or have thrown an exception.\n // Thus, we fallback to a faked worker.\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!isWorkerDisabled) {\n 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 return;\n }\n const port = new LoopbackPort();\n this._port = port;\n\n // All fake workers use the same port, making id unique.\n const id = 'fake' + (nextFakeWorkerId++);\n\n // If the main thread is our worker, setup the handling for the\n // messages -- the main thread sends to it self.\n const workerHandler = new MessageHandler(id + '_worker', id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n\n const messageHandler = new MessageHandler(id, id + '_worker', port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n }).catch((reason) => {\n this._readyCapability.reject(\n new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n\n /**\n * Destroys the worker instance.\n */\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n // We need to terminate only web worker created resource.\n this._webWorker.terminate();\n this._webWorker = null;\n }\n pdfWorkerPorts.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n\n /**\n * @param {PDFWorkerParameters} params - The worker initialization\n * parameters.\n */\n static fromPort(params) {\n if (!params || !params.port) {\n throw new Error('PDFWorker.fromPort - invalid method signature.');\n }\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n return new PDFWorker(params);\n }\n\n static getWorkerSrc() {\n return getWorkerSrc();\n }\n }\n return PDFWorker;\n})();\n\n/**\n * For internal use only.\n * @ignore\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 FontLoader(loadingTask.docId);\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked,\n });\n\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = createPromiseCapability();\n\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 = createPromiseCapability();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(\n new Error('Worker was destroyed during onPassword callback'));\n }\n\n const waitOn = [];\n // We need to wait for all renderings to be completed, e.g.\n // timeout/rAF can take a long time.\n this.pageCache.forEach(function(page) {\n if (page) {\n waitOn.push(page._destroy());\n }\n });\n this.pageCache = [];\n this.pagePromises = [];\n // We also need to wait for the worker to finish its long running tasks.\n const terminated = this.messageHandler.sendWithPromise('Terminate', null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.fontLoader.clear();\n if (this._networkStream) {\n this._networkStream.cancelAllRequests();\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const { messageHandler, loadingTask, } = this;\n\n messageHandler.on('GetReader', function(data, sink) {\n assert(this._networkStream);\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = (evt) => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total,\n };\n };\n sink.onPull = () => {\n this._fullReader.read().then(function({ value, done, }) {\n if (done) {\n sink.close();\n return;\n }\n assert(isArrayBuffer(value));\n // Enqueue data chunk into sink, and transfer it\n // to other side as `Transferable` object.\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 }, this);\n\n messageHandler.on('ReaderHeadersReady', function(data) {\n const headersCapability = createPromiseCapability();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n // If stream or range are disabled, it's our only way to report\n // loading progress.\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(this._lastProgress);\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\n return headersCapability.promise;\n }, this);\n\n messageHandler.on('GetRangeReader', function(data, sink) {\n assert(this._networkStream);\n const rangeReader =\n this._networkStream.getRangeReader(data.begin, data.end);\n\n sink.onPull = () => {\n rangeReader.read().then(function({ value, done, }) {\n if (done) {\n sink.close();\n return;\n }\n assert(isArrayBuffer(value));\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 }, this);\n\n messageHandler.on('GetDoc', function({ pdfInfo, }) {\n this.numPages = pdfInfo.numPages;\n this.pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask);\n loadingTask._capability.resolve(this.pdfDocument);\n }, this);\n\n messageHandler.on('PasswordRequest', function(exception) {\n this._passwordCapability = createPromiseCapability();\n\n if (loadingTask.onPassword) {\n const updatePassword = (password) => {\n this._passwordCapability.resolve({\n password,\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(\n new PasswordException(exception.message, exception.code));\n }\n return this._passwordCapability.promise;\n }, this);\n\n messageHandler.on('PasswordException', function(exception) {\n loadingTask._capability.reject(\n new PasswordException(exception.message, exception.code));\n }, this);\n\n messageHandler.on('InvalidPDF', function(exception) {\n loadingTask._capability.reject(\n new InvalidPDFException(exception.message));\n }, this);\n\n messageHandler.on('MissingPDF', function(exception) {\n loadingTask._capability.reject(\n new MissingPDFException(exception.message));\n }, this);\n\n messageHandler.on('UnexpectedResponse', function(exception) {\n loadingTask._capability.reject(\n new UnexpectedResponseException(exception.message, exception.status));\n }, this);\n\n messageHandler.on('UnknownError', function(exception) {\n loadingTask._capability.reject(\n new UnknownErrorException(exception.message, exception.details));\n }, this);\n\n messageHandler.on('DataLoaded', function(data) {\n // For consistency: Ensure that progress is always reported when the\n // entire PDF file has been loaded, regardless of how it was fetched.\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length,\n });\n }\n this.downloadInfoCapability.resolve(data);\n }, this);\n\n messageHandler.on('StartRenderPage', function(data) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n const page = this.pageCache[data.pageIndex];\n page._stats.timeEnd('Page Request');\n page._startRenderPage(data.transparency, data.intent);\n }, this);\n\n messageHandler.on('RenderPageChunk', function(data) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n const page = this.pageCache[data.pageIndex];\n page._renderPageChunk(data.operatorList, data.intent);\n }, this);\n\n messageHandler.on('commonobj', function(data) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n const [id, type, exportedData] = data;\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 warn(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n if (params.pdfBug && globalScope.FontInspector &&\n globalScope.FontInspector.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalScope['FontInspector'].fontAdded(font, url);\n },\n };\n }\n const font = new FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry,\n });\n const fontReady = (fontObjs) => {\n this.commonObjs.resolve(id, font);\n };\n\n this.fontLoader.bind([font], fontReady);\n break;\n case 'FontPath':\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n }, this);\n\n messageHandler.on('obj', function(data) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n const [id, pageIndex, type, imageData] = data;\n const pageProxy = this.pageCache[pageIndex];\n if (pageProxy.objs.has(id)) {\n return;\n }\n\n switch (type) {\n case 'JpegStream':\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = function() {\n resolve(img);\n };\n img.onerror = function() {\n reject(new Error('Error during JPEG image loading'));\n // Note that when the browser image loading/decoding fails,\n // we'll fallback to the built-in PDF.js JPEG decoder; see\n // `PartialEvaluator.buildPaintImageXObject` in the\n // `src/core/evaluator.js` file.\n };\n img.src = imageData;\n }).then((img) => {\n pageProxy.objs.resolve(id, img);\n });\n case 'Image':\n pageProxy.objs.resolve(id, imageData);\n\n // Heuristic that will allow us not to store large data.\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n if (imageData && 'data' in imageData &&\n imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n }, this);\n\n messageHandler.on('DocProgress', function(data) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total,\n });\n }\n }, this);\n\n messageHandler.on('PageError', function(data) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n\n const page = this.pageCache[data.pageNum - 1];\n const intentState = page.intentStates[data.intent];\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(data.error);\n } else {\n throw new Error(data.error);\n }\n\n if (intentState.operatorList) {\n // Mark operator list as complete.\n intentState.operatorList.lastChunk = true;\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n }\n }, this);\n\n messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this);\n\n messageHandler.on('JpegDecode', function(data) {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n\n if (typeof document === 'undefined') {\n // Make sure that this code is not executing in node.js, as\n // it's using DOM image, and there is no library to support that.\n return Promise.reject(new Error('\"document\" is not defined.'));\n }\n\n const [imageUrl, components] = data;\n if (components !== 3 && components !== 1) {\n return Promise.reject(\n new Error('Only 3 components or 1 component can be returned'));\n }\n\n return new Promise(function(resolve, reject) {\n const img = new Image();\n img.onload = function() {\n const width = img.width;\n const height = img.height;\n const size = width * height;\n const rgbaLength = size * 4;\n const buf = new Uint8ClampedArray(size * components);\n const tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = width;\n tmpCanvas.height = height;\n const tmpCtx = tmpCanvas.getContext('2d');\n tmpCtx.drawImage(img, 0, 0);\n const data = tmpCtx.getImageData(0, 0, width, height).data;\n\n if (components === 3) {\n for (let i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {\n buf[j] = data[i];\n buf[j + 1] = data[i + 1];\n buf[j + 2] = data[i + 2];\n }\n } else if (components === 1) {\n for (let i = 0, j = 0; i < rgbaLength; i += 4, j++) {\n buf[j] = data[i];\n }\n }\n resolve({ data: buf, width, height, });\n };\n img.onerror = function() {\n reject(new Error('JpegDecode failed to load image'));\n };\n img.src = imageUrl;\n });\n }, this);\n\n messageHandler.on('FetchBuiltInCMap', function(data) {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n return this.CMapReaderFactory.fetch({\n name: data.name,\n });\n }, this);\n }\n\n _onUnsupportedFeature({ featureId, }) {\n if (this.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\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) ||\n pageNumber <= 0 || pageNumber > this.numPages) {\n return Promise.reject(new Error('Invalid page request'));\n }\n\n const pageIndex = pageNumber - 1;\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\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 const page = new PDFPageProxy(pageIndex, pageInfo, this,\n 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 return this.messageHandler.sendWithPromise('GetDestination', {\n id,\n });\n }\n\n getPageLabels() {\n return this.messageHandler.sendWithPromise('GetPageLabels', null);\n }\n\n getPageMode() {\n return this.messageHandler.sendWithPromise('GetPageMode', 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).\n then((results) => {\n return {\n info: results[0],\n metadata: (results[1] ? new Metadata(results[1]) : null),\n contentDispositionFilename: (this._fullReader ?\n this._fullReader.filename : null),\n };\n });\n }\n\n getStats() {\n return this.messageHandler.sendWithPromise('GetStats', null);\n }\n\n startCleanup() {\n 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 if (page) {\n page.cleanup();\n }\n }\n this.commonObjs.clear();\n this.fontLoader.clear();\n });\n }\n\n get loadingParams() {\n const params = this._params;\n return shadow(this, 'loadingParams', {\n disableAutoFetch: params.disableAutoFetch,\n disableCreateObjectURL: params.disableCreateObjectURL,\n disableFontFace: params.disableFontFace,\n nativeImageDecoderSupport: params.nativeImageDecoderSupport,\n });\n }\n}\n\n/**\n * A PDF document and page is built of many objects. E.g. there are objects for\n * fonts, images, rendering code, etc. These objects may get processed inside of\n * a worker. This class implements some basic methods to manage these objects.\n * @ignore\n */\nclass PDFObjects {\n constructor() {\n this._objs = Object.create(null);\n }\n\n /**\n * Ensures there is an object defined for `objId`.\n * @private\n */\n _ensureObj(objId) {\n if (this._objs[objId]) {\n return this._objs[objId];\n }\n return this._objs[objId] = {\n capability: createPromiseCapability(),\n data: null,\n resolved: false,\n };\n }\n\n /**\n * If called *without* callback, this returns the data of `objId` but the\n * object needs to be resolved. If it isn't, this method throws.\n *\n * If called *with* a callback, the callback is called with the data of the\n * object once the object is resolved. That means, if you call this method\n * and the object is already resolved, the callback gets called right away.\n */\n get(objId, callback = null) {\n // If there is a callback, then the get can be async and the object is\n // not required to be resolved right now.\n if (callback) {\n this._ensureObj(objId).capability.promise.then(callback);\n return null;\n }\n // If there isn't a callback, the user expects to get the resolved data\n // directly.\n const obj = this._objs[objId];\n // If there isn't an object yet or the object isn't resolved, then the\n // data isn't ready yet!\n if (!obj || !obj.resolved) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\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 /**\n * Resolves the object `objId` with optional `data`.\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/**\n * Allows controlling of the rendering tasks.\n * @alias RenderTask\n */\nclass RenderTask {\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n\n /**\n * Callback for incremental rendering -- a function that will be called\n * each time the rendering is paused. To continue rendering call the\n * function that is the first argument to the callback.\n * @type {function}\n */\n this.onContinue = null;\n }\n\n /**\n * Promise for rendering task completion.\n * @return {Promise}\n */\n get promise() {\n return this._internalRenderTask.capability.promise;\n }\n\n /**\n * Cancels the rendering task. If the task is currently rendering it will\n * not be cancelled until graphics pauses with a timeout. The promise that\n * this object extends will be rejected when cancelled.\n */\n cancel() {\n this._internalRenderTask.cancel();\n }\n\n /**\n * Registers callbacks to indicate the rendering task completion.\n *\n * @param {function} onFulfilled The callback for the rendering completion.\n * @param {function} onRejected The callback for the rendering failure.\n * @return {Promise} A promise that is resolved after the onFulfilled or\n * onRejected callback.\n */\n then(onFulfilled, onRejected) {\n deprecated('RenderTask.then method, use the `promise` getter instead.');\n return this.promise.then.apply(this.promise, arguments);\n }\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nconst InternalRenderTask = (function InternalRenderTaskClosure() {\n const canvasInRendering = new WeakSet();\n\n class InternalRenderTask {\n constructor({ callback, params, objs, commonObjs, operatorList, pageNumber,\n canvasFactory, webGLContext, useRequestAnimationFrame = false,\n pdfBug = false, }) {\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.pageNumber = pageNumber;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this._pdfBug = pdfBug;\n\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = (useRequestAnimationFrame === true &&\n typeof window !== 'undefined');\n this.cancelled = false;\n this.capability = createPromiseCapability();\n this.task = new RenderTask(this);\n // caching this-bound methods\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 if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error(\n 'Cannot use the same canvas during multiple render() operations. ' +\n 'Use different canvas or ensure previous operations were ' +\n 'cancelled or completed.');\n }\n canvasInRendering.add(this._canvas);\n }\n\n if (this._pdfBug && globalScope.StepperManager &&\n globalScope.StepperManager.enabled) {\n this.stepper = globalScope.StepperManager.create(this.pageNumber - 1);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const {\n canvasContext, viewport, transform, imageLayer, background,\n } = this.params;\n\n this.gfx = new CanvasGraphics(canvasContext, this.commonObjs, this.objs,\n this.canvasFactory, this.webGLContext,\n imageLayer);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background,\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel() {\n this.running = false;\n this.cancelled = true;\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n this.callback(new RenderingCancelledException(\n 'Rendering cancelled, page ' + this.pageNumber, 'canvas'));\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\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 this._continue();\n }\n\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\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.callback);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this.callback);\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList,\n this.operatorListIdx,\n this._continueBound,\n this.stepper);\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n this.callback();\n }\n }\n }\n }\n return InternalRenderTask;\n})();\n\nconst version = (typeof PDFJSDev !== 'undefined' ?\n PDFJSDev.eval('BUNDLE_VERSION') : null);\nconst build = (typeof PDFJSDev !== 'undefined' ?\n PDFJSDev.eval('BUNDLE_BUILD') : null);\n\nexport {\n getDocument,\n LoopbackPort,\n PDFDataRangeTransport,\n PDFWorker,\n PDFDocumentProxy,\n PDFPageProxy,\n setPDFNetworkStreamFactory,\n version,\n build,\n};\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","module.exports = function(module) {\r\n\tif (!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif (!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n","/* Copyright 2015 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\nimport {\n assert, CMapCompressionType, removeNullCharacters, stringToBytes,\n unreachable, Util, warn\n} from '../shared/util';\n\nconst DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\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 let canvas = document.createElement('canvas');\n let 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 if (width <= 0 || height <= 0) {\n throw new Error('invalid canvas size');\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 // Zeroing the width and height cause Firefox to release graphics\n // resources immediately, which can greatly reduce memory consumption.\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n}\n\nclass DOMCMapReaderFactory {\n constructor({ baseUrl = null, isCompressed = false, }) {\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n fetch({ name, }) {\n if (!this.baseUrl) {\n return Promise.reject(new Error(\n 'The CMap \"baseUrl\" parameter must be specified, ensure that ' +\n 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.'));\n }\n if (!name) {\n return Promise.reject(new Error('CMap name must be specified.'));\n }\n return new Promise((resolve, reject) => {\n let url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : '');\n\n let request = new XMLHttpRequest();\n request.open('GET', url, true);\n\n if (this.isCompressed) {\n request.responseType = 'arraybuffer';\n }\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n let data;\n if (this.isCompressed && request.response) {\n data = new Uint8Array(request.response);\n } else if (!this.isCompressed && request.responseText) {\n data = stringToBytes(request.responseText);\n }\n if (data) {\n resolve({\n cMapData: data,\n compressionType: this.isCompressed ?\n CMapCompressionType.BINARY : CMapCompressionType.NONE,\n });\n return;\n }\n }\n reject(new Error('Unable to load ' +\n (this.isCompressed ? 'binary ' : '') +\n 'CMap at: ' + url));\n };\n\n request.send(null);\n });\n }\n}\n\nclass DOMSVGFactory {\n create(width, height) {\n assert(width > 0 && height > 0, 'Invalid SVG dimensions');\n\n let 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\n return svg;\n }\n\n createElement(type) {\n assert(typeof type === 'string', 'Invalid SVG element type');\n\n return document.createElementNS(SVG_NS, type);\n }\n}\n\n/**\n * @typedef {Object} PageViewportParameters\n * @property {Array} viewBox - The xMin, yMin, xMax and yMax coordinates.\n * @property {number} scale - The scale of the viewport.\n * @property {number} rotation - The rotation, in degrees, of the viewport.\n * @property {number} offsetX - (optional) The vertical, i.e. x-axis, offset.\n * The default value is `0`.\n * @property {number} offsetY - (optional) The horizontal, i.e. y-axis, offset.\n * The default value is `0`.\n * @property {boolean} dontFlip - (optional) If true, the x-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * @typedef {Object} PageViewportCloneParameters\n * @property {number} scale - (optional) The scale, overriding the one in the\n * cloned viewport. The default value is `this.scale`.\n * @property {number} rotation - (optional) The rotation, in degrees, overriding\n * the one in the cloned viewport. The default value is `this.rotation`.\n * @property {boolean} dontFlip - (optional) If true, the x-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * PDF page viewport created based on scale, rotation and offset.\n */\nclass PageViewport {\n /**\n * @param {PageViewportParameters}\n */\n constructor({ viewBox, scale, rotation, offsetX = 0, offsetY = 0,\n dontFlip = false, }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n\n // creating transform to convert pdf coordinate system to the normal\n // canvas like coordinates taking in account scale and rotation\n let centerX = (viewBox[2] + viewBox[0]) / 2;\n let centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n switch (rotation) {\n case 180:\n rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1;\n break;\n case 90:\n rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0;\n break;\n case 270:\n rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0;\n break;\n // case 0:\n default:\n rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1;\n break;\n }\n\n if (dontFlip) {\n rotateC = -rotateC; rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\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 // creating transform for the following operations:\n // translate(-centerX, -centerY), rotate and flip vertically,\n // scale, and translate(offsetCanvasX, offsetCanvasY)\n this.transform = [\n rotateA * scale,\n rotateB * scale,\n rotateC * scale,\n rotateD * scale,\n offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,\n offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY\n ];\n\n this.width = width;\n this.height = height;\n }\n\n /**\n * Clones viewport, with optional additional properties.\n * @param {PageViewportCloneParameters} - (optional)\n * @return {PageViewport} Cloned viewport.\n */\n clone({ scale = this.scale, rotation = this.rotation,\n dontFlip = false, } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX: this.offsetX,\n offsetY: this.offsetY,\n dontFlip,\n });\n }\n\n /**\n * Converts PDF point to the viewport coordinates. For examples, useful for\n * converting PDF location into canvas pixel coordinates.\n * @param {number} x - The x-coordinate.\n * @param {number} y - The y-coordinate.\n * @return {Object} Object containing `x` and `y` properties of the\n * point in the viewport coordinate space.\n * @see {@link convertToPdfPoint}\n * @see {@link convertToViewportRectangle}\n */\n convertToViewportPoint(x, y) {\n return Util.applyTransform([x, y], this.transform);\n }\n\n /**\n * Converts PDF rectangle to the viewport coordinates.\n * @param {Array} rect - The xMin, yMin, xMax and yMax coordinates.\n * @return {Array} Array containing corresponding coordinates of the rectangle\n * in the viewport coordinate space.\n * @see {@link convertToViewportPoint}\n */\n convertToViewportRectangle(rect) {\n let tl = Util.applyTransform([rect[0], rect[1]], this.transform);\n let br = Util.applyTransform([rect[2], rect[3]], this.transform);\n return [tl[0], tl[1], br[0], br[1]];\n }\n\n /**\n * Converts viewport coordinates to the PDF location. For examples, useful\n * for converting canvas pixel location into PDF one.\n * @param {number} x - The x-coordinate.\n * @param {number} y - The y-coordinate.\n * @return {Object} Object containing `x` and `y` properties of the\n * point in the PDF coordinate space.\n * @see {@link convertToViewportPoint}\n */\n convertToPdfPoint(x, y) {\n return Util.applyInverseTransform([x, y], this.transform);\n }\n}\n\nvar RenderingCancelledException = (function RenderingCancelledException() {\n function RenderingCancelledException(msg, type) {\n this.message = msg;\n this.type = type;\n }\n\n RenderingCancelledException.prototype = new Error();\n RenderingCancelledException.prototype.name = 'RenderingCancelledException';\n RenderingCancelledException.constructor = RenderingCancelledException;\n\n return RenderingCancelledException;\n})();\n\nconst LinkTarget = {\n NONE: 0, // Default value.\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4,\n};\n\nconst LinkTargetStringMap = [\n '',\n '_self',\n '_blank',\n '_parent',\n '_top'\n];\n\n/**\n * @typedef ExternalLinkParameters\n * @typedef {Object} ExternalLinkParameters\n * @property {string} url - An absolute URL.\n * @property {LinkTarget} target - (optional) The link target.\n * The default value is `LinkTarget.NONE`.\n * @property {string} rel - (optional) The link relationship.\n * The default value is `DEFAULT_LINK_REL`.\n */\n\n/**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLLinkElement} link - The link element.\n * @param {ExternalLinkParameters} params\n */\nfunction addLinkAttributes(link, { url, target, rel, } = {}) {\n link.href = link.title = (url ? removeNullCharacters(url) : '');\n\n if (url) {\n const LinkTargetValues = Object.values(LinkTarget);\n let targetIndex =\n LinkTargetValues.includes(target) ? target : LinkTarget.NONE;\n link.target = LinkTargetStringMap[targetIndex];\n\n link.rel = (typeof rel === 'string' ? rel : DEFAULT_LINK_REL);\n }\n}\n\n// Gets the file name from a given URL.\nfunction getFilenameFromUrl(url) {\n var anchor = url.indexOf('#');\n var query = url.indexOf('?');\n var end = Math.min(\n anchor > 0 ? anchor : url.length,\n query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf('/', end) + 1, end);\n}\n\nclass StatTimer {\n constructor(enable = true) {\n this.enabled = !!enable;\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (!this.enabled) {\n return;\n }\n if (name in this.started) {\n warn('Timer is already running for ' + name);\n }\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!this.enabled) {\n return;\n }\n if (!(name in this.started)) {\n warn('Timer has not been started for ' + name);\n }\n this.times.push({\n 'name': name,\n 'start': this.started[name],\n 'end': Date.now(),\n });\n // Remove timer from started so it can be called again.\n delete this.started[name];\n }\n\n toString() {\n let times = this.times;\n // Find the longest name for padding purposes.\n let out = '', longest = 0;\n for (let i = 0, ii = times.length; i < ii; ++i) {\n let name = times[i]['name'];\n if (name.length > longest) {\n longest = name.length;\n }\n }\n for (let i = 0, ii = times.length; i < ii; ++i) {\n let span = times[i];\n let duration = span.end - span.start;\n out += `${span['name'].padEnd(longest)} ${duration}ms\\n`;\n }\n return out;\n }\n}\n\n/**\n * Helps avoid having to initialize {StatTimer} instances, e.g. one for every\n * page, in cases where the collected stats are not actually being used.\n * This (dummy) class can thus, since all its methods are `static`, be directly\n * shared between multiple call-sites without the need to be initialized first.\n *\n * NOTE: This must implement the same interface as {StatTimer}.\n */\nclass DummyStatTimer {\n constructor() {\n unreachable('Cannot initialize DummyStatTimer.');\n }\n\n static time(name) {}\n\n static timeEnd(name) {}\n\n static toString() {\n return '';\n }\n}\n\nfunction loadScript(src) {\n return new Promise((resolve, reject) => {\n let script = document.createElement('script');\n script.src = src;\n\n script.onload = resolve;\n script.onerror = function() {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n (document.head || document.documentElement).appendChild(script);\n });\n}\n\nexport {\n PageViewport,\n RenderingCancelledException,\n addLinkAttributes,\n getFilenameFromUrl,\n LinkTarget,\n DEFAULT_LINK_REL,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMSVGFactory,\n StatTimer,\n DummyStatTimer,\n loadScript,\n};\n","/* Copyright 2012 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\nimport {\n assert, bytesToString, isEvalSupported, shadow, string32, unreachable,\n UNSUPPORTED_FEATURES, warn\n} from '../shared/util';\n\nclass BaseFontLoader {\n constructor(docId) {\n if (this.constructor === BaseFontLoader) {\n unreachable('Cannot initialize BaseFontLoader.');\n }\n this.docId = docId;\n\n this.nativeFontFaces = [];\n this.styleElement = null;\n this.loadingContext = {\n requests: [],\n nextRequestId: 0,\n };\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 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(\n 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 // Note: ChildNode.remove doesn't throw if the parentNode is undefined.\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n bind(fonts, callback) {\n const rules = [];\n const fontsToLoad = [];\n const fontLoadPromises = [];\n const getNativeFontPromise = function(nativeFontFace) {\n // Return a promise that is always fulfilled, even when the font fails to\n // load.\n return nativeFontFace.loaded.catch(function(reason) {\n warn(`Failed to load font \"${nativeFontFace.family}\": ${reason}`);\n });\n };\n\n for (const font of fonts) {\n // Add the font to the DOM only once; skip if the font is already loaded.\n if (font.attached || font.missingFile) {\n continue;\n }\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n fontLoadPromises.push(getNativeFontPromise(nativeFontFace));\n }\n } else {\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n rules.push(rule);\n fontsToLoad.push(font);\n }\n }\n }\n\n const request = this._queueLoadingCallback(callback);\n if (this.isFontLoadingAPISupported) {\n Promise.all(fontLoadPromises).then(request.complete);\n } else if (rules.length > 0 && !this.isSyncFontLoadingSupported) {\n this._prepareFontLoadEvent(rules, fontsToLoad, request);\n } else {\n request.complete();\n }\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n assert(!request.done, 'completeRequest() cannot be called twice.');\n request.done = true;\n\n // Sending all completed requests in order of how they were queued.\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 isFontLoadingAPISupported() {\n unreachable('Abstract method `isFontLoadingAPISupported`.');\n }\n\n get isSyncFontLoadingSupported() {\n unreachable('Abstract method `isSyncFontLoadingSupported`.');\n }\n\n get _loadTestFont() {\n unreachable('Abstract method `_loadTestFont`.');\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n unreachable('Abstract method `_prepareFontLoadEvent`.');\n }\n}\n\nlet FontLoader;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('MOZCENTRAL')) {\n\nFontLoader = class MozcentralFontLoader extends BaseFontLoader {\n get isFontLoadingAPISupported() {\n return shadow(this, 'isFontLoadingAPISupported',\n typeof document !== 'undefined' && !!document.fonts);\n }\n\n get isSyncFontLoadingSupported() {\n return shadow(this, 'isSyncFontLoadingSupported', true);\n }\n};\n\n} else { // PDFJSDev.test('CHROME || GENERIC')\n\nFontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(docId) {\n super(docId);\n this.loadTestFontId = 0;\n }\n\n get isFontLoadingAPISupported() {\n let supported = (typeof document !== 'undefined' && !!document.fonts);\n\n if ((typeof PDFJSDev === 'undefined' || !PDFJSDev.test('CHROME')) &&\n (supported && typeof navigator !== 'undefined')) {\n // The Firefox Font Loading API does not work with `mozPrintCallback`\n // prior to version 63; see https://bugzilla.mozilla.org/show_bug.cgi?id=1473742\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n if (m && m[1] < 63) {\n supported = false;\n }\n }\n return shadow(this, 'isFontLoadingAPISupported', supported);\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('CHROME')) {\n if (typeof navigator === 'undefined') {\n // Node.js - we can pretend that sync font loading is supported.\n supported = true;\n } else {\n // User agent string sniffing is bad, but there is no reliable way to\n // tell if the font is fully loaded and ready to be used with canvas.\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n if (m && m[1] >= 14) {\n supported = true;\n }\n // TODO - other browsers...\n }\n }\n return shadow(this, 'isSyncFontLoadingSupported', supported);\n }\n\n get _loadTestFont() {\n const getLoadTestFont = function() {\n // This is a CFF font with 1 glyph for '.' that fills its entire width and\n // height.\n return atob(\n 'T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' +\n 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' +\n 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' +\n 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' +\n 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' +\n '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' +\n 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' +\n 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' +\n 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' +\n 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' +\n 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' +\n 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' +\n 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' +\n 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' +\n 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' +\n 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' +\n 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==');\n };\n return shadow(this, '_loadTestFont', getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n /** Hack begin */\n // There's currently no event when a font has finished downloading so the\n // following code is a dirty hack to 'guess' when a font is ready.\n // It's assumed fonts are loaded in order, so add a known test font after\n // the desired fonts and then test for the loading of that test font.\n\n function int32(data, offset) {\n return (data.charCodeAt(offset) << 24) |\n (data.charCodeAt(offset + 1) << 16) |\n (data.charCodeAt(offset + 2) << 8) |\n (data.charCodeAt(offset + 3) & 0xff);\n }\n function spliceString(s, offset, remove, insert) {\n let chunk1 = s.substring(0, offset);\n let chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n\n // The temporary canvas is used to determine if fonts are loaded.\n let canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n let ctx = canvas.getContext('2d');\n\n let called = 0;\n function isFontReady(name, callback) {\n called++;\n // With setTimeout clamping this gives the font ~100ms to load.\n if (called > 30) {\n warn('Load test font never loaded.');\n callback();\n return;\n }\n ctx.font = '30px ' + name;\n ctx.fillText('.', 0, 20);\n let imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n // Chromium seems to cache fonts based on a hash of the actual font data,\n // so the font must be modified for each load test else it will appear to\n // be loaded already.\n // TODO: This could maybe be made faster by avoiding the btoa of the full\n // font by splitting it in chunks before hand and padding the font id.\n let data = this._loadTestFont;\n let COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum)\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length,\n loadTestFontId);\n // CFF checksum is important for IE, adjusting it\n let CFF_CHECKSUM_OFFSET = 16;\n let XXXX_VALUE = 0x58585858; // the \"comment\" filled with 'X'\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0;\n }\n if (i < loadTestFontId.length) { // align to 4 bytes boundary\n checksum = (checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i)) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n\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\n let names = [];\n for (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].loadedName);\n }\n names.push(loadTestFontId);\n\n let div = document.createElement('div');\n div.setAttribute('style', 'visibility: hidden;' +\n 'width: 10px; height: 10px;' +\n 'position: absolute; top: 0px; left: 0px;');\n for (i = 0, ii = names.length; i < ii; ++i) {\n let span = document.createElement('span');\n span.textContent = 'Hi';\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n document.body.appendChild(div);\n\n isFontReady(loadTestFontId, function() {\n document.body.removeChild(div);\n request.complete();\n });\n /** Hack end */\n }\n};\n\n} // End of PDFJSDev.test('CHROME || GENERIC')\n\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, 'value', isEvalSupported());\n },\n};\n\nclass FontFaceObject {\n constructor(translatedData, { isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature = null,\n fontRegistry = null, }) {\n this.compiledGlyphs = Object.create(null);\n // importing translated data\n for (let i in translatedData) {\n this[i] = translatedData[i];\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 const nativeFontFace = new FontFace(this.loadedName, this.data, {});\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const data = bytesToString(new Uint8Array(this.data));\n // Add the @font-face rule to the document.\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 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 try {\n cmds = objs.get(this.loadedName + '_path_' + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({ featureId: UNSUPPORTED_FEATURES.font, });\n }\n warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n\n return this.compiledGlyphs[character] = function(c, size) {\n // No-op function, to allow rendering to continue.\n };\n }\n\n // If we can, compile cmds into JS for MAXIMUM SPEED...\n if (this.isEvalSupported && IsEvalSupportedCached.value) {\n let args, js = '';\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 js += 'c.' + current.cmd + '(' + args + ');\\n';\n }\n // eslint-disable-next-line no-new-func\n return this.compiledGlyphs[character] = new Function('c', 'size', js);\n }\n // ... but fall back on using Function.prototype.apply() if we're\n // blocked from using eval() for whatever reason (like CSP policies).\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 c[current.cmd].apply(c, current.args);\n }\n };\n }\n}\n\nexport {\n FontFaceObject,\n FontLoader,\n};\n","/* Copyright 2018 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\nlet compatibilityParams = Object.create(null);\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n const isNodeJS = require('../shared/is_node');\n\n const userAgent =\n (typeof navigator !== 'undefined' && navigator.userAgent) || '';\n const isIE = /Trident/.test(userAgent);\n const isIOSChrome = /CriOS/.test(userAgent);\n\n // Checks if possible to use URL.createObjectURL()\n // Support: IE, Chrome on iOS\n (function checkOnBlobSupport() {\n // Sometimes IE and Chrome on iOS losing the data created with\n // createObjectURL(), see issues #3977 and #8081.\n if (isIE || isIOSChrome) {\n compatibilityParams.disableCreateObjectURL = true;\n }\n })();\n\n // Support: Node.js\n (function checkFontFaceAndImage() {\n // Node.js is missing native support for `@font-face` and `Image`.\n if (isNodeJS()) {\n compatibilityParams.disableFontFace = true;\n compatibilityParams.nativeImageDecoderSupport = 'none';\n }\n })();\n}\n\nexports.apiCompatibilityParams = Object.freeze(compatibilityParams);\n","/* Copyright 2012 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\nimport {\n FONT_IDENTITY_MATRIX, IDENTITY_MATRIX, ImageKind, info, isLittleEndian, isNum,\n OPS, shadow, TextRenderingMode, unreachable, Util, warn\n} from '../shared/util';\nimport { getShadingPatternFromIR, TilingPattern } from './pattern_helper';\n\n// <canvas> contexts store most of the state we need natively.\n// However, PDF needs a bit more state, which we store here.\n\n// Minimal font size that would be used during canvas fillText operations.\nvar MIN_FONT_SIZE = 16;\n// Maximum font size that would be used during canvas fillText operations.\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\n\n// Heuristic value used when enforcing minimum line widths.\nvar MIN_WIDTH_FACTOR = 0.65;\n\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\n\nvar FULL_CHUNK_HEIGHT = 16;\n\nvar IsLittleEndianCached = {\n get value() {\n return shadow(IsLittleEndianCached, 'value', isLittleEndian());\n },\n};\n\nfunction addContextCurrentTransform(ctx) {\n // If the context doesn't expose a `mozCurrentTransform`, add a JS based one.\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\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n\n Object.defineProperty(ctx, 'mozCurrentTransform', {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n },\n });\n\n Object.defineProperty(ctx, 'mozCurrentTransformInverse', {\n get: function getCurrentTransformInverse() {\n // Calculation done using WolframAlpha:\n // http://www.wolframalpha.com/input/?\n // i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}}\n\n var m = this._transformMatrix;\n var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5];\n\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n\n return [\n d / ad_bc,\n b / bc_ad,\n c / bc_ad,\n a / ad_bc,\n (d * e - c * f) / bc_ad,\n (b * e - a * f) / ad_bc\n ];\n },\n });\n\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n this._transformStack.push(old);\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 if (prev) {\n this._transformMatrix = prev;\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 = [\n m[0] * a + m[2] * b,\n m[1] * a + m[3] * b,\n m[0] * c + m[2] * d,\n m[1] * c + m[3] * d,\n m[0] * e + m[2] * f + m[4],\n m[1] * e + m[3] * f + m[5]\n ];\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\n var m = this._transformMatrix;\n this._transformMatrix = [\n m[0] * cosValue + m[2] * sinValue,\n m[1] * cosValue + m[3] * sinValue,\n m[0] * (-sinValue) + m[2] * cosValue,\n m[1] * (-sinValue) + m[3] * cosValue,\n m[4],\n m[5]\n ];\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 CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height,\n trackTransform) {\n var canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n // reset canvas transform for emulated mozCurrentTransform, if needed\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 if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n return canvasEntry;\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 return CachedCanvases;\n})();\n\nfunction compileType3Glyph(imgData) {\n var POINT_TO_PROCESS_LIMIT = 1000;\n\n var width = imgData.width, height = imgData.height;\n var i, j, j0, width1 = width + 1;\n var points = new Uint8Array(width1 * (height + 1));\n var POINT_TYPES =\n new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n\n // decodes bit-packed mask data\n var lineSize = (width + 7) & ~7, data0 = imgData.data;\n var data = new Uint8Array(lineSize * height), pos = 0, ii;\n for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128, elem = data0[i];\n while (mask > 0) {\n data[pos++] = (elem & mask) ? 0 : 255;\n mask >>= 1;\n }\n }\n\n // finding interesting points: every point is located between mask pixels,\n // so there will be points of the (width + 1)x(height + 1) grid. Every point\n // will have flags assigned based on neighboring mask pixels:\n // 4 | 8\n // --P--\n // 2 | 1\n // We are interested only in points with the flags:\n // - outside corners: 1, 2, 4, 8;\n // - inside corners: 7, 11, 13, 14;\n // - and, intersections: 5, 10.\n var count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\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 pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n // 'sum' is the position of the current pixel configuration in the 'TYPES'\n // array (in order 8-1-2-4, so we can use '>>2' to shift the column).\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) +\n (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\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 if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\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 pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n // building outlines\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n var coords = [p % width1, i];\n\n var type = points[p], p0 = p, pp;\n do {\n var step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n\n pp = points[p];\n if (pp !== 5 && pp !== 10) {\n // set new direction\n type = pp;\n // delete mark\n points[p] = 0;\n } else { // type is 5 or 10, ie, a crossing\n // set new direction\n type = pp & ((0x33 * type) >> 4);\n // set new type for \"future hit\"\n points[p] &= (type >> 2 | type << 2);\n }\n\n coords.push(p % width1);\n coords.push((p / width1) | 0);\n --count;\n } while (p0 !== p);\n outlines.push(coords);\n --i;\n }\n\n var drawOutline = function(c) {\n c.save();\n // the path shall be painted in [0..1]x[0..1] space\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n for (var i = 0, ii = outlines.length; i < ii; i++) {\n var o = outlines[i];\n c.moveTo(o[0], o[1]);\n for (var j = 2, jj = o.length; j < jj; j += 2) {\n c.lineTo(o[j], o[j + 1]);\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 // Are soft masks and alpha values shapes or opacities?\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n // Current point (in user coordinates)\n this.x = 0;\n this.y = 0;\n // Start of text line (in text coordinates)\n this.lineX = 0;\n this.lineY = 0;\n // Character and word spacing\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.textRise = 0;\n // Default fore and background colors\n this.fillColor = '#000000';\n this.strokeColor = '#000000';\n this.patternFill = false;\n // Note: fill alpha applies to all non-stroking operations\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = null; // nonclonable field (see the save method below)\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 // Defines the time the executeOperatorList is going to be executing\n // before it stops and shedules a continue of execution.\n var EXECUTION_TIME = 15;\n // Defines the number of steps before checking the execution time\n var EXECUTION_STEPS = 10;\n\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory,\n 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 // Patterns are painted relative to the initial page/form transform, see pdf\n // spec 8.7.2 NOTE 1.\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 if (canvasCtx) {\n // NOTE: if mozCurrentTransform is polyfilled, then the current state of\n // the transformation must already be set in canvasCtx._transformMatrix.\n addContextCurrentTransform(canvasCtx);\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 // Put the image data to the canvas in chunks, rather than putting the\n // whole image at once. This saves JS memory, because the ImageData object\n // is smaller. It also possibly saves C++ memory within the implementation\n // of putImageData(). (E.g. in Firefox we make two short-lived copies of\n // the data passed to putImageData()). |n| shouldn't be too small, however,\n // because too many putImageData() calls will slow things down.\n //\n // Note: as written, if the last chunk is partial, the putImageData() call\n // will (conceptually) put pixels past the bounds of the canvas. But\n // that's ok; any such pixels are ignored.\n\n var height = imgData.height, 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\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0, destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var i, j, thisChunkHeight, elemsInThisChunk;\n\n // There are multiple forms in which the pixel data can be passed, and\n // imgData.kind tells us which one this is.\n if (imgData.kind === ImageKind.GRAYSCALE_1BPP) {\n // Grayscale, 1 bit per pixel (i.e. black-and-white).\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 = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF;\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight =\n (i < fullChunks) ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\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 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 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 // We ran out of input. Make all remaining pixels transparent.\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 === ImageKind.RGBA_32BPP) {\n // RGBA, 32-bits per pixel.\n\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\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\n } else if (imgData.kind === ImageKind.RGB_24BPP) {\n // RGB, 24-bits per pixel.\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\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 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, 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\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 =\n (i < fullChunks) ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n\n // Expand the mask so it can be used by the canvas. Any required\n // inversion has already been handled.\n var destPos = 3; // alpha component offset\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n dest[destPos] = (elem & mask) ? 0 : 255;\n destPos += 4;\n mask >>= 1;\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',\n 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit',\n 'globalCompositeOperation', 'font'];\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\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 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 for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\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 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 for (var i = 3; i < length; i += 4) {\n var y = (maskData[i - 3] * 77) + // * 0.3 / 255 * 0x10000\n (maskData[i - 2] * 152) + // * 0.59 ....\n (maskData[i - 1] * 28); // * 0.11 ....\n layerData[i] = transferMap ?\n (layerData[i] * transferMap[y >> 8]) >> 8 :\n (layerData[i] * y) >> 16;\n }\n }\n\n function genericComposeSMask(maskCtx, layerCtx, width, height,\n 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\n var composeFn;\n if (subtype === 'Luminosity') {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n // processing image in chunks to save memory\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\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 composeFn(maskData.data, layerData.data, transferMap);\n\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\n ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY,\n smask.offsetX, smask.offsetY);\n\n var backdrop = smask.backdrop || null;\n if (!smask.transferMap && webGLContext.isEnabled) {\n let 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 genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height,\n 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\n CanvasGraphics.prototype = {\n\n beginDrawing({ transform, viewport, transparency = false,\n background = null, }) {\n // For pdfs that use blend modes we have to clear the canvas else certain\n // blend modes can look wrong since we'd be blending with a white\n // backdrop. The problem with a transparent backdrop though is we then\n // don't get sub pixel anti aliasing on text, creating temporary\n // transparent canvas when we have blend modes.\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\n\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(\n 'transparent', width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n // The transform can be applied before rendering, transferring it to\n // the new canvas.\n this.ctx.transform.apply(this.ctx,\n this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n this.ctx.transform.apply(this.ctx, viewport.transform);\n\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n\n executeOperatorList: function CanvasGraphics_executeOperatorList(\n operatorList,\n executionStartIdx, continueCallback,\n stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n\n // Sometimes the OperatorList to execute is empty.\n if (argsArrayLen === i) {\n return i;\n }\n\n var chunkOperations = (argsArrayLen - i > EXECUTION_STEPS &&\n typeof continueCallback === 'function');\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\n\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 !== OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n var deps = argsArray[i];\n for (var n = 0, nn = deps.length; n < nn; n++) {\n var depObjId = deps[n];\n var common = depObjId[0] === 'g' && depObjId[1] === '_';\n var objsPool = common ? commonObjs : objs;\n\n // If the promise isn't resolved yet, add the continueCallback\n // to the promise and bail out.\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n // If the entire operatorList was executed, stop as were done.\n if (i === argsArrayLen) {\n return i;\n }\n\n // If the execution took longer then a certain amount of time and\n // `continueCallback` is specified, interrupt the execution.\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n\n // If the operatorList isn't executed completely yet OR the execution\n // time was short enough, do another execution round.\n }\n },\n\n endDrawing: function CanvasGraphics_endDrawing() {\n // Finishing all opened operations such as SMask group painting.\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); // Avoid apply transform twice\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\n // Graphics state\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 if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {\n // Maybe if we one day fully support color spaces this will be important\n // for now we can ignore.\n // TODO set rendering intent?\n },\n setFlatness: function CanvasGraphics_setFlatness(flatness) {\n // There's no way to control this with canvas, but we can safely ignore.\n // TODO set 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 case 'LC':\n this.setLineCap(value);\n break;\n case 'LJ':\n this.setLineJoin(value);\n break;\n case 'ML':\n this.setMiterLimit(value);\n break;\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n case 'RI':\n this.setRenderingIntent(value);\n break;\n case 'FL':\n this.setFlatness(value);\n break;\n case 'Font':\n this.setFont(value[0], value[1]);\n break;\n case 'CA':\n this.current.strokeAlpha = state[1];\n break;\n case 'ca':\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n case 'BM':\n this.ctx.globalCompositeOperation = value;\n break;\n case 'SMask':\n if (this.current.activeSMask) {\n // If SMask is currrenly used, it needs to be suspended or\n // finished. Suspend only makes sense when at least one save()\n // was performed and state needs to be reverted on restore().\n if (this.stateStack.length > 0 &&\n (this.stateStack[this.stateStack.length - 1].activeSMask ===\n this.current.activeSMask)) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n this.current.activeSMask = value ? this.tempSMask : null;\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n this.tempSMask = null;\n break;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n\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(\n cacheId, drawnWidth, drawnHeight, true);\n\n var currentCtx = this.ctx;\n var currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n\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\n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([\n ['BM', 'source-over'],\n ['ca', 1],\n ['CA', 1]\n ]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n // Similar to endSMaskGroup, the intermediate canvas has to be composed\n // and future ctx state restored.\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n\n composeSMask(this.ctx, this.current.activeSMask, groupCtx,\n this.webGLContext);\n this.ctx.restore();\n this.ctx.save(); // save is needed since SMask will be resumed.\n copyCtxState(groupCtx, this.ctx);\n\n // Saving state for resuming.\n this.current.resumeSMaskCtx = groupCtx;\n // Transform was changed in the SMask canvas, reflecting this change on\n // this.ctx.\n var deltaTransform = Util.transform(\n this.current.activeSMask.startTransformInverse,\n groupCtx.mozCurrentTransform);\n this.ctx.transform.apply(this.ctx, deltaTransform);\n\n // SMask was composed, the results at the groupCtx can be cleared.\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 // Resuming state saved by suspendSMaskGroup. We don't need to restore\n // any groupCtx state since restore() command (the only caller) will do\n // that for us. See also beginSMaskGroup.\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\n composeSMask(this.ctx, this.current.activeSMask, groupCtx,\n this.webGLContext);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n // Transform was changed in the SMask canvas, reflecting this change on\n // this.ctx.\n var deltaTransform = Util.transform(\n this.current.activeSMask.startTransformInverse,\n groupCtx.mozCurrentTransform);\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 // SMask was suspended, we just need to resume it.\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n // SMask has to be finished once there is no states that are using the\n // same SMask.\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 ||\n this.stateStack[this.stateStack.length - 1].activeSMask !==\n 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\n // Ensure that the clipping path is reset (fixes issue6413.pdf).\n this.pendingClip = null;\n\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\n this._cachedGetSinglePixelWidth = null;\n },\n\n // Path\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x, y = current.y;\n for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n if (width === 0) {\n width = this.getSinglePixelWidth();\n }\n if (height === 0) {\n height = this.getSinglePixelWidth();\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 case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n case 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],\n x, y);\n j += 6;\n break;\n case OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1],\n args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case 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 case OPS.closePath:\n ctx.closePath();\n break;\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 // Prevent drawing too thin lines by enforcing a minimum line width.\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR,\n this.current.lineWidth);\n // For stroke we want to temporarily change the global alpha to the\n // stroking alpha.\n ctx.globalAlpha = this.current.strokeAlpha;\n if (strokeColor && strokeColor.hasOwnProperty('type') &&\n strokeColor.type === 'Pattern') {\n // for patterns, we transform to pattern space, calculate\n // the pattern, call stroke, and restore to user space\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n if (consumePath) {\n this.consumePath();\n }\n // Restore the global alpha to the fill alpha\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 if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\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 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\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\n // Clipping\n clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n\n // Text\n beginText: function CanvasGraphics_beginText() {\n this.current.textMatrix = 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 if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\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 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 ?\n fontObj.fontMatrix : FONT_IDENTITY_MATRIX);\n\n // A valid matrix needs all main diagonal elements to be non-zero\n // This also ensures we bypass FF bugzilla bug #719844.\n if (current.fontMatrix[0] === 0 ||\n current.fontMatrix[3] === 0) {\n warn('Invalid font matrix for font ' + fontRefName);\n }\n\n // The spec for Tf (setFont) says that 'size' specifies the font 'scale',\n // and in some docs this can be negative (inverted x-y axes).\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; // we don't need ctx.font for Type3 fonts\n }\n\n var name = fontObj.loadedName || 'sans-serif';\n var bold = fontObj.black ? '900' : (fontObj.bold ? 'bold' : 'normal');\n var italic = fontObj.italic ? 'italic' : 'normal';\n var typeface = '\"' + name + '\", ' + fontObj.fallbackName;\n\n // Some font backends cannot handle fonts below certain size.\n // Keeping the font at minimal size and using the fontSizeScale to change\n // the current transformation matrix before the fillText/strokeText.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227\n var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE :\n size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size;\n this.current.fontSizeScale = size / browserFontSize;\n\n var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface;\n this.ctx.font = rule;\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\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 &\n TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode &\n TextRenderingMode.ADD_TO_PATH_FLAG);\n let patternFill = current.patternFill && font.data;\n\n var addToPath;\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 if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n if (fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n if (fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === 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 // Checks if anti-aliasing is enabled when scaled text is painted.\n // On Windows GDI scaled fonts looks bad.\n var ctx = this.canvasFactory.create(10, 10).context;\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 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 return shadow(this, 'isFontSubpixelAAEnabled', enabled);\n },\n\n showText: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n var fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\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\n var simpleFillText =\n current.textRenderingMode === TextRenderingMode.FILL &&\n !font.disableFontFace && !current.patternFill;\n\n ctx.save();\n let patternTransform;\n if (current.patternFill) {\n // TODO: Patterns are not applied correctly to text if a non-embedded\n // font is used. E.g. issue 8111 and ShowText-ShadingPattern.pdf.\n ctx.save();\n let pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\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 if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode &\n TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === 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\n var x = 0, i;\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n if (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 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\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 // Some standard fonts may not have the exact width: rescale per\n // character if measured width is greater than expected glyph width\n // and subpixel-aa is enabled, otherwise just center the glyph.\n var measuredWidth = ctx.measureText(character).width * 1000 /\n fontSize * fontSizeScale;\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 *\n fontSize / fontSizeScale;\n }\n }\n\n // Only attempt to draw the glyph if it is actually in the embedded font\n // file or if there isn't a font file so the fallback font is shown.\n if (glyph.isInFont || font.missingFile) {\n if (simpleFillText && !accent) {\n // common case\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n scaledAccentX = scaledX + accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY,\n patternTransform);\n }\n }\n }\n\n var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n },\n\n showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n // Type3 fonts - each glyph is a \"mini-PDF\"\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 || FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible =\n current.textRenderingMode === TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedGetSinglePixelWidth = null;\n\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (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 if (!operatorList) {\n warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\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.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n },\n\n // Type3 fonts\n setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {\n // We can safely ignore this since the width should be the same\n // as the width in the Widths array.\n },\n setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth,\n yWidth,\n llx,\n lly,\n urx,\n ury) {\n // TODO According to the spec we're also suppose to ignore any operators\n // that set color or include images while processing this type3 font.\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n },\n\n // Color\n getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n var pattern;\n if (IR[0] === 'TilingPattern') {\n var color = IR[1];\n var baseTransform = this.baseTransform ||\n this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: (ctx) => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs,\n this.canvasFactory, this.webGLContext);\n },\n };\n pattern = new TilingPattern(IR, color, this.ctx, canvasGraphicsFactory,\n baseTransform);\n } else {\n pattern = getShadingPatternFromIR(IR);\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.makeCssRgb(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n var color = Util.makeCssRgb(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n },\n\n shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n var ctx = this.ctx;\n\n this.save();\n var pattern = getShadingPatternFromIR(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n\n var inv = ctx.mozCurrentTransformInverse;\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n\n var bl = Util.applyTransform([0, 0], inv);\n var br = Util.applyTransform([0, height], inv);\n var ul = Util.applyTransform([width, 0], inv);\n var ur = 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\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n // HACK to draw the gradient onto an infinite rectangle.\n // PDF gradients are drawn across the entire image while\n // Canvas only allows gradients to be drawn in a rectangle\n // The following bug should allow us to remove this.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=664884\n\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.restore();\n },\n\n // Images\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n unreachable('Should not call beginInlineImage');\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n unreachable('Should not call beginImageData');\n },\n\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix,\n 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\n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n\n beginGroup: function CanvasGraphics_beginGroup(group) {\n this.save();\n var currentCtx = this.ctx;\n // TODO non-isolated groups - according to Rik at adobe non-isolated\n // group results aren't usually that different and they even have tools\n // that ignore this setting. Notes from Rik on implementing:\n // - When you encounter an transparency group, create a new canvas with\n // the dimensions of the bbox\n // - copy the content from the previous canvas to the new canvas\n // - draw as usual\n // - remove the backdrop alpha:\n // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha\n // value of your transparency group and 'alphaBackdrop' the alpha of the\n // backdrop\n // - remove background color:\n // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew)\n if (!group.isolated) {\n info('TODO: Support non-isolated groups.');\n }\n\n // TODO knockout - supposedly possible with the clever use of compositing\n // modes.\n if (group.knockout) {\n warn('Knockout groups not supported.');\n }\n\n var currentTransform = currentCtx.mozCurrentTransform;\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n if (!group.bbox) {\n throw new Error('Bounding box is required.');\n }\n\n // Based on the current transform figure out how big the bounding box\n // will actually be.\n var bounds = Util.getAxialAlignedBoundingBox(\n group.bbox,\n currentCtx.mozCurrentTransform);\n // Clip the bounding box to the current canvas.\n var canvasBounds = [0,\n 0,\n currentCtx.canvas.width,\n currentCtx.canvas.height];\n bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n // Use ceil in case we're between sizes so we don't create canvas that is\n // too small and make the canvas at least 1x1 pixels.\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, scaleY = 1;\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\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 if (group.smask) {\n // Using two cache entries is case if masks are used one after another.\n cacheId += '_smask_' + ((this.smaskCounter++) % 2);\n }\n var scratchCanvas = this.cachedCanvases.getCanvas(\n cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n\n // Since we created a new canvas that is just the size of the bounding box\n // we have to translate the group ctx.\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n // Saving state and cached mask to be used in setGState.\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, // used during suspend operation\n });\n } else {\n // Setup the current ctx so when the group is popped we draw it at the\n // right location.\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n // The transparency group inherits all off the current graphics state\n // except the blend mode, soft mask, and alpha constants.\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([\n ['BM', 'source-over'],\n ['ca', 1],\n ['CA', 1]\n ]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n\n // Reseting mask state, masks will be applied on restore of the group.\n this.current.activeSMask = null;\n },\n\n endGroup: function CanvasGraphics_endGroup(group) {\n this.groupLevel--;\n var groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n // Turn off image smoothing to avoid sub pixel interpolation which can\n // look kind of blurry for some pdfs.\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n this.restore();\n },\n\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n\n beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform,\n 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\n endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n\n paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {\n var domImage = this.objs.get(objId);\n if (!domImage) {\n warn('Dependent image isn\\'t ready yet');\n return;\n }\n\n this.save();\n\n var ctx = this.ctx;\n // scale the image to the unit square\n ctx.scale(1 / w, -1 / h);\n\n ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height,\n 0, -h, w, h);\n if (this.imageLayer) {\n var currentTransform = ctx.mozCurrentTransformInverse;\n var position = this.getCanvasPosition(0, 0);\n this.imageLayer.appendImage({\n objId,\n left: position[0],\n top: position[1],\n width: w / currentTransform[0],\n height: h / currentTransform[3],\n });\n }\n this.restore();\n },\n\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n var ctx = this.ctx;\n var width = img.width, height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n\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 =\n compileType3Glyph({ data: img.data, width, height, });\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',\n width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n\n putBinaryImageMask(maskCtx, img);\n\n maskCtx.globalCompositeOperation = 'source-in';\n\n maskCtx.fillStyle = isPatternFill ?\n fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n\n maskCtx.restore();\n\n this.paintInlineImageXObject(maskCanvas.canvas);\n },\n\n paintImageMaskXObjectRepeat:\n function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX,\n 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\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas',\n width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n\n putBinaryImageMask(maskCtx, imgData);\n\n maskCtx.globalCompositeOperation = 'source-in';\n\n maskCtx.fillStyle = isPatternFill ?\n fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n\n maskCtx.restore();\n\n var ctx = this.ctx;\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,\n 0, -1, 1, 1);\n ctx.restore();\n }\n },\n\n paintImageMaskXObjectGroup:\n function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n var ctx = this.ctx;\n\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width, height = image.height;\n\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas',\n width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n\n putBinaryImageMask(maskCtx, image);\n\n maskCtx.globalCompositeOperation = 'source-in';\n\n maskCtx.fillStyle = isPatternFill ?\n fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n\n maskCtx.restore();\n\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height,\n 0, -1, 1, 1);\n ctx.restore();\n }\n },\n\n paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n var imgData = this.objs.get(objId);\n if (!imgData) {\n warn('Dependent image isn\\'t ready yet');\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n },\n\n paintImageXObjectRepeat:\n function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY,\n positions) {\n var imgData = this.objs.get(objId);\n if (!imgData) {\n 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 for (var i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({ transform: [scaleX, 0, 0, scaleY, positions[i],\n positions[i + 1]], x: 0, y: 0, w: width, h: height, });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n },\n\n paintInlineImageXObject:\n function CanvasGraphics_paintInlineImageXObject(imgData) {\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n\n this.save();\n // scale the image to the unit square\n ctx.scale(1 / width, -1 / height);\n\n var currentTransform = ctx.mozCurrentTransformInverse;\n var a = currentTransform[0], b = currentTransform[1];\n var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n var c = currentTransform[2], d = currentTransform[3];\n var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n\n var imgToPaint, tmpCanvas;\n // typeof check is needed due to node.js support, see issue #8489\n if ((typeof HTMLElement === 'function' &&\n imgData instanceof HTMLElement) || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas('inlineImage',\n width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = tmpCanvas.canvas;\n }\n\n var paintWidth = width, paintHeight = height;\n var tmpCanvasId = 'prescale1';\n // Vertial or horizontal scaling shall not be more than 2 to not loose the\n // pixels during drawImage operation, painting on the temporary canvas(es)\n // that are twice smaller in size\n while ((widthScale > 2 && paintWidth > 1) ||\n (heightScale > 2 && paintHeight > 1)) {\n var newWidth = paintWidth, newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId,\n newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight,\n 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1';\n }\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight,\n 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 this.restore();\n },\n\n paintInlineImageXObjectGroup:\n function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\n\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,\n 0, -1, 1, 1);\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 ctx.restore();\n }\n },\n\n paintSolidColorImageMask:\n function CanvasGraphics_paintSolidColorImageMask() {\n this.ctx.fillRect(0, 0, 1, 1);\n },\n\n paintXObject: function CanvasGraphics_paintXObject() {\n warn('Unsupported \\'paintXObject\\' command.');\n },\n\n // Marked content\n\n markPoint: function CanvasGraphics_markPoint(tag) {\n // TODO Marked content.\n },\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {\n // TODO Marked content.\n },\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {\n // TODO Marked content.\n },\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(\n tag, properties) {\n // TODO Marked content.\n },\n endMarkedContent: function CanvasGraphics_endMarkedContent() {\n // TODO Marked content.\n },\n\n // Compatibility\n\n beginCompat: function CanvasGraphics_beginCompat() {\n // TODO ignore undefined operators (should we do that anyway?)\n },\n endCompat: function CanvasGraphics_endCompat() {\n // TODO stop ignoring undefined operators\n },\n\n // Helper functions\n\n consumePath: function CanvasGraphics_consumePath() {\n var ctx = this.ctx;\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip('evenodd');\n } else {\n ctx.clip();\n }\n this.pendingClip = null;\n }\n ctx.beginPath();\n },\n getSinglePixelWidth(scale) {\n if (this._cachedGetSinglePixelWidth === null) {\n const inverse = this.ctx.mozCurrentTransformInverse;\n // max of the current horizontal and vertical scale\n this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(\n (inverse[0] * inverse[0] + inverse[1] * inverse[1]),\n (inverse[2] * inverse[2] + inverse[3] * inverse[3])));\n }\n return this._cachedGetSinglePixelWidth;\n },\n getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [\n transform[0] * x + transform[2] * y + transform[4],\n transform[1] * x + transform[3] * y + transform[5]\n ];\n },\n };\n\n for (var op in OPS) {\n CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n }\n\n return CanvasGraphics;\n})();\n\nexport {\n CanvasGraphics,\n};\n","/* Copyright 2014 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\nimport { FormatError, info, Util } from '../shared/util';\n\nvar ShadingIRs = {};\n\nShadingIRs.RadialAxial = {\n fromIR: function RadialAxial_fromIR(raw) {\n var type = raw[1];\n var colorStops = raw[2];\n var p0 = raw[3];\n var p1 = raw[4];\n var r0 = raw[5];\n var r1 = raw[6];\n return {\n type: 'Pattern',\n getPattern: function RadialAxial_getPattern(ctx) {\n var grad;\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 return grad;\n },\n };\n },\n};\n\nvar createMeshCanvas = (function createMeshCanvasClosure() {\n function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n // Very basic Gouraud-shaded triangle rasterization algorithm.\n var coords = context.coords, colors = context.colors;\n var bytes = data.data, rowSize = data.width * 4;\n var tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1; p1 = p2; p2 = tmp; tmp = c1; c1 = c2; c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2; p2 = p3; p3 = tmp; tmp = c2; c2 = c3; c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1; p1 = p2; p2 = tmp; tmp = c1; c1 = c2; c2 = tmp;\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 if (y1 >= y3) {\n return;\n }\n var c1r = colors[c1], c1g = colors[c1 + 1], c1b = colors[c1 + 2];\n var c2r = colors[c2], c2g = colors[c2 + 1], c2b = colors[c2 + 2];\n var c3r = colors[c3], c3g = colors[c3 + 1], c3b = colors[c3 + 2];\n\n var minY = Math.round(y1), maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n var k;\n for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);\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 k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);\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 k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);\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 for (var x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n k = k < 0 ? 0 : k > 1 ? 1 : k;\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 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 for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context,\n ps[q], ps[q + 1], ps[q + verticesPerRow],\n cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context,\n ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow],\n cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n break;\n case 'triangles':\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context,\n ps[i], ps[i + 1], ps[i + 2],\n cs[i], cs[i + 1], cs[i + 2]);\n }\n break;\n default:\n throw new Error('illegal figure');\n }\n }\n\n function createMeshCanvas(bounds, combinesScale, coords, colors, figures,\n backgroundColor, cachedCanvases, webGLContext) {\n // we will increase scale on some weird factor to let antialiasing take\n // care of \"rough\" edges\n var EXPECTED_SCALE = 1.1;\n // MAX_PATTERN_SIZE is used to avoid OOM situation.\n var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n // We need to keep transparent border around our pattern for fill():\n // createPattern with 'no-repeat' will bleed edges across entire area.\n var BORDER_SIZE = 2;\n\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\n var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] *\n EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] *\n EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n\n var context = {\n coords,\n colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY,\n };\n\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n\n var canvas, tmpCanvas, i, ii;\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width,\n height,\n backgroundColor,\n figures,\n context,\n });\n // https://bugzilla.mozilla.org/show_bug.cgi?id=972126\n tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight,\n false);\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight,\n false);\n var tmpCtx = tmpCanvas.context;\n\n var data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n var bytes = data.data;\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 for (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\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 return createMeshCanvas;\n})();\n\nShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\n // var type = raw[1];\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 var scale;\n if (shadingFill) {\n scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n // Obtain scale from matrix and current transformation matrix.\n scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n if (matrix) {\n var matrixScale = Util.singularValueDecompose2dScale(matrix);\n scale = [scale[0] * matrixScale[0],\n scale[1] * matrixScale[1]];\n }\n }\n\n // Rasterizing on the main thread since sending/queue large canvases\n // might cause OOM.\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords,\n colors, figures, shadingFill ? null : background,\n owner.cachedCanvases, owner.webGLContext);\n\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n if (matrix) {\n ctx.transform.apply(ctx, matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX,\n temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX,\n temporaryPatternCanvas.scaleY);\n\n return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');\n },\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 if (!shadingIR) {\n throw new Error(`Unknown IR type: ${raw[0]}`);\n }\n return shadingIR.fromIR(raw);\n}\n\nvar TilingPattern = (function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2,\n };\n\n var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\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\n info('TilingType: ' + tilingType);\n\n var x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3];\n\n var topLeft = [x0, y0];\n // we want the canvas to be as large as the step size\n var botRight = [x0 + xstep, y0 + ystep];\n\n var width = botRight[0] - topLeft[0];\n var height = botRight[1] - topLeft[1];\n\n // Obtain scale from matrix and current transformation matrix.\n var matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n var curMatrixScale = Util.singularValueDecompose2dScale(\n this.baseTransform);\n var combinedScale = [matrixScale[0] * curMatrixScale[0],\n matrixScale[1] * curMatrixScale[1]];\n\n // MAX_PATTERN_SIZE is used to avoid OOM situation.\n // Use width and height values that are as close as possible to the end\n // result when the pattern is used. Too low value makes the pattern look\n // blurry. Too large value makes it look too crispy.\n width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])),\n MAX_PATTERN_SIZE);\n\n height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])),\n MAX_PATTERN_SIZE);\n\n var tmpCanvas = owner.cachedCanvases.getCanvas('pattern',\n width, height, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n\n this.setScale(width, height, xstep, ystep);\n this.transformToScale(graphics);\n\n // transform coordinates to pattern space\n var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];\n graphics.transform.apply(graphics, tmpTranslate);\n\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n\n graphics.executeOperatorList(operatorList);\n return tmpCanvas.canvas;\n },\n\n setScale: function TilingPattern_setScale(width, height, xstep, ystep) {\n this.scale = [width / xstep, height / ystep];\n },\n\n transformToScale: function TilingPattern_transformToScale(graphics) {\n var scale = this.scale;\n var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];\n graphics.transform.apply(graphics, tmpScale);\n },\n\n scaleToContext: function TilingPattern_scaleToContext() {\n var scale = this.scale;\n this.ctx.scale(1 / scale[0], 1 / scale[1]);\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\n setFillAndStrokeStyleToContext:\n function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n let context = graphics.ctx, current = graphics.current;\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 case PaintType.UNCOLORED:\n var cssColor = Util.makeCssRgb(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n // Set color needed by image masks (fixes issues 3226 and 8741).\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new FormatError(`Unsupported paint type: ${paintType}`);\n }\n },\n\n getPattern: function TilingPattern_getPattern(ctx, owner) {\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n\n ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n this.scaleToContext();\n\n return ctx.createPattern(temporaryPatternCanvas, 'repeat');\n },\n };\n\n return TilingPattern;\n})();\n\nexport {\n getShadingPatternFromIR,\n TilingPattern,\n};\n","/* Copyright 2018 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\nconst GlobalWorkerOptions = Object.create(null);\n\n/**\n * Defines global port for worker process. Overrides the `workerSrc` option.\n * @var {Object}\n */\nGlobalWorkerOptions.workerPort = (GlobalWorkerOptions.workerPort === undefined ?\n null : GlobalWorkerOptions.workerPort);\n\n/**\n * Path and filename of the worker file. Required when workers are enabled in\n * development mode. If unspecified in production builds, the worker will be\n * loaded based on the location of the `pdf.js` file.\n *\n * NOTE: The `workerSrc` should always be set in custom applications, in order\n * to prevent issues caused by third-party frameworks and libraries.\n * @var {string}\n */\nGlobalWorkerOptions.workerSrc = (GlobalWorkerOptions.workerSrc === undefined ?\n '' : GlobalWorkerOptions.workerSrc);\n\nexport {\n GlobalWorkerOptions,\n};\n","/* Copyright 2018 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\nimport {\n AbortException, assert, createPromiseCapability, MissingPDFException,\n ReadableStream, UnexpectedResponseException, UnknownErrorException\n} from './util';\n\nasync function resolveCall(fn, args, thisArg = null) {\n if (!fn) {\n return;\n }\n return fn.apply(thisArg, args);\n}\n\nfunction wrapReason(reason) {\n if (typeof reason !== 'object') {\n return reason;\n }\n switch (reason.name) {\n case 'AbortException':\n return new AbortException(reason.message);\n case 'MissingPDFException':\n return new MissingPDFException(reason.message);\n case 'UnexpectedResponseException':\n return new UnexpectedResponseException(reason.message, reason.status);\n default:\n return new UnknownErrorException(reason.message, reason.details);\n }\n}\n\nfunction makeReasonSerializable(reason) {\n if (!(reason instanceof Error) ||\n reason instanceof AbortException ||\n reason instanceof MissingPDFException ||\n reason instanceof UnexpectedResponseException ||\n reason instanceof UnknownErrorException) {\n return reason;\n }\n return new UnknownErrorException(reason.message, reason.toString());\n}\n\nfunction resolveOrReject(capability, success, reason) {\n if (success) {\n capability.resolve();\n } else {\n capability.reject(reason);\n }\n}\n\nfunction finalize(promise) {\n return Promise.resolve(promise).catch(() => {});\n}\n\nfunction MessageHandler(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 let callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n let ah = this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = (event) => {\n let data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this._processStreamMessage(data);\n } else if (data.isReply) {\n let callbackId = data.callbackId;\n if (data.callbackId in callbacksCapabilities) {\n let callback = callbacksCapabilities[callbackId];\n delete callbacksCapabilities[callbackId];\n if ('error' in data) {\n callback.reject(wrapReason(data.error));\n } else {\n callback.resolve(data.data);\n }\n } else {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n } else if (data.action in ah) {\n let action = ah[data.action];\n if (data.callbackId) {\n let sourceName = this.sourceName;\n let targetName = data.sourceName;\n Promise.resolve().then(function () {\n return action[0].call(action[1], data.data);\n }).then((result) => {\n comObj.postMessage({\n sourceName,\n targetName,\n isReply: true,\n callbackId: data.callbackId,\n data: result,\n });\n }, (reason) => {\n comObj.postMessage({\n sourceName,\n targetName,\n isReply: true,\n callbackId: data.callbackId,\n error: makeReasonSerializable(reason),\n });\n });\n } else if (data.streamId) {\n this._createStreamSink(data);\n } else {\n action[0].call(action[1], data.data);\n }\n } else {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n };\n comObj.addEventListener('message', this._onComObjOnMessage);\n}\n\nMessageHandler.prototype = {\n on(actionName, handler, scope) {\n var ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = [handler, scope];\n },\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * @param {String} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers\n */\n send(actionName, data, transfers) {\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n };\n this.postMessage(message, transfers);\n },\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expects that the other side will callback with the response.\n * @param {String} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers.\n * @returns {Promise} Promise to be resolved with response data.\n */\n sendWithPromise(actionName, data, transfers) {\n var callbackId = this.callbackId++;\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n callbackId,\n };\n var capability = createPromiseCapability();\n this.callbacksCapabilities[callbackId] = capability;\n try {\n this.postMessage(message, transfers);\n } catch (e) {\n capability.reject(e);\n }\n return capability.promise;\n },\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expect that the other side will callback to signal 'start_complete'.\n * @param {String} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Object} queueingStrategy - strategy to signal backpressure based on\n * internal queue.\n * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers.\n * @return {ReadableStream} ReadableStream to read data in chunks.\n */\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n let streamId = this.streamId++;\n let sourceName = this.sourceName;\n let targetName = this.targetName;\n\n return new ReadableStream({\n start: (controller) => {\n let startCapability = createPromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n isClosed: false,\n };\n this.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize,\n });\n // Return Promise for Async process, to signal success/failure.\n return startCapability.promise;\n },\n\n pull: (controller) => {\n let pullCapability = createPromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n this.postMessage({\n sourceName,\n targetName,\n stream: 'pull',\n streamId,\n desiredSize: controller.desiredSize,\n });\n // Returning Promise will not call \"pull\"\n // again until current pull is resolved.\n return pullCapability.promise;\n },\n\n cancel: (reason) => {\n let cancelCapability = createPromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n this.postMessage({\n sourceName,\n targetName,\n stream: 'cancel',\n reason,\n streamId,\n });\n // Return Promise to signal success or failure.\n return cancelCapability.promise;\n },\n }, queueingStrategy);\n },\n\n _createStreamSink(data) {\n let self = this;\n let action = this.actionHandler[data.action];\n let streamId = data.streamId;\n let desiredSize = data.desiredSize;\n let sourceName = this.sourceName;\n let targetName = data.sourceName;\n let capability = createPromiseCapability();\n\n let sendStreamRequest = ({ stream, chunk, transfers,\n success, reason, }) => {\n this.postMessage({ sourceName, targetName, stream, streamId,\n chunk, success, reason, }, transfers);\n };\n\n let streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n let lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n // Enqueue decreases the desiredSize property of sink,\n // so when it changes from positive to negative,\n // set ready as unresolved promise.\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n sendStreamRequest({ stream: 'enqueue', chunk, transfers, });\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({ stream: 'close', });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({ stream: 'error', reason, });\n },\n\n sinkCapability: capability,\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize,\n ready: null,\n };\n\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n resolveCall(action[0], [data.data, streamSink], action[1]).then(() => {\n sendStreamRequest({ stream: 'start_complete', success: true, });\n }, (reason) => {\n sendStreamRequest({ stream: 'start_complete', success: false, reason, });\n });\n },\n\n _processStreamMessage(data) {\n let sourceName = this.sourceName;\n let targetName = data.sourceName;\n let streamId = data.streamId;\n\n let sendStreamResponse = ({ stream, success, reason, }) => {\n this.comObj.postMessage({ sourceName, targetName, stream,\n success, streamId, reason, });\n };\n\n let deleteStreamController = () => {\n // Delete streamController only when start, pull and\n // cancel callbacks are resolved, to avoid \"TypeError\".\n Promise.all([\n this.streamControllers[data.streamId].startCall,\n this.streamControllers[data.streamId].pullCall,\n this.streamControllers[data.streamId].cancelCall\n ].map(function(capability) {\n return capability && finalize(capability.promise);\n })).then(() => {\n delete this.streamControllers[data.streamId];\n });\n };\n\n switch (data.stream) {\n case 'start_complete':\n resolveOrReject(this.streamControllers[data.streamId].startCall,\n data.success, wrapReason(data.reason));\n break;\n case 'pull_complete':\n resolveOrReject(this.streamControllers[data.streamId].pullCall,\n data.success, wrapReason(data.reason));\n break;\n case 'pull':\n // Ignore any pull after close is called.\n if (!this.streamSinks[data.streamId]) {\n sendStreamResponse({ stream: 'pull_complete', success: true, });\n break;\n }\n // Pull increases the desiredSize property of sink,\n // so when it changes from negative to positive,\n // set ready property as resolved promise.\n if (this.streamSinks[data.streamId].desiredSize <= 0 &&\n data.desiredSize > 0) {\n this.streamSinks[data.streamId].sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n this.streamSinks[data.streamId].desiredSize = data.desiredSize;\n resolveCall(this.streamSinks[data.streamId].onPull).then(() => {\n sendStreamResponse({ stream: 'pull_complete', success: true, });\n }, (reason) => {\n sendStreamResponse({ stream: 'pull_complete',\n success: false, reason, });\n });\n break;\n case 'enqueue':\n assert(this.streamControllers[data.streamId],\n 'enqueue should have stream controller');\n if (!this.streamControllers[data.streamId].isClosed) {\n this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n }\n break;\n case 'close':\n assert(this.streamControllers[data.streamId],\n 'close should have stream controller');\n if (this.streamControllers[data.streamId].isClosed) {\n break;\n }\n this.streamControllers[data.streamId].isClosed = true;\n this.streamControllers[data.streamId].controller.close();\n deleteStreamController();\n break;\n case 'error':\n assert(this.streamControllers[data.streamId],\n 'error should have stream controller');\n this.streamControllers[data.streamId].controller.\n error(wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel_complete':\n resolveOrReject(this.streamControllers[data.streamId].cancelCall,\n data.success, wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel':\n if (!this.streamSinks[data.streamId]) {\n break;\n }\n resolveCall(this.streamSinks[data.streamId].onCancel,\n [wrapReason(data.reason)]).then(() => {\n sendStreamResponse({ stream: 'cancel_complete', success: true, });\n }, (reason) => {\n sendStreamResponse({ stream: 'cancel_complete',\n success: false, reason, });\n });\n this.streamSinks[data.streamId].sinkCapability.\n reject(wrapReason(data.reason));\n this.streamSinks[data.streamId].isCancelled = true;\n delete this.streamSinks[data.streamId];\n break;\n default:\n throw new Error('Unexpected stream case');\n }\n },\n\n /**\n * Sends raw message to the comObj.\n * @private\n * @param {Object} message - Raw message.\n * @param transfers List of transfers/ArrayBuffers, or undefined.\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\nexport {\n MessageHandler,\n};\n","/* Copyright 2012 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\nimport { assert } from '../shared/util';\nimport { SimpleXMLParser } from './xml_parser';\n\nclass Metadata {\n constructor(data) {\n assert(typeof data === 'string', 'Metadata: input is not a string');\n\n // Ghostscript may produce invalid metadata, so try to repair that first.\n data = this._repair(data);\n\n // Convert the string to an XML document.\n let parser = new SimpleXMLParser();\n const xmlDocument = parser.parseFromString(data);\n\n this._metadata = Object.create(null);\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n return data.replace(/>\\\\376\\\\377([^<]+)/g, function(all, codes) {\n let bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g,\n 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 case 'apos':\n return '\\'';\n case 'gt':\n return '>';\n case 'lt':\n return '<';\n case 'quot':\n return '\\\"';\n }\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n\n let chars = '';\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n let code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n if (code >= 32 && code < 127 && code !== 60 && code !== 62 &&\n 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') { // Wrapped in <xmpmeta>\n rdf = rdf.firstChild;\n while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n rdf = rdf.nextSibling;\n }\n }\n\n let nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {\n return;\n }\n\n let children = rdf.childNodes;\n for (let i = 0, ii = children.length; i < ii; i++) {\n let desc = children[i];\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 let entry = desc.childNodes[j];\n let name = entry.nodeName.toLowerCase();\n\n this._metadata[name] = entry.textContent.trim();\n }\n }\n }\n }\n\n get(name) {\n return this._metadata[name] || null;\n }\n\n getAll() {\n return this._metadata;\n }\n\n has(name) {\n return typeof this._metadata[name] !== 'undefined';\n }\n}\n\nexport {\n Metadata,\n};\n","/* Copyright 2018 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// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\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 return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, function (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 switch (entity) {\n case 'lt':\n return '<';\n case 'gt':\n return '>';\n case 'amp':\n return '&';\n case 'quot':\n return '\\\"';\n }\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n let pos = start, name, attributes = [];\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) &&\n s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n name = s.substring(start, pos);\n skipWs();\n while (pos < s.length && s[pos] !== '>' &&\n s[pos] !== '/' && s[pos] !== '?') {\n skipWs();\n let attrName = '', attrValue = '';\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') {\n attrName += s[pos];\n ++pos;\n }\n skipWs();\n if (s[pos] !== '=') {\n return null;\n }\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n if (attrEndChar !== '\\\"' && attrEndChar !== '\\'') {\n return null;\n }\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n if (attrEndIndex < 0) {\n return null;\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 return {\n name,\n attributes,\n parsed: pos - start,\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start, name, value;\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) &&\n s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) {\n ++pos;\n }\n 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 while (i < s.length) {\n const ch = s[i];\n let j = i;\n if (ch === '<') {\n ++j;\n const ch2 = s[j];\n let q;\n switch (ch2) {\n case '/':\n ++j;\n q = s.indexOf('>', j);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n case '?':\n ++j;\n const pi = this._parseProcessingInstruction(s, j);\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n case '!':\n if (s.substring(j + 1, j + 3) === '--') {\n q = s.indexOf('-->', j + 3);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\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 if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\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 if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n if (q2 > 0 && q > q2) {\n q = s.indexOf(']>', j + 8);\n if (q < 0) {\n this.onError(\n XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n complexDoctype = true;\n }\n const doctypeContent =\n 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 break;\n default:\n const content = this._parseContent(s, j);\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n let isClosed = false;\n if (s.substring(j + content.parsed,\n j + content.parsed + 2) === '/>') {\n isClosed = true;\n } else if (s.substring(j + content.parsed,\n j + content.parsed + 1) !== '>') {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\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 const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\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\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n\n Object.defineProperty(this, 'parentNode', { value: null, writable: true, });\n }\n\n get firstChild() {\n return this.childNodes[0];\n }\n\n get nextSibling() {\n let index = this.parentNode.childNodes.indexOf(this);\n return this.parentNode.childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || '';\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\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\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined; // return undefined on error\n }\n\n // We should only have one root.\n const [documentElement] = this._currentFragment;\n if (!documentElement) {\n return undefined; // Return undefined if no root was found.\n }\n return { documentElement, };\n }\n\n onResolveEntity(name) {\n switch (name) {\n case 'apos':\n return '\\'';\n }\n return super.onResolveEntity(name);\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n const node = new SimpleDOMNode('#text', text);\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode('#text', text);\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n this._currentFragment.push(node);\n if (isEmpty) {\n return;\n }\n this._stack.push(this._currentFragment);\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 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\nexport {\n SimpleXMLParser,\n};\n","/* Copyright 2012 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\nimport { assert, createPromiseCapability } from '../shared/util';\n\n /** @implements {IPDFStream} */\nvar PDFDataTransportStream = (function PDFDataTransportStreamClosure() {\n function PDFDataTransportStream(params, pdfDataRangeTransport) {\n assert(pdfDataRangeTransport);\n\n this._queuedChunks = [];\n var initialData = params.initialData;\n if (initialData && initialData.length > 0) {\n let buffer = new Uint8Array(initialData).buffer;\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\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({ begin, chunk, });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded) => {\n this._onProgress({ loaded, });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener((chunk) => {\n this._onReceiveData({ chunk, });\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n PDFDataTransportStream.prototype = {\n _onReceiveData: function PDFDataTransportStream_onReceiveData(args) {\n let buffer = new Uint8Array(args.chunk).buffer;\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 var found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n assert(found);\n }\n },\n\n _onProgress: function PDFDataTransportStream_onDataProgress(evt) {\n if (this._rangeReaders.length > 0) {\n // Reporting to first range reader.\n var firstReader = this._rangeReaders[0];\n if (firstReader.onProgress) {\n firstReader.onProgress({ loaded: evt.loaded, });\n }\n }\n },\n\n _removeRangeReader:\n function PDFDataTransportStream_removeRangeReader(reader) {\n var i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n },\n\n getFullReader: function PDFDataTransportStream_getFullReader() {\n assert(!this._fullRequestReader);\n var queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks);\n },\n\n getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) {\n var reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n },\n\n cancelAllRequests:\n function PDFDataTransportStream_cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n var readers = this._rangeReaders.slice(0);\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n this._pdfDataRangeTransport.abort();\n },\n };\n\n /** @implements {IPDFStreamReader} */\n function PDFDataTransportStreamReader(stream, queuedChunks) {\n this._stream = stream;\n this._done = false;\n this._filename = null;\n this._queuedChunks = queuedChunks || [];\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n\n this.onProgress = null; // not used\n }\n PDFDataTransportStreamReader.prototype = {\n _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) {\n if (this._done) {\n return; // ignore new data\n }\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n requestCapability.resolve({ value: chunk, done: false, });\n return;\n }\n this._queuedChunks.push(chunk);\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 var chunk = this._queuedChunks.shift();\n return { value: chunk, done: false, };\n }\n if (this._done) {\n return { value: undefined, done: true, };\n }\n var requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n },\n\n cancel: function PDFDataTransportStreamReader_cancel(reason) {\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n },\n };\n\n /** @implements {IPDFStreamRangeReader} */\n function PDFDataTransportStreamRangeReader(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\n this.onProgress = null;\n }\n PDFDataTransportStreamRangeReader.prototype = {\n _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) {\n if (this._done) {\n return; // ignore new data\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n var requestsCapability = this._requests.shift();\n requestsCapability.resolve({ value: chunk, done: false, });\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n },\n\n get isStreamingSupported() {\n return false;\n },\n\n async read() {\n if (this._queuedChunk) {\n let chunk = this._queuedChunk;\n this._queuedChunk = null;\n return { value: chunk, done: false, };\n }\n if (this._done) {\n return { value: undefined, done: true, };\n }\n var requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n },\n\n cancel: function PDFDataTransportStreamRangeReader_cancel(reason) {\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n this._stream._removeRangeReader(this);\n },\n };\n\n return PDFDataTransportStream;\n})();\n\nexport {\n PDFDataTransportStream,\n};\n","/* Copyright 2014 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/* eslint-disable no-multi-str */\n\nimport { shadow } from '../shared/util';\n\nclass WebGLContext {\n constructor({ enable = false, }) {\n this._enabled = enable === true;\n }\n\n get isEnabled() {\n let enabled = this._enabled;\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n return shadow(this, 'isEnabled', enabled);\n }\n\n composeSMask({ layer, mask, properties, }) {\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n\n drawFigures({ width, height, backgroundColor, figures, context, }) {\n return WebGLUtils.drawFigures(width, height, backgroundColor, figures,\n context);\n }\n\n clear() {\n WebGLUtils.cleanup();\n }\n}\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 if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error('Error during shader compilation: ' + errorMsg);\n }\n return shader;\n }\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error('Error during program linking: ' + errorMsg);\n }\n return program;\n }\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n\n // Set the parameters so we can render any size image.\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\n // Upload the image into the texture.\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 function generateGL() {\n if (currentGL) {\n return;\n }\n\n // The temporary canvas is used in the WebGL context.\n currentCanvas = document.createElement('canvas');\n currentGL = currentCanvas.getContext('webgl',\n { premultipliedalpha: false, });\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\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\n var smaskCache = null;\n\n function initSmaskGL() {\n var canvas, gl;\n\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n\n // setup a GLSL program\n var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n\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\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\n // provide texture coordinates for the rectangle.\n var texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([\n 0.0, 0.0,\n 1.0, 0.0,\n 0.0, 1.0,\n 0.0, 1.0,\n 1.0, 0.0,\n 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n\n smaskCache = cache;\n }\n\n function composeSMask(layer, mask, properties) {\n var width = layer.width, height = layer.height;\n\n if (!smaskCache) {\n initSmaskGL();\n }\n var cache = smaskCache, canvas = cache.canvas, 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],\n properties.backdrop[1], properties.backdrop[2], 1);\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n gl.uniform1i(cache.subtypeLocation,\n properties.subtype === 'Luminosity' ? 1 : 0);\n\n // Create a textures\n var texture = createTexture(gl, layer, gl.TEXTURE0);\n var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n\n // Create a buffer and put a single clipspace rectangle in\n // it (2 triangles)\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([\n 0, 0,\n width, 0,\n 0, height,\n 0, height,\n width, 0,\n width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n // draw\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\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n\n gl.flush();\n\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\n\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\n var figuresFragmentShaderCode = '\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } ';\n\n var figuresCache = null;\n\n function initFiguresGL() {\n var canvas, gl;\n\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n\n // setup a GLSL program\n var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n\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\n figuresCache = cache;\n }\n\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n var cache = figuresCache, canvas = cache.canvas, gl = cache.gl;\n\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 // count triangle points\n var count = 0;\n var i, ii, rows;\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 case 'triangles':\n count += figures[i].coords.length;\n break;\n }\n }\n // transfer data\n var coords = new Float32Array(count * 2);\n var colors = new Uint8Array(count * 3);\n var coordsMap = context.coords, colorsMap = context.colors;\n var pIndex = 0, cIndex = 0;\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i], ps = figure.coords, cs = figure.colors;\n switch (figure.type) {\n case 'lattice':\n var cols = figure.verticesPerRow;\n rows = (ps.length / cols) | 0;\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\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\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 break;\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 break;\n }\n }\n\n // draw\n if (backgroundColor) {\n gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255,\n backgroundColor[2] / 255, 1.0);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n gl.clear(gl.COLOR_BUFFER_BIT);\n\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\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,\n 0, 0);\n\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n\n gl.drawArrays(gl.TRIANGLES, 0, count);\n\n gl.flush();\n\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n\n return canvas;\n }\n\n return {\n tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) { }\n return false;\n },\n\n composeSMask,\n\n drawFigures,\n\n cleanup() {\n if (smaskCache && smaskCache.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n smaskCache = null;\n figuresCache = null;\n },\n };\n})();\n\nexport {\n WebGLContext,\n};\n","/* Copyright 2015 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\nimport { AbortException, createPromiseCapability, Util } from '../shared/util';\nimport globalScope from '../shared/global_scope';\n\n/**\n * Text layer render parameters.\n *\n * @typedef {Object} TextLayerRenderParameters\n * @property {TextContent} textContent - (optional) Text content to render\n * (the object is returned by the page's getTextContent() method).\n * @property {ReadableStream} textContentStream - (optional) Text content\n * stream to render (the stream is returned by the page's\n * streamTextContent() method).\n * @property {HTMLElement} container - HTML element that will contain text runs.\n * @property {PageViewport} viewport - The target viewport to properly\n * layout the text runs.\n * @property {Array} textDivs - (optional) HTML elements that are correspond\n * the text items of the textContent input. This is output and shall be\n * initially be set to empty array.\n * @property {Array} textContentItemsStr - (optional) Strings that correspond\n * the `str` property of the text items of textContent input. This is output\n * and shall be initially be set to empty array.\n * @property {number} timeout - (optional) Delay in milliseconds before\n * rendering of the text runs occurs.\n * @property {boolean} enhanceTextSelection - (optional) Whether to turn on the\n * text selection enhancement.\n */\nvar renderTextLayer = (function renderTextLayerClosure() {\n var MAX_TEXT_DIVS_TO_RENDER = 100000;\n\n var NonWhitespaceRegexp = /\\S/;\n\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n\n // Text layers may contain many thousands of divs, and using `styleBuf` avoids\n // creating many intermediate strings when building their 'style' properties.\n var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0,\n 'px; font-family: ', '', ';'];\n\n function appendText(task, geom, styles) {\n // Initialize all used properties to keep the caches monomorphic.\n var textDiv = document.createElement('span');\n var textDivProperties = {\n style: null,\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 if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n task._textDivProperties.set(textDiv, textDivProperties);\n return;\n }\n\n var tx = Util.transform(task._viewport.transform, geom.transform);\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n var fontHeight = Math.sqrt((tx[2] * tx[2]) + (tx[3] * tx[3]));\n var fontAscent = fontHeight;\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\n\n var left;\n var top;\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 styleBuf[1] = left;\n styleBuf[3] = top;\n styleBuf[5] = fontHeight;\n styleBuf[7] = style.fontFamily;\n textDivProperties.style = styleBuf.join('');\n textDiv.setAttribute('style', textDivProperties.style);\n\n textDiv.textContent = geom.str;\n // `fontName` is only used by the FontInspector, and we only use `dataset`\n // here to make the font name available in the debugger.\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n // We don't bother scaling single-char text divs, because it has very\n // little effect on text highlighting. This makes scrolling on docs with\n // lots of such divs a lot faster.\n if (geom.str.length > 1) {\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 task._textDivProperties.set(textDiv, textDivProperties);\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection) {\n var angleCos = 1, angleSin = 0;\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n var divWidth = (style.vertical ? geom.height : geom.width) *\n task._viewport.scale;\n var divHeight = fontHeight;\n\n var m, b;\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = 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 var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n\n // No point in rendering many divs as it would make the browser\n // unusable even after the divs are rendered.\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 expand(task) {\n var bounds = task._bounds;\n var viewport = task._viewport;\n\n var expanded = expandBounds(viewport.width, viewport.height, bounds);\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n var divProperties = task._textDivProperties.get(div);\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 task._textDivProperties.set(div, divProperties);\n continue;\n }\n // Box is rotated -- trying to find padding so rotated div will not\n // exceed its expanded bounds.\n var e = expanded[i], b = bounds[i];\n var m = b.m, c = m[0], s = m[1];\n // Finding intersections with expanded box.\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, i) {\n var t = Util.applyTransform(p, m);\n ts[i + 0] = c && (e.left - t[0]) / c;\n ts[i + 4] = s && (e.top - t[1]) / s;\n ts[i + 8] = c && (e.right - t[0]) / c;\n ts[i + 12] = s && (e.bottom - t[1]) / s;\n\n ts[i + 16] = s && (e.left - t[0]) / -s;\n ts[i + 20] = c && (e.top - t[1]) / c;\n ts[i + 24] = s && (e.right - t[0]) / -s;\n ts[i + 28] = c && (e.bottom - t[1]) / c;\n\n ts[i + 32] = c && (e.left - t[0]) / -c;\n ts[i + 36] = s && (e.top - t[1]) / -s;\n ts[i + 40] = c && (e.right - t[0]) / -c;\n ts[i + 44] = s && (e.bottom - t[1]) / -s;\n\n ts[i + 48] = s && (e.left - t[0]) / s;\n ts[i + 52] = c && (e.top - t[1]) / -c;\n ts[i + 56] = s && (e.right - t[0]) / s;\n ts[i + 60] = c && (e.bottom - t[1]) / -c;\n });\n var findPositiveMin = function (ts, offset, count) {\n var result = 0;\n for (var i = 0; i < count; i++) {\n var t = ts[offset++];\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n return result;\n };\n // Not based on math, but to simplify calculations, using cos and sin\n // absolute values to not exceed the box (it can but insignificantly).\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 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\n // Rotating on 90 degrees and extending extended boxes. Reusing the bounds\n // array and objects.\n boxes.map(function (box, i) {\n var e = expanded[i], b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n\n 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 // Sorting by x1 coordinate and walk by the bounds in the same order.\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n\n // First we see on the horizon is a fake boundary.\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\n bounds.forEach(function (boundary) {\n // Searching for the affected part of horizon.\n // TODO red-black tree or simple binary search\n var i = 0;\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n var j = horizon.length - 1;\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n var horizonPart, affectedBoundary;\n var q, k, maxXNew = -Infinity;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var xNew;\n if (affectedBoundary.x2 > boundary.x1) {\n // In the middle of the previous element, new x shall be at the\n // boundary start. Extending if further if the affected boundary\n // placed on top of the current one.\n xNew = affectedBoundary.index > boundary.index ?\n affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n // We have some space in between, new x in middle will be a fair\n // choice.\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n // Affected boundary has x2new set, using it as new x.\n xNew = affectedBoundary.x2New;\n }\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n // Set new x1 for current boundary.\n boundary.x1New = maxXNew;\n\n // Adjusts new x2 for the affected boundaries.\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n // Was not set yet, choosing new x if possible.\n if (affectedBoundary.x2 > boundary.x1) {\n // Current and affected boundaries intersect. If affected boundary\n // is placed on top of the current, shrinking the affected.\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 // Affected boundary is touching new x, pushing it back.\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n // Fixing the horizon.\n var changedHorizon = [], lastBoundary = null;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n // Checking which boundary will be visible.\n var useBoundary = affectedBoundary.x2 > boundary.x2 ?\n affectedBoundary : boundary;\n if (lastBoundary === useBoundary) {\n // Merging with previous.\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 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 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 // Set x2 new of boundary that is no longer visible (see overlapping case\n // above).\n // TODO more efficient, e.g. via reference counting.\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n var used = false;\n for (k = i - 1; !used && k >= 0 &&\n horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (k = j + 1; !used && k < horizon.length &&\n horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon,\n [i, j - i + 1].concat(changedHorizon));\n });\n\n // Set new x2 for all unset boundaries.\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n\n /**\n * Text layer rendering task.\n *\n * @param {TextContent} textContent\n * @param {HTMLElement} container\n * @param {PageViewport} viewport\n * @param {Array} textDivs\n * @param {boolean} enhanceTextSelection\n * @private\n */\n function TextLayerRenderTask({ textContent, textContentStream, container,\n viewport, textDivs, textContentItemsStr,\n enhanceTextSelection, }) {\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 = !!(globalScope.FontInspector &&\n globalScope.FontInspector.enabled);\n\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 = createPromiseCapability();\n this._renderTimer = null;\n this._bounds = [];\n }\n TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n\n cancel: function TextLayer_cancel() {\n if (this._reader) {\n this._reader.cancel(new AbortException('text layer task cancelled'));\n this._reader = null;\n }\n this._canceled = true;\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n this._capability.reject('canceled');\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 appendText(this, items[i], styleCache);\n }\n },\n\n _layoutText(textDiv) {\n let textLayerFrag = this._container;\n\n let textDivProperties = this._textDivProperties.get(textDiv);\n if (textDivProperties.isWhitespace) {\n return;\n }\n\n let fontSize = textDiv.style.fontSize;\n let fontFamily = textDiv.style.fontFamily;\n\n // Only build font string and set to context if different from last.\n if (fontSize !== this._layoutTextLastFontSize ||\n fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = fontSize + ' ' + fontFamily;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n let width = this._layoutTextCtx.measureText(textDiv.textContent).width;\n\n let transform = '';\n if (textDivProperties.canvasWidth !== 0 && width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = 'scaleX(' + textDivProperties.scale + ')';\n }\n if (textDivProperties.angle !== 0) {\n transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform;\n }\n if (transform !== '') {\n textDivProperties.originalTransform = transform;\n textDiv.style.transform = transform;\n }\n this._textDivProperties.set(textDiv, textDivProperties);\n textLayerFrag.appendChild(textDiv);\n },\n\n _render: function TextLayer_render(timeout) {\n let capability = createPromiseCapability();\n let styleCache = Object.create(null);\n\n // The temporary canvas is used to measure text length in the DOM.\n let canvas = document.createElement('canvas');\n if (typeof PDFJSDev === 'undefined' ||\n PDFJSDev.test('FIREFOX || MOZCENTRAL || GENERIC')) {\n canvas.mozOpaque = true;\n }\n this._layoutTextCtx = canvas.getContext('2d', { alpha: false, });\n\n if (this._textContent) {\n let textItems = this._textContent.items;\n let textStyles = this._textContent.styles;\n this._processItems(textItems, textStyles);\n capability.resolve();\n } else if (this._textContentStream) {\n let pump = () => {\n this._reader.read().then(({ value, done, }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n this._processItems(value.items, styleCache);\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\"' +\n ' parameters specified.');\n }\n\n capability.promise.then(() => {\n styleCache = null;\n if (!timeout) { // Render right away\n render(this);\n } else { // Schedule\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n },\n\n expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n var div = this._textDivs[i];\n var divProperties = this._textDivProperties.get(div);\n\n if (divProperties.isWhitespace) {\n continue;\n }\n if (expandDivs) {\n var transform = '', padding = '';\n\n if (divProperties.scale !== 1) {\n transform = 'scaleX(' + divProperties.scale + ')';\n }\n if (divProperties.angle !== 0) {\n transform = 'rotate(' + divProperties.angle + 'deg) ' + transform;\n }\n if (divProperties.paddingLeft !== 0) {\n padding += ' padding-left: ' +\n (divProperties.paddingLeft / divProperties.scale) + 'px;';\n transform += ' translateX(' +\n (-divProperties.paddingLeft / divProperties.scale) + 'px)';\n }\n if (divProperties.paddingTop !== 0) {\n padding += ' padding-top: ' + divProperties.paddingTop + 'px;';\n transform += ' translateY(' + (-divProperties.paddingTop) + 'px)';\n }\n if (divProperties.paddingRight !== 0) {\n padding += ' padding-right: ' +\n (divProperties.paddingRight / divProperties.scale) + 'px;';\n }\n if (divProperties.paddingBottom !== 0) {\n padding += ' padding-bottom: ' +\n divProperties.paddingBottom + 'px;';\n }\n\n if (padding !== '') {\n div.setAttribute('style', divProperties.style + padding);\n }\n if (transform !== '') {\n div.style.transform = transform;\n }\n } else {\n div.style.padding = 0;\n div.style.transform = divProperties.originalTransform || '';\n }\n }\n },\n };\n\n /**\n * Starts rendering of the text layer.\n *\n * @param {TextLayerRenderParameters} renderParameters\n * @returns {TextLayerRenderTask}\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 task._render(renderParameters.timeout);\n return task;\n }\n\n return renderTextLayer;\n})();\n\nexport {\n renderTextLayer,\n};\n","/* Copyright 2014 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\nimport {\n addLinkAttributes, DOMSVGFactory, getFilenameFromUrl, LinkTarget\n} from './dom_utils';\nimport {\n AnnotationBorderStyleType, AnnotationType, stringToPDFString, unreachable,\n Util, warn\n} from '../shared/util';\n\n/**\n * @typedef {Object} AnnotationElementParameters\n * @property {Object} data\n * @property {HTMLDivElement} layer\n * @property {PDFPage} page\n * @property {PageViewport} viewport\n * @property {IPDFLinkService} linkService\n * @property {DownloadManager} downloadManager\n * @property {string} imageResourcesPath - (optional) Path for image resources,\n * mainly for annotation icons. Include trailing slash.\n * @property {boolean} renderInteractiveForms\n * @property {Object} svgFactory\n */\n\nclass AnnotationElementFactory {\n /**\n * @param {AnnotationElementParameters} parameters\n * @returns {AnnotationElement}\n */\n static create(parameters) {\n let subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case AnnotationType.WIDGET:\n let fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case 'Tx':\n return new TextWidgetAnnotationElement(parameters);\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 return new PushButtonWidgetAnnotationElement(parameters);\n case 'Ch':\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n\n case AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\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 /**\n * Create an empty container for the annotation's HTML element.\n *\n * @private\n * @param {boolean} ignoreBorder\n * @memberof AnnotationElement\n * @returns {HTMLSectionElement}\n */\n _createContainer(ignoreBorder = false) {\n let data = this.data, page = this.page, viewport = this.viewport;\n let container = document.createElement('section');\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n\n container.setAttribute('data-annotation-id', data.id);\n\n // Do *not* modify `data.rect`, since that will corrupt the annotation\n // position on subsequent calls to `_createContainer` (see issue 6804).\n let rect = Util.normalizeRect([\n data.rect[0],\n page.view[3] - data.rect[1] + page.view[1],\n data.rect[2],\n page.view[3] - data.rect[3] + page.view[1]\n ]);\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 if (data.borderStyle.style !== AnnotationBorderStyleType.UNDERLINE) {\n // Underline styles only have a bottom border, so we do not need\n // to adjust for all borders. This yields a similar result as\n // Adobe Acrobat/Reader.\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n\n let horizontalRadius = data.borderStyle.horizontalCornerRadius;\n let verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n let radius = horizontalRadius + 'px / ' + verticalRadius + 'px';\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = 'solid';\n break;\n\n case AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = 'dashed';\n break;\n\n case AnnotationBorderStyleType.BEVELED:\n warn('Unimplemented border style: beveled');\n break;\n\n case AnnotationBorderStyleType.INSET:\n warn('Unimplemented border style: inset');\n break;\n\n case 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.makeCssRgb(data.color[0] | 0,\n data.color[1] | 0,\n data.color[2] | 0);\n } else {\n // Transparent (invisible) border, so do not draw it at all.\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = rect[0] + 'px';\n container.style.top = rect[1] + 'px';\n\n container.style.width = width + 'px';\n container.style.height = height + 'px';\n\n return container;\n }\n\n /**\n * Create a popup for the annotation's HTML element. This is used for\n * annotations that do not have a Popup entry in the dictionary, but\n * are of a type that works with popups (such as Highlight annotations).\n *\n * @private\n * @param {HTMLSectionElement} container\n * @param {HTMLDivElement|HTMLImageElement|null} trigger\n * @param {Object} data\n * @memberof AnnotationElement\n */\n _createPopup(container, trigger, data) {\n // If no trigger element is specified, create it.\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 let popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n title: data.title,\n contents: data.contents,\n hideWrapper: true,\n });\n let popup = popupElement.render();\n\n // Position the popup next to the annotation's container.\n popup.style.left = container.style.width;\n\n container.appendChild(popup);\n }\n\n /**\n * Render the annotation's HTML element in the empty container.\n *\n * @public\n * @memberof AnnotationElement\n */\n render() {\n unreachable('Abstract method `AnnotationElement.render` called');\n }\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.url || parameters.data.dest ||\n parameters.data.action);\n super(parameters, isRenderable);\n }\n\n /**\n * Render the link annotation's HTML element in the empty container.\n *\n * @public\n * @memberof LinkAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'linkAnnotation';\n\n let { data, linkService, } = this;\n let link = document.createElement('a');\n\n addLinkAttributes(link, {\n url: data.url,\n target: (data.newWindow ?\n LinkTarget.BLANK : linkService.externalLinkTarget),\n rel: linkService.externalLinkRel,\n });\n\n if (!data.url) {\n if (data.action) {\n this._bindNamedAction(link, data.action);\n } else {\n this._bindLink(link, data.dest);\n }\n }\n\n this.container.appendChild(link);\n return this.container;\n }\n\n /**\n * Bind internal links to the link element.\n *\n * @private\n * @param {Object} link\n * @param {Object} destination\n * @memberof LinkAnnotationElement\n */\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.navigateTo(destination);\n }\n return false;\n };\n if (destination) {\n link.className = 'internalLink';\n }\n }\n\n /**\n * Bind named actions to the link element.\n *\n * @private\n * @param {Object} link\n * @param {Object} action\n * @memberof LinkAnnotationElement\n */\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl('');\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n link.className = 'internalLink';\n }\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\n }\n\n /**\n * Render the text annotation's HTML element in the empty container.\n *\n * @public\n * @memberof TextAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'textAnnotation';\n\n let 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-' +\n this.data.name.toLowerCase() + '.svg';\n image.alt = '[{{type}} Annotation]';\n image.dataset.l10nId = 'text_annotation_type';\n image.dataset.l10nArgs = JSON.stringify({ type: this.data.name, });\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\nclass WidgetAnnotationElement extends AnnotationElement {\n /**\n * Render the widget annotation's HTML element in the empty container.\n *\n * @public\n * @memberof WidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n // Show only the container for unsupported field types.\n return this.container;\n }\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n let isRenderable = parameters.renderInteractiveForms ||\n (!parameters.data.hasAppearance && !!parameters.data.fieldValue);\n super(parameters, isRenderable);\n }\n\n /**\n * Render the text widget annotation's HTML element in the empty container.\n *\n * @public\n * @memberof TextWidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n const TEXT_ALIGNMENT = ['left', 'center', 'right'];\n\n this.container.className = 'textWidgetAnnotation';\n\n let element = null;\n if (this.renderInteractiveForms) {\n // NOTE: We cannot set the values using `element.value` below, since it\n // prevents the AnnotationLayer rasterizer in `test/driver.js`\n // from parsing the elements correctly for the reference tests.\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\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n let fieldWidth = this.data.rect[2] - this.data.rect[0];\n let combWidth = fieldWidth / this.data.maxLen;\n\n element.classList.add('comb');\n element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)';\n }\n } else {\n element = document.createElement('div');\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = 'middle';\n element.style.display = 'table-cell';\n\n let font = null;\n if (this.data.fontRefName &&\n this.page.commonObjs.has(this.data.fontRefName)) {\n font = this.page.commonObjs.get(this.data.fontRefName);\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 /**\n * Apply text styles to the text in the element.\n *\n * @private\n * @param {HTMLDivElement} element\n * @param {Object} font\n * @memberof TextWidgetAnnotationElement\n */\n _setTextStyle(element, font) {\n // TODO: This duplicates some of the logic in CanvasGraphics.setFont().\n let 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 style.fontWeight = (font.black ?\n (font.bold ? '900' : 'bold') :\n (font.bold ? 'bold' : 'normal'));\n style.fontStyle = (font.italic ? 'italic' : 'normal');\n\n // Use a reasonable default font if the font doesn't specify a fallback.\n let fontFamily = font.loadedName ? '\"' + font.loadedName + '\", ' : '';\n let fallbackName = font.fallbackName || 'Helvetica, sans-serif';\n style.fontFamily = fontFamily + fallbackName;\n }\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n /**\n * Render the checkbox widget annotation's HTML element\n * in the empty container.\n *\n * @public\n * @memberof CheckboxWidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'buttonWidgetAnnotation checkBox';\n\n let element = document.createElement('input');\n element.disabled = this.data.readOnly;\n element.type = 'checkbox';\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\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n /**\n * Render the radio button widget annotation's HTML element\n * in the empty container.\n *\n * @public\n * @memberof RadioButtonWidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'buttonWidgetAnnotation radioButton';\n\n let element = document.createElement('input');\n element.disabled = this.data.readOnly;\n element.type = 'radio';\n element.name = this.data.fieldName;\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\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n /**\n * Render the push button widget annotation's HTML element\n * in the empty container.\n *\n * @public\n * @memberof PushButtonWidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n // The rendering and functionality of a push button widget annotation is\n // equal to that of a link annotation, but may have more functionality, such\n // as performing actions on form fields (resetting, submitting, et cetera).\n let container = super.render();\n container.className = 'buttonWidgetAnnotation pushButton';\n return container;\n }\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, parameters.renderInteractiveForms);\n }\n\n /**\n * Render the choice widget annotation's HTML element in the empty\n * container.\n *\n * @public\n * @memberof ChoiceWidgetAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'choiceWidgetAnnotation';\n\n let selectElement = document.createElement('select');\n selectElement.disabled = this.data.readOnly;\n\n if (!this.data.combo) {\n // List boxes have a size and (optionally) multiple selection.\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n // Insert the options into the choice field.\n for (let i = 0, ii = this.data.options.length; i < ii; i++) {\n let option = this.data.options[i];\n\n let 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\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable);\n }\n\n /**\n * Render the popup annotation's HTML element in the empty container.\n *\n * @public\n * @memberof PopupAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n // Do not render popup annotations for parent elements with these types as\n // they create the popups themselves (because of custom trigger divs).\n const IGNORE_TYPES = [\n 'Line',\n 'Square',\n 'Circle',\n 'PolyLine',\n 'Polygon',\n 'Ink',\n ];\n\n this.container.className = 'popupAnnotation';\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n let selector = '[data-annotation-id=\"' + this.data.parentId + '\"]';\n let parentElement = this.layer.querySelector(selector);\n if (!parentElement) {\n return this.container;\n }\n\n let popup = new PopupElement({\n container: this.container,\n trigger: parentElement,\n color: this.data.color,\n title: this.data.title,\n contents: this.data.contents,\n });\n\n // Position the popup next to the parent annotation's container.\n // PDF viewers ignore a popup annotation's rectangle.\n let parentLeft = parseFloat(parentElement.style.left);\n let parentWidth = parseFloat(parentElement.style.width);\n this.container.style.transformOrigin =\n -(parentLeft + parentWidth) + 'px -' + parentElement.style.top;\n this.container.style.left = (parentLeft + parentWidth) + 'px';\n\n this.container.appendChild(popup.render());\n return this.container;\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.contents = parameters.contents;\n this.hideWrapper = parameters.hideWrapper || false;\n\n this.pinned = false;\n }\n\n /**\n * Render the popup's HTML element.\n *\n * @public\n * @memberof PopupElement\n * @returns {HTMLSectionElement}\n */\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n\n let wrapper = document.createElement('div');\n wrapper.className = 'popupWrapper';\n\n // For Popup annotations we hide the entire section because it contains\n // only the popup. However, for Text annotations without a separate Popup\n // annotation, we cannot hide the entire container as the image would\n // disappear too. In that special case, hiding the wrapper suffices.\n this.hideElement = (this.hideWrapper ? wrapper : this.container);\n this.hideElement.setAttribute('hidden', true);\n\n let popup = document.createElement('div');\n popup.className = 'popup';\n\n let color = this.color;\n if (color) {\n // Enlighten the color.\n let r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n let g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n let b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = Util.makeCssRgb(r | 0, g | 0, b | 0);\n }\n\n let contents = this._formatContents(this.contents);\n let title = document.createElement('h1');\n title.textContent = this.title;\n\n // Attach the event listeners to the trigger element.\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\n popup.appendChild(title);\n popup.appendChild(contents);\n wrapper.appendChild(popup);\n return wrapper;\n }\n\n /**\n * Format the contents of the popup by adding newlines where necessary.\n *\n * @private\n * @param {string} contents\n * @memberof PopupElement\n * @returns {HTMLParagraphElement}\n */\n _formatContents(contents) {\n let p = document.createElement('p');\n let lines = contents.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n let line = lines[i];\n p.appendChild(document.createTextNode(line));\n if (i < (ii - 1)) {\n p.appendChild(document.createElement('br'));\n }\n }\n return p;\n }\n\n /**\n * Toggle the visibility of the popup.\n *\n * @private\n * @memberof PopupElement\n */\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n /**\n * Show the popup.\n *\n * @private\n * @param {boolean} pin\n * @memberof PopupElement\n */\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n if (this.hideElement.hasAttribute('hidden')) {\n this.hideElement.removeAttribute('hidden');\n this.container.style.zIndex += 1;\n }\n }\n\n /**\n * Hide the popup.\n *\n * @private\n * @param {boolean} unpin\n * @memberof PopupElement\n */\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\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\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the line annotation's HTML element in the empty container.\n *\n * @public\n * @memberof LineAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'lineAnnotation';\n\n // Create an invisible line with the same starting and ending coordinates\n // that acts as the trigger for the popup. Only the line itself should\n // trigger the popup, not the entire container.\n let data = this.data;\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n let svg = this.svgFactory.create(width, height);\n\n // PDF coordinates are calculated from a bottom left origin, so transform\n // the line coordinates to a top left origin for the SVG element.\n let 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);\n line.setAttribute('stroke', 'transparent');\n\n svg.appendChild(line);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the line instead\n // of to the entire container (which is the default).\n this._createPopup(this.container, line, data);\n\n return this.container;\n }\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the square annotation's HTML element in the empty container.\n *\n * @public\n * @memberof SquareAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'squareAnnotation';\n\n // Create an invisible square with the same rectangle that acts as the\n // trigger for the popup. Only the square itself should trigger the\n // popup, not the entire container.\n let data = this.data;\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n let svg = this.svgFactory.create(width, height);\n\n // The browser draws half of the borders inside the square and half of\n // the borders outside the square by default. This behavior cannot be\n // changed programmatically, so correct for that here.\n let borderWidth = data.borderStyle.width;\n let 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);\n square.setAttribute('stroke', 'transparent');\n square.setAttribute('fill', 'none');\n\n svg.appendChild(square);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the square instead\n // of to the entire container (which is the default).\n this._createPopup(this.container, square, data);\n\n return this.container;\n }\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the circle annotation's HTML element in the empty container.\n *\n * @public\n * @memberof CircleAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'circleAnnotation';\n\n // Create an invisible circle with the same ellipse that acts as the\n // trigger for the popup. Only the circle itself should trigger the\n // popup, not the entire container.\n let data = this.data;\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n let svg = this.svgFactory.create(width, height);\n\n // The browser draws half of the borders inside the circle and half of\n // the borders outside the circle by default. This behavior cannot be\n // changed programmatically, so correct for that here.\n let borderWidth = data.borderStyle.width;\n let 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);\n circle.setAttribute('stroke', 'transparent');\n circle.setAttribute('fill', 'none');\n\n svg.appendChild(circle);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the circle instead\n // of to the entire container (which is the default).\n this._createPopup(this.container, circle, data);\n\n return this.container;\n }\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n\n this.containerClassName = 'polylineAnnotation';\n this.svgElementName = 'svg:polyline';\n }\n\n /**\n * Render the polyline annotation's HTML element in the empty container.\n *\n * @public\n * @memberof PolylineAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = this.containerClassName;\n\n // Create an invisible polyline with the same points that acts as the\n // trigger for the popup. Only the polyline itself should trigger the\n // popup, not the entire container.\n let data = this.data;\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n let svg = this.svgFactory.create(width, height);\n\n // Convert the vertices array to a single points string that the SVG\n // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n // calculated from a bottom left origin, so transform the polyline\n // coordinates to a top left origin for the SVG element.\n let vertices = data.vertices;\n let points = [];\n for (let i = 0, ii = vertices.length; i < ii; i++) {\n let x = vertices[i].x - data.rect[0];\n let y = data.rect[3] - vertices[i].y;\n points.push(x + ',' + y);\n }\n points = points.join(' ');\n\n let borderWidth = data.borderStyle.width;\n let polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute('points', points);\n polyline.setAttribute('stroke-width', borderWidth);\n polyline.setAttribute('stroke', 'transparent');\n polyline.setAttribute('fill', 'none');\n\n svg.appendChild(polyline);\n this.container.append(svg);\n\n // Create the popup ourselves so that we can bind it to the polyline\n // instead of to the entire container (which is the default).\n this._createPopup(this.container, polyline, data);\n\n return this.container;\n }\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n // Polygons are specific forms of polylines, so reuse their logic.\n super(parameters);\n\n this.containerClassName = 'polygonAnnotation';\n this.svgElementName = 'svg:polygon';\n }\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n\n this.containerClassName = 'inkAnnotation';\n\n // Use the polyline SVG element since it allows us to use coordinates\n // directly and to draw both straight lines and curves.\n this.svgElementName = 'svg:polyline';\n }\n\n /**\n * Render the ink annotation's HTML element in the empty container.\n *\n * @public\n * @memberof InkAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = this.containerClassName;\n\n // Create an invisible polyline with the same points that acts as the\n // trigger for the popup.\n let data = this.data;\n let width = data.rect[2] - data.rect[0];\n let height = data.rect[3] - data.rect[1];\n let svg = this.svgFactory.create(width, height);\n\n let inkLists = data.inkLists;\n for (let i = 0, ii = inkLists.length; i < ii; i++) {\n let inkList = inkLists[i];\n let points = [];\n\n // Convert the ink list to a single points string that the SVG\n // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n // calculated from a bottom left origin, so transform the polyline\n // coordinates to a top left origin for the SVG element.\n for (let j = 0, jj = inkList.length; j < jj; j++) {\n let x = inkList[j].x - data.rect[0];\n let y = data.rect[3] - inkList[j].y;\n points.push(x + ',' + y);\n }\n\n points = points.join(' ');\n\n let borderWidth = data.borderStyle.width;\n let polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute('points', points);\n polyline.setAttribute('stroke-width', borderWidth);\n polyline.setAttribute('stroke', 'transparent');\n polyline.setAttribute('fill', 'none');\n\n // Create the popup ourselves so that we can bind it to the polyline\n // instead of to the entire container (which is the default).\n this._createPopup(this.container, polyline, data);\n\n svg.appendChild(polyline);\n }\n\n this.container.append(svg);\n\n return this.container;\n }\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the highlight annotation's HTML element in the empty container.\n *\n * @public\n * @memberof HighlightAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'highlightAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the underline annotation's HTML element in the empty container.\n *\n * @public\n * @memberof UnderlineAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'underlineAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the squiggly annotation's HTML element in the empty container.\n *\n * @public\n * @memberof SquigglyAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'squigglyAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the strikeout annotation's HTML element in the empty container.\n *\n * @public\n * @memberof StrikeOutAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'strikeoutAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n let isRenderable = !!(parameters.data.hasPopup ||\n parameters.data.title || parameters.data.contents);\n super(parameters, isRenderable, /* ignoreBorder = */ true);\n }\n\n /**\n * Render the stamp annotation's HTML element in the empty container.\n *\n * @public\n * @memberof StampAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'stampAnnotation';\n\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, /* isRenderable = */ true);\n\n const { filename, content, } = this.data.file;\n this.filename = getFilenameFromUrl(filename);\n this.content = content;\n\n if (this.linkService.eventBus) {\n this.linkService.eventBus.dispatch('fileattachmentannotation', {\n source: this,\n id: stringToPDFString(filename),\n filename,\n content,\n });\n }\n }\n\n /**\n * Render the file attachment annotation's HTML element in the empty\n * container.\n *\n * @public\n * @memberof FileAttachmentAnnotationElement\n * @returns {HTMLSectionElement}\n */\n render() {\n this.container.className = 'fileAttachmentAnnotation';\n\n let 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 /**\n * Download the file attachment associated with this annotation.\n *\n * @private\n * @memberof FileAttachmentAnnotationElement\n */\n _download() {\n if (!this.downloadManager) {\n warn('Download cannot be started due to unavailable download manager');\n return;\n }\n this.downloadManager.downloadData(this.content, this.filename, '');\n }\n}\n\n/**\n * @typedef {Object} AnnotationLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Array} annotations\n * @property {PDFPage} page\n * @property {IPDFLinkService} linkService\n * @property {DownloadManager} downloadManager\n * @property {string} imageResourcesPath - (optional) Path for image resources,\n * mainly for annotation icons. Include trailing slash.\n * @property {boolean} renderInteractiveForms\n */\n\nclass AnnotationLayer {\n /**\n * Render a new annotation layer with all annotation elements.\n *\n * @public\n * @param {AnnotationLayerParameters} parameters\n * @memberof AnnotationLayer\n */\n static render(parameters) {\n for (let i = 0, ii = parameters.annotations.length; i < ii; i++) {\n let data = parameters.annotations[i];\n if (!data) {\n continue;\n }\n let 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 DOMSVGFactory(),\n });\n if (element.isRenderable) {\n parameters.div.appendChild(element.render());\n }\n }\n }\n\n /**\n * Update the annotation elements on existing annotation layer.\n *\n * @public\n * @param {AnnotationLayerParameters} parameters\n * @memberof AnnotationLayer\n */\n static update(parameters) {\n for (let i = 0, ii = parameters.annotations.length; i < ii; i++) {\n let data = parameters.annotations[i];\n let element = parameters.div.querySelector(\n '[data-annotation-id=\"' + data.id + '\"]');\n if (element) {\n element.style.transform =\n 'matrix(' + parameters.viewport.transform.join(',') + ')';\n }\n }\n parameters.div.removeAttribute('hidden');\n }\n}\n\nexport {\n AnnotationLayer,\n};\n","/* Copyright 2012 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/* globals __non_webpack_require__ */\n\nimport {\n createObjectURL, FONT_IDENTITY_MATRIX, IDENTITY_MATRIX, ImageKind, isNum, OPS,\n TextRenderingMode, Util, warn\n} from '../shared/util';\nimport { DOMSVGFactory } from './dom_utils';\nimport isNodeJS from '../shared/is_node';\n\nvar SVGGraphics = function() {\n throw new Error('Not implemented: SVGGraphics');\n};\n\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n\nvar SVG_DEFAULTS = {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fillColor: '#000000',\n};\n\nvar convertImgDataToPng = (function convertImgDataToPngClosure() {\n var PNG_HEADER =\n new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n\n var CHUNK_WRAPPER_SIZE = 12;\n\n var crcTable = new Int32Array(256);\n for (var i = 0; i < 256; i++) {\n var c = i;\n for (var 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 crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n var crc = -1;\n for (var i = start; i < end; i++) {\n var a = (crc ^ data[i]) & 0xff;\n var b = crcTable[a];\n crc = (crc >>> 8) ^ b;\n }\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n var p = offset;\n var len = body.length;\n\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\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\n data.set(body, p);\n p += body.length;\n\n var crc = crc32(data, offset + 4, p);\n\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 var a = 1;\n var b = 0;\n for (var i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return (b << 16) | a;\n }\n\n /**\n * @param {Uint8Array} literals The input data.\n * @returns {Uint8Array} The DEFLATE-compressed data stream in zlib format.\n * This is the required format for compressed streams in the PNG format:\n * http://www.libpng.org/pub/png/spec/1.2/PNG-Compression.html\n */\n function deflateSync(literals) {\n if (!isNodeJS()) {\n // zlib is certainly not available outside of Node.js. We can either use\n // the pako library for client-side DEFLATE compression, or use the canvas\n // API of the browser to obtain a more optimal PNG file.\n return deflateSyncUncompressed(literals);\n }\n try {\n // NOTE: This implementation is far from perfect, but already way better\n // than not applying any compression.\n //\n // A better algorithm will try to choose a good predictor/filter and\n // then choose a suitable zlib compression strategy (e.g. 3,Z_RLE).\n //\n // Node v0.11.12 zlib.deflateSync is introduced (and returns a Buffer).\n // Node v3.0.0 Buffer inherits from Uint8Array.\n // Node v8.0.0 zlib.deflateSync accepts Uint8Array as input.\n var input;\n // eslint-disable-next-line no-undef\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n // eslint-disable-next-line no-undef\n input = new Buffer(literals);\n }\n var output = __non_webpack_require__('zlib')\n .deflateSync(input, { level: 9, });\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n warn('Not compressing PNG because zlib.deflateSync is unavailable: ' + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n // An implementation of DEFLATE with compression level 0 (Z_NO_COMPRESSION).\n function deflateSyncUncompressed(literals) {\n var len = literals.length;\n var maxBlockLength = 0xFFFF;\n\n var deflateBlocks = Math.ceil(len / maxBlockLength);\n var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n var pi = 0;\n idat[pi++] = 0x78; // compression method and flags\n idat[pi++] = 0x9c; // flags\n\n var pos = 0;\n while (len > maxBlockLength) {\n // writing non-final DEFLATE blocks type 0 and length of 65535\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 // writing non-final DEFLATE blocks type 0\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\n var adler = adler32(literals, 0, literals.length); // checksum\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 var width = imgData.width;\n var height = imgData.height;\n var bitDepth, colorType, lineSize;\n var bytes = imgData.data;\n\n switch (kind) {\n case ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = (width + 7) >> 3;\n break;\n case ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error('invalid format');\n }\n\n // prefix every row with predictor 0\n var literals = new Uint8Array((1 + lineSize) * height);\n var offsetLiterals = 0, offsetBytes = 0;\n var y, i;\n for (y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0; // no prediction\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize),\n offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === ImageKind.GRAYSCALE_1BPP && isMask) {\n // inverting for image masks\n offsetLiterals = 0;\n for (y = 0; y < height; y++) {\n offsetLiterals++; // skipping predictor\n for (i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xFF;\n }\n }\n }\n\n var ihdr = new Uint8Array([\n width >> 24 & 0xff,\n width >> 16 & 0xff,\n width >> 8 & 0xff,\n width & 0xff,\n height >> 24 & 0xff,\n height >> 16 & 0xff,\n height >> 8 & 0xff,\n height & 0xff,\n bitDepth, // bit depth\n colorType, // color type\n 0x00, // compression method\n 0x00, // filter method\n 0x00 // interlace method\n ]);\n\n var idat = deflateSync(literals);\n\n // PNG will consists: header, IHDR+data, IDAT+data, and IEND.\n var pngLength = PNG_HEADER.length + (CHUNK_WRAPPER_SIZE * 3) +\n ihdr.length + idat.length;\n var data = new Uint8Array(pngLength);\n var 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\n return createObjectURL(data, 'image/png', forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n var kind = (imgData.kind === undefined ?\n ImageKind.GRAYSCALE_1BPP : imgData.kind);\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n})();\n\nvar SVGExtraState = (function SVGExtraStateClosure() {\n function SVGExtraState() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n\n this.textMatrix = IDENTITY_MATRIX;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = TextRenderingMode.FILL;\n\n // Current point (in user coordinates)\n this.x = 0;\n this.y = 0;\n\n // Start of text line (in text coordinates)\n this.lineX = 0;\n this.lineY = 0;\n\n // Character and word spacing\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n\n // Default foreground and background colors\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = '#000000';\n\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = '';\n this.lineCap = '';\n this.miterLimit = 0;\n\n this.dashArray = [];\n this.dashPhase = 0;\n\n this.dependencies = [];\n\n // Clipping\n this.activeClipUrl = null;\n this.clipGroup = null;\n\n this.maskId = '';\n }\n\n SVGExtraState.prototype = {\n clone: function SVGExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n },\n };\n return SVGExtraState;\n})();\n\nSVGGraphics = (function SVGGraphicsClosure() {\n function opListToTree(opList) {\n var opTree = [];\n var tmp = [];\n var opListLen = opList.length;\n\n for (var x = 0; x < opListLen; x++) {\n if (opList[x].fn === 'save') {\n opTree.push({ 'fnId': 92, 'fn': 'group', 'items': [], });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n\n if (opList[x].fn === 'restore') {\n opTree = tmp.pop();\n } else {\n opTree.push(opList[x]);\n }\n }\n return opTree;\n }\n\n /**\n * Formats float number.\n * @param value {number} number to format.\n * @returns {string}\n */\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n var s = value.toFixed(10);\n var i = s.length - 1;\n if (s[i] !== '0') {\n return s;\n }\n // removing trailing zeros\n do {\n i--;\n } while (s[i] === '0');\n return s.substring(0, s[i] === '.' ? i : i + 1);\n }\n\n /**\n * Formats transform matrix. The standard rotation, scale and translate\n * matrices are replaced by their shorter forms, and for identity matrix\n * returns empty string to save the memory.\n * @param m {Array} matrix to format.\n * @returns {string}\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 return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')';\n }\n if (m[0] === m[3] && m[1] === -m[2]) {\n var 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 return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' +\n pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')';\n }\n\n function SVGGraphics(commonObjs, objs, forceDataSchema) {\n this.svgFactory = new DOMSVGFactory();\n\n this.current = new SVGExtraState();\n this.transformMatrix = IDENTITY_MATRIX; // Graphics state matrix\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n }\n\n var XML_NS = 'http://www.w3.org/XML/1998/namespace';\n var XLINK_NS = 'http://www.w3.org/1999/xlink';\n var LINE_CAP_STYLES = ['butt', 'round', 'square'];\n var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n var clipCount = 0;\n var maskCount = 0;\n\n SVGGraphics.prototype = {\n save: function SVGGraphics_save() {\n this.transformStack.push(this.transformMatrix);\n var old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n },\n\n restore: function SVGGraphics_restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n\n this.pendingClip = null;\n this.tgrp = null;\n },\n\n group: function SVGGraphics_group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n },\n\n loadDependencies: function SVGGraphics_loadDependencies(operatorList) {\n var fnArray = operatorList.fnArray;\n var fnArrayLen = fnArray.length;\n var argsArray = operatorList.argsArray;\n\n for (var i = 0; i < fnArrayLen; i++) {\n if (OPS.dependency === fnArray[i]) {\n var deps = argsArray[i];\n for (var n = 0, nn = deps.length; n < nn; n++) {\n var obj = deps[n];\n var common = obj.substring(0, 2) === 'g_';\n var promise;\n if (common) {\n promise = new Promise((resolve) => {\n this.commonObjs.get(obj, resolve);\n });\n } else {\n promise = new Promise((resolve) => {\n this.objs.get(obj, resolve);\n });\n }\n this.current.dependencies.push(promise);\n }\n }\n }\n return Promise.all(this.current.dependencies);\n },\n\n transform: function SVGGraphics_transform(a, b, c, d, e, f) {\n var transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = Util.transform(this.transformMatrix,\n transformMatrix);\n this.tgrp = null;\n },\n\n getSVG: function SVGGraphics_getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n var svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = IDENTITY_MATRIX;\n var opTree = this.convertOpList(operatorList);\n this.executeOpTree(opTree);\n return svgElement;\n });\n },\n\n convertOpList: function SVGGraphics_convertOpList(operatorList) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var fnArrayLen = fnArray.length;\n var REVOPS = [];\n var opList = [];\n\n for (var op in OPS) {\n REVOPS[OPS[op]] = op;\n }\n\n for (var x = 0; x < fnArrayLen; x++) {\n var fnId = fnArray[x];\n opList.push({\n 'fnId': fnId,\n 'fn': REVOPS[fnId],\n 'args': argsArray[x],\n });\n }\n return opListToTree(opList);\n },\n\n executeOpTree: function SVGGraphics_executeOpTree(opTree) {\n var opTreeLen = opTree.length;\n for (var x = 0; x < opTreeLen; x++) {\n var fn = opTree[x].fn;\n var fnId = opTree[x].fnId;\n var args = opTree[x].args;\n\n switch (fnId | 0) {\n case OPS.beginText:\n this.beginText();\n break;\n case OPS.dependency:\n // Handled in loadDependencies, warning should not be thrown\n break;\n case OPS.setLeading:\n this.setLeading(args);\n break;\n case OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case OPS.setFont:\n this.setFont(args);\n break;\n case OPS.showText:\n this.showText(args[0]);\n break;\n case OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case OPS.endText:\n this.endText();\n break;\n case OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2],\n args[3], args[4], args[5]);\n break;\n case OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case OPS.setGState:\n this.setGState(args[0]);\n break;\n case OPS.fill:\n this.fill();\n break;\n case OPS.eoFill:\n this.eoFill();\n break;\n case OPS.stroke:\n this.stroke();\n break;\n case OPS.fillStroke:\n this.fillStroke();\n break;\n case OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case OPS.clip:\n this.clip('nonzero');\n break;\n case OPS.eoClip:\n this.clip('evenodd');\n break;\n case OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case OPS.paintJpegXObject:\n this.paintJpegXObject(args[0], args[1], args[2]);\n break;\n case OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case OPS.closePath:\n this.closePath();\n break;\n case OPS.closeStroke:\n this.closeStroke();\n break;\n case OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case OPS.nextLine:\n this.nextLine();\n break;\n case OPS.transform:\n this.transform(args[0], args[1], args[2], args[3],\n args[4], args[5]);\n break;\n case OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTree[x].items);\n break;\n default:\n warn('Unimplemented operator ' + fn);\n break;\n }\n }\n },\n\n setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n },\n\n setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n },\n\n nextLine: function SVGGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n\n setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) {\n var current = this.current;\n this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f];\n\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n\n current.xcoords = [];\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size',\n pf(current.fontSize) + 'px');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n\n current.txtElement = this.svgFactory.createElement('svg:text');\n current.txtElement.appendChild(current.tspan);\n },\n\n beginText: function SVGGraphics_beginText() {\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n this.current.textMatrix = IDENTITY_MATRIX;\n this.current.lineMatrix = IDENTITY_MATRIX;\n this.current.tspan = this.svgFactory.createElement('svg:tspan');\n this.current.txtElement = this.svgFactory.createElement('svg:text');\n this.current.txtgrp = this.svgFactory.createElement('svg:g');\n this.current.xcoords = [];\n },\n\n moveText: function SVGGraphics_moveText(x, y) {\n var current = this.current;\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n\n current.xcoords = [];\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size',\n pf(current.fontSize) + 'px');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n },\n\n showText: function SVGGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\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 widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n var x = 0, i;\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n if (glyph === null) {\n // word break\n x += fontDirection * wordSpacing;\n continue;\n } else if (isNum(glyph)) {\n x += -glyph * fontSize * 0.001;\n continue;\n }\n\n var width = glyph.width;\n var character = glyph.fontChar;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n\n if (!glyph.isInFont && !font.missingFile) {\n x += charWidth;\n // TODO: To assist with text selection, we should replace the missing\n // character with a space character if charWidth is not zero.\n // But we cannot just do \"character = ' '\", because the ' ' character\n // might actually map to a different glyph.\n continue;\n }\n current.xcoords.push(current.x + x * textHScale);\n current.tspan.textContent += character;\n x += charWidth;\n }\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, 'x',\n current.xcoords.map(pf).join(' '));\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size',\n pf(current.fontSize) + 'px');\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);\n }\n\n const fillStrokeMode = current.textRenderingMode &\n TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === TextRenderingMode.FILL ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, 'fill', current.fillColor);\n }\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n }\n } else if (current.textRenderingMode === TextRenderingMode.ADD_TO_PATH) {\n // Workaround for Firefox: We must set fill=\"transparent\" because\n // fill=\"none\" would generate an empty clipping path.\n current.tspan.setAttributeNS(null, 'fill', 'transparent');\n } else {\n current.tspan.setAttributeNS(null, 'fill', 'none');\n }\n\n if (fillStrokeMode === TextRenderingMode.STROKE ||\n fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n this._setStrokeAttributes(current.tspan);\n }\n\n // Include the text rise in the text matrix since the `pm` function\n // creates the SVG element's `translate` entry (work on a copy to avoid\n // altering the original text matrix).\n let textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, 'transform',\n pm(textMatrix) + ' scale(1, -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: function SVGGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n\n addFontStyle: function SVGGraphics_addFontStyle(fontObj) {\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 var url = createObjectURL(fontObj.data, fontObj.mimetype,\n this.forceDataSchema);\n this.cssStyle.textContent +=\n '@font-face { font-family: \"' + fontObj.loadedName + '\";' +\n ' src: url(' + url + '); }\\n';\n },\n\n setFont: function SVGGraphics_setFont(details) {\n var current = this.current;\n var fontObj = this.commonObjs.get(details[0]);\n var size = details[1];\n this.current.font = fontObj;\n\n if (this.embedFonts && fontObj.data &&\n !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = (fontObj.fontMatrix ?\n fontObj.fontMatrix : FONT_IDENTITY_MATRIX);\n\n var bold = fontObj.black ? (fontObj.bold ? 'bolder' : 'bold') :\n (fontObj.bold ? 'bold' : 'normal');\n var 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 current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.xcoords = [];\n },\n\n endText() {\n const current = this.current;\n if ((current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG) &&\n current.txtElement && current.txtElement.hasChildNodes()) {\n // If no glyphs are shown (i.e. no child nodes), no clipping occurs.\n current.element = current.txtElement;\n this.clip('nonzero');\n this.endPath();\n }\n },\n\n // Path properties\n setLineWidth: function SVGGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n },\n setLineCap: function SVGGraphics_setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function SVGGraphics_setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function SVGGraphics_setMiterLimit(limit) {\n this.current.miterLimit = limit;\n },\n setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n },\n setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) {\n var color = Util.makeCssRgb(r, g, b);\n this.current.strokeColor = color;\n },\n setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n },\n setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) {\n var color = Util.makeCssRgb(r, g, b);\n this.current.fillColor = color;\n this.current.tspan = this.svgFactory.createElement('svg:tspan');\n this.current.xcoords = [];\n },\n setDash: function SVGGraphics_setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n },\n\n constructPath: function SVGGraphics_constructPath(ops, args) {\n var current = this.current;\n var x = current.x, y = current.y;\n current.path = this.svgFactory.createElement('svg:path');\n var d = [];\n var opLength = ops.length;\n\n for (var i = 0, j = 0; i < opLength; i++) {\n switch (ops[i] | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n var xw = x + width;\n var yh = y + height;\n d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh),\n 'L', pf(x), pf(yh), 'Z');\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push('M', pf(x), pf(y));\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push('L', pf(x), pf(y));\n break;\n case 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]),\n pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n case OPS.curveTo2:\n x = args[j + 2];\n y = args[j + 3];\n d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]),\n pf(args[j + 2]), pf(args[j + 3]));\n j += 4;\n break;\n case 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),\n pf(x), pf(y));\n j += 4;\n break;\n case OPS.closePath:\n d.push('Z');\n break;\n }\n }\n current.path.setAttributeNS(null, 'd', d.join(' '));\n current.path.setAttributeNS(null, 'fill', 'none');\n\n this._ensureTransformGroup().appendChild(current.path);\n\n // Saving a reference in current.element so that it can be addressed\n // in 'fill' and 'stroke'\n current.element = current.path;\n current.setCurrentPoint(x, y);\n },\n\n endPath: function SVGGraphics_endPath() {\n if (!this.pendingClip) {\n return;\n }\n var current = this.current;\n // Add current path to clipping path\n var clipId = 'clippath' + clipCount;\n clipCount++;\n var clipPath = this.svgFactory.createElement('svg:clipPath');\n clipPath.setAttributeNS(null, 'id', clipId);\n clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n // A deep clone is needed when text is used as a clipping path.\n const clipElement = current.element.cloneNode(true);\n if (this.pendingClip === 'evenodd') {\n clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');\n } else {\n clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');\n }\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n\n if (current.activeClipUrl) {\n // The previous clipping group content can go out of order -- resetting\n // cached clipGroups.\n current.clipGroup = null;\n this.extraStack.forEach(function (prev) {\n prev.clipGroup = null;\n });\n // Intersect with the previous clipping path.\n clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl);\n }\n current.activeClipUrl = 'url(#' + clipId + ')';\n\n this.tgrp = null;\n },\n\n clip: function SVGGraphics_clip(type) {\n this.pendingClip = type;\n },\n\n closePath: function SVGGraphics_closePath() {\n var current = this.current;\n if (current.path) {\n var d = current.path.getAttributeNS(null, 'd');\n d += 'Z';\n current.path.setAttributeNS(null, 'd', d);\n }\n },\n\n setLeading: function SVGGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n\n setTextRise: function SVGGraphics_setTextRise(textRise) {\n this.current.textRise = textRise;\n },\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n },\n\n setHScale: function SVGGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n\n setGState: function SVGGraphics_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 case 'LC':\n this.setLineCap(value);\n break;\n case 'LJ':\n this.setLineJoin(value);\n break;\n case 'ML':\n this.setMiterLimit(value);\n break;\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n case 'Font':\n this.setFont(value);\n break;\n case 'CA':\n this.setStrokeAlpha(value);\n break;\n case 'ca':\n this.setFillAlpha(value);\n break;\n default:\n warn('Unimplemented graphic state ' + key);\n break;\n }\n }\n },\n\n fill: function SVGGraphics_fill() {\n var current = this.current;\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: function SVGGraphics_stroke() {\n var current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, 'fill', 'none');\n\n this.endPath();\n }\n },\n\n /**\n * @private\n */\n _setStrokeAttributes(element) {\n const current = this.current;\n element.setAttributeNS(null, 'stroke', current.strokeColor);\n element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha);\n element.setAttributeNS(null, 'stroke-miterlimit',\n 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',\n pf(current.lineWidth) + 'px');\n element.setAttributeNS(null, 'stroke-dasharray',\n current.dashArray.map(pf).join(' '));\n element.setAttributeNS(null, 'stroke-dashoffset',\n pf(current.dashPhase) + 'px');\n },\n\n eoFill: function SVGGraphics_eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n this.fill();\n },\n\n fillStroke: function SVGGraphics_fillStroke() {\n // Order is important since stroke wants fill to be none.\n // First stroke, then if fill needed, it will be overwritten.\n this.stroke();\n this.fill();\n },\n\n eoFillStroke: function SVGGraphics_eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n this.fillStroke();\n },\n\n closeStroke: function SVGGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n\n closeFillStroke: function SVGGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n },\n\n paintSolidColorImageMask:\n function SVGGraphics_paintSolidColorImageMask() {\n var current = this.current;\n var 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', current.fillColor);\n\n this._ensureTransformGroup().appendChild(rect);\n },\n\n paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) {\n var imgObj = this.objs.get(objId);\n var imgEl = this.svgFactory.createElement('svg:image');\n imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src);\n imgEl.setAttributeNS(null, 'width', pf(w));\n imgEl.setAttributeNS(null, 'height', pf(h));\n imgEl.setAttributeNS(null, 'x', '0');\n imgEl.setAttributeNS(null, 'y', pf(-h));\n imgEl.setAttributeNS(null, 'transform',\n 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')');\n\n this._ensureTransformGroup().appendChild(imgEl);\n },\n\n paintImageXObject: function SVGGraphics_paintImageXObject(objId) {\n var imgData = this.objs.get(objId);\n if (!imgData) {\n warn('Dependent image isn\\'t ready yet');\n return;\n }\n this.paintInlineImageXObject(imgData);\n },\n\n paintInlineImageXObject:\n function SVGGraphics_paintInlineImageXObject(imgData, mask) {\n var width = imgData.width;\n var height = imgData.height;\n\n var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n var 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 var 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',\n 'scale(' + pf(1 / width) + ' ' +\n pf(-1 / height) + ')');\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n },\n\n paintImageMaskXObject:\n function SVGGraphics_paintImageMaskXObject(imgData) {\n var current = this.current;\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = current.fillColor;\n\n current.maskId = 'mask' + maskCount++;\n var mask = this.svgFactory.createElement('svg:mask');\n mask.setAttributeNS(null, 'id', current.maskId);\n\n var 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:\n function SVGGraphics_paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2],\n matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n\n var 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 function SVGGraphics_paintFormXObjectEnd() {},\n\n /**\n * @private\n */\n _initialize(viewport) {\n let svg = this.svgFactory.create(viewport.width, viewport.height);\n\n // Create the definitions element.\n let definitions = this.svgFactory.createElement('svg:defs');\n svg.appendChild(definitions);\n this.defs = definitions;\n\n // Create the root group element, which acts a container for all other\n // groups and applies the viewport transform.\n let rootGroup = this.svgFactory.createElement('svg:g');\n rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform));\n svg.appendChild(rootGroup);\n\n // For the construction of the SVG image we are only interested in the\n // root group, so we expose it as the entry point of the SVG image for\n // the other code in this class.\n this.svg = rootGroup;\n\n return svg;\n },\n\n /**\n * @private\n */\n _ensureClipGroup: function SVGGraphics_ensureClipGroup() {\n if (!this.current.clipGroup) {\n var clipGroup = this.svgFactory.createElement('svg:g');\n clipGroup.setAttributeNS(null, 'clip-path',\n this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n return this.current.clipGroup;\n },\n\n /**\n * @private\n */\n _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement('svg:g');\n this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n return this.tgrp;\n },\n };\n return SVGGraphics;\n})();\n\n}\n\nexport {\n SVGGraphics,\n};\n","/* Copyright 2012 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/* globals __non_webpack_require__ */\n\nlet fs = __non_webpack_require__('fs');\nlet http = __non_webpack_require__('http');\nlet https = __non_webpack_require__('https');\nlet url = __non_webpack_require__('url');\n\nimport {\n AbortException, assert, createPromiseCapability, MissingPDFException\n} from '../shared/util';\nimport {\n extractFilenameFromHeader, validateRangeRequestCapabilities\n} from './network_utils';\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n let parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === 'file:' || parsedUrl.host) {\n return parsedUrl;\n }\n // Prepending 'file:///' to Windows absolute path.\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n // Changes protocol to 'file:' if url refers to filesystem.\n if (!parsedUrl.host) {\n parsedUrl.protocol = 'file:';\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:' ||\n this.url.protocol === 'https:';\n // Check if url refers to filesystem.\n this.isFsUrl = this.url.protocol === 'file:';\n this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n this._fullRequest = null;\n this._rangeRequestReaders = [];\n }\n\n getFullReader() {\n assert(!this._fullRequest);\n this._fullRequest = this.isFsUrl ?\n new PDFNodeStreamFsFullReader(this) :\n new PDFNodeStreamFullReader(this);\n return this._fullRequest;\n }\n\n getRangeReader(start, end) {\n let rangeReader = this.isFsUrl ?\n new PDFNodeStreamFsRangeReader(this, start, end) :\n new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequest) {\n this._fullRequest.cancel(reason);\n }\n\n let readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function(reader) {\n reader.cancel(reason);\n });\n }\n}\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n let source = stream.source;\n this._contentLength = source.length; // optional\n this._loaded = 0;\n this._filename = null;\n\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n\n this._readableStream = null;\n this._readCapability = createPromiseCapability();\n this._headersCapability = 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 if (this._done) {\n return { value: undefined, done: true, };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n\n let chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = createPromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength,\n });\n }\n // Ensure that `read()` method returns ArrayBuffer.\n let buffer = new Uint8Array(chunk).buffer;\n return { value: buffer, done: false, };\n }\n\n cancel(reason) {\n // Call `this._error()` method when cancel is called\n // before _readableStream is set.\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on('readable', () => {\n this._readCapability.resolve();\n });\n\n readableStream.on('end', () => {\n // Destroy readable to minimize resource usage.\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n\n readableStream.on('error', (reason) => {\n this._error(reason);\n });\n\n // We need to stop reading when range is supported and streaming is\n // disabled.\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new AbortException('streaming is disabled'));\n }\n\n // Destroy ReadableStream if already in errored state.\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\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 = createPromiseCapability();\n let 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 if (this._done) {\n return { value: undefined, done: true, };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n\n let chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = createPromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n if (this.onProgress) {\n this.onProgress({ loaded: this._loaded, });\n }\n // Ensure that `read()` method returns ArrayBuffer.\n let buffer = new Uint8Array(chunk).buffer;\n return { value: buffer, done: false, };\n }\n\n cancel(reason) {\n // Call `this._error()` method when cancel is called\n // before _readableStream is set.\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on('readable', () => {\n this._readCapability.resolve();\n });\n\n readableStream.on('end', () => {\n // Destroy readableStream to minimize resource usage.\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n\n readableStream.on('error', (reason) => {\n this._error(reason);\n });\n\n // Destroy readableStream if already in errored state.\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\n\nfunction createRequestOptions(url, headers) {\n return {\n protocol: url.protocol,\n auth: url.auth,\n host: url.hostname,\n port: url.port,\n path: url.path,\n method: 'GET',\n headers,\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n let handleResponse = (response) => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n\n const getResponseHeader = (name) => {\n // Make sure that headers name are in lower case, as mentioned\n // here: https://nodejs.org/api/http.html#http_message_headers.\n return this._readableStream.headers[name.toLowerCase()];\n };\n let { allowRangeRequests, suggestedLength, } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n this._isRangeSupported = allowRangeRequests;\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n };\n\n this._request = null;\n if (this._url.protocol === 'http:') {\n this._request = http.request(\n createRequestOptions(this._url, stream.httpHeaders),\n handleResponse);\n } else {\n this._request = https.request(\n createRequestOptions(this._url, stream.httpHeaders),\n handleResponse);\n }\n\n this._request.on('error', (reason) => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n // Note: `request.end(data)` is used to write `data` to request body\n // and notify end of request. But one should always call `request.end()`\n // even if there is no data to write -- (to notify the end of request).\n this._request.end();\n }\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n\n this._httpHeaders = {};\n for (let property in stream.httpHeaders) {\n let value = stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n this._httpHeaders[property] = value;\n }\n this._httpHeaders['Range'] = `bytes=${start}-${end - 1}`;\n\n let handleResponse = (response) => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n\n this._request = null;\n if (this._url.protocol === 'http:') {\n this._request = http.request(\n createRequestOptions(this._url, this._httpHeaders),\n handleResponse);\n } else {\n this._request = https.request(\n createRequestOptions(this._url, this._httpHeaders),\n handleResponse);\n }\n\n this._request.on('error', (reason) => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n let path = decodeURIComponent(this._url.path);\n\n // Remove the extra slash to get right path from url like `file:///C:/`\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 MissingPDFException(`Missing PDF \"${path}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n // Setting right content length.\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n this._headersCapability.resolve();\n });\n }\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n\n let path = decodeURIComponent(this._url.path);\n\n // Remove the extra slash to get right path from url like `file:///C:/`\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, '');\n }\n\n this._setReadableStream(\n fs.createReadStream(path, { start, end: end - 1, }));\n }\n}\n\nexport {\n PDFNodeStream,\n};\n","/* Copyright 2012 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\nimport {\n assert, MissingPDFException, UnexpectedResponseException\n} from '../shared/util';\nimport {\n getFilenameFromContentDispositionHeader\n} from './content_disposition';\n\nfunction validateRangeRequestCapabilities({ getResponseHeader, isHttp,\n rangeChunkSize, disableRange, }) {\n assert(rangeChunkSize > 0, 'Range chunk size must be larger than zero');\n let returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined,\n };\n\n let length = parseInt(getResponseHeader('Content-Length'), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n // The file size is smaller than the size of two chunks, so it does not\n // make any sense to abort the request and retry with a range request.\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader('Accept-Ranges') !== 'bytes') {\n return returnValues;\n }\n\n let contentEncoding = getResponseHeader('Content-Encoding') || 'identity';\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 if (contentDisposition) {\n let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && /^file:/.test(url)) {\n return new MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new UnexpectedResponseException(\n 'Unexpected server response (' + status +\n ') while retrieving PDF \"' + url + '\".', status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\nexport {\n createResponseStatusError,\n extractFilenameFromHeader,\n validateRangeRequestCapabilities,\n validateResponseStatus,\n};\n","/* Copyright 2017 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// This getFilenameFromContentDispositionHeader function is adapted from\n// https://github.com/Rob--W/open-in-browser/blob/7e2e35a38b8b4e981b11da7b2f01df0149049e92/extension/content-disposition.js\n// with the following changes:\n// - Modified to conform to PDF.js's coding style.\n// - Support UTF-8 decoding when TextDecoder is unsupported.\n// - Replace Array.from with Array + loop for compat with old browsers.\n// - Replace \"startsWith\" with other string method for compat with old browsers.\n// - Move return to the end of the function to prevent Babel from dropping the\n// function declarations.\n\n/**\n * Extract file name from the Content-Disposition HTTP response header.\n *\n * @param {string} contentDisposition\n * @return {string} Filename, if found in the Content-Disposition header.\n */\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n\n // filename*=ext-value (\"ext-value\" from RFC 5987, referenced by RFC 6266).\n let tmp = toParamRegExp('filename\\\\*', 'i').exec(contentDisposition);\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 // Continuations (RFC 2231 section 3, referenced by RFC 5987 section 3.1).\n // filename*n*=part\n // filename*n=part\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n // RFC 2047, section\n let filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n // filename=value (RFC 5987, section 4.1).\n tmp = toParamRegExp('filename', 'i').exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n // After this line there are only function declarations. We cannot put\n // \"return\" here for readability because babel would then drop the function\n // declarations...\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\n '(?:^|;)\\\\s*' + attributePattern + '\\\\s*=\\\\s*' +\n // Captures: value = token | quoted-string\n // (RFC 2616, section 3.6 and referenced by RFC 6266 4.1)\n '(' +\n '[^\";\\\\s][^;\\\\s]*' +\n '|' +\n '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' +\n ')', flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n let decoder = new TextDecoder(encoding, { fatal: true, });\n let bytes = new Array(value.length);\n for (let i = 0; i < value.length; ++i) {\n bytes[i] = value.charCodeAt(i);\n }\n value = decoder.decode(new Uint8Array(bytes));\n needsEncodingFixup = false;\n } catch (e) {\n // TextDecoder constructor threw - unrecognized encoding.\n // Or TextDecoder API is not available (in IE / Edge).\n if (/^utf-?8$/i.test(encoding)) {\n // UTF-8 is commonly used, try to support it in another way:\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {\n }\n }\n }\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n // Maybe multi-byte UTF-8.\n value = textdecode('utf-8', value);\n if (needsEncodingFixup) {\n // Try iso-8859-1 encoding.\n value = textdecode('iso-8859-1', value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDisposition) {\n let matches = [], match;\n // Iterate over all filename*n= and filename*n*= with n being an integer\n // of at least zero. Any non-zero number must not start with '0'.\n let iter = toParamRegExp('filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)', 'ig');\n while ((match = iter.exec(contentDisposition)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n if (n in matches) {\n // Ignore anything after the invalid second filename*0.\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n let parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n // Numbers must be consecutive. Truncate when there is a hole.\n break;\n }\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join('');\n }\n function rfc2616unquote(value) {\n if (value.charAt(0) === '\"') {\n let parts = value.slice(1).split('\\\\\"');\n // Find the first unescaped \" and terminate there.\n for (let i = 0; i < parts.length; ++i) {\n let quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1; // Truncates and stop the iteration.\n }\n parts[i] = parts[i].replace(/\\\\(.)/g, '$1');\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n // Decodes \"ext-value\" from RFC 5987.\n let encodingend = extvalue.indexOf('\\'');\n if (encodingend === -1) {\n // Some servers send \"filename*=\" without encoding 'language' prefix,\n // e.g. in https://github.com/Rob--W/open-in-browser/issues/26\n // Let's accept the value like Firefox (57) (Chrome 62 rejects it).\n return extvalue;\n }\n let encoding = extvalue.slice(0, encodingend);\n let langvalue = extvalue.slice(encodingend + 1);\n // Ignore language (RFC 5987 section 3.2.1, and RFC 6266 section 4.1 ).\n let value = langvalue.replace(/^[^']*'/, '');\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n // RFC 2047-decode the result. Firefox tried to drop support for it, but\n // backed out because some servers use it - https://bugzil.la/875615\n // Firefox's condition for decoding is here: https://searchfox.org/mozilla-central/rev/4a590a5a15e35d88a3b23dd6ac3c471cf85b04a8/netwerk/mime/nsMIMEHeaderParamImpl.cpp#742-748\n\n // We are more strict and only recognize RFC 2047-encoding if the value\n // starts with \"=?\", since then it is likely that the full value is\n // RFC 2047-encoded.\n\n // Firefox also decodes words even where RFC 2047 section 5 states:\n // \"An 'encoded-word' MUST NOT appear within a 'quoted-string'.\"\n if (value.slice(0, 2) !== '=?' || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n // RFC 2047, section 2.4\n // encoded-word = \"=?\" charset \"?\" encoding \"?\" encoded-text \"?=\"\n // charset = token (but let's restrict to characters that denote a\n // possibly valid encoding).\n // encoding = q or b\n // encoded-text = any printable ASCII character other than ? or space.\n // ... but Firefox permits ? and space.\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g,\n function(_, charset, encoding, text) {\n if (encoding === 'q' || encoding === 'Q') {\n // RFC 2047 section 4.2.\n text = text.replace(/_/g, ' ');\n text = text.replace(/=([0-9a-fA-F]{2})/g, function(_, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n } // else encoding is b or B - base64 (RFC 2047 section 4.1)\n try {\n text = atob(text);\n } catch (e) {\n }\n return textdecode(charset, text);\n });\n }\n\n return '';\n}\n\nexport {\n getFilenameFromContentDispositionHeader,\n};\n","/* Copyright 2012 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\nimport {\n AbortException, assert, createPromiseCapability\n} from '../shared/util';\nimport {\n createResponseStatusError, extractFilenameFromHeader,\n validateRangeRequestCapabilities, validateResponseStatus\n} from './network_utils';\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\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\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n getFullReader() {\n assert(!this._fullRequestReader);\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n let reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n let readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function(reader) {\n reader.cancel(reason);\n });\n }\n}\n\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n let source = stream.source;\n this._withCredentials = source.withCredentials;\n this._contentLength = source.length;\n this._headersCapability = createPromiseCapability();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n\n this._headers = new Headers();\n for (let property in this._stream.httpHeaders) {\n let value = this._stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n this._headers.append(property, value);\n }\n\n let url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials,\n this._abortController)).then((response) => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n\n const getResponseHeader = (name) => {\n return response.headers.get(name);\n };\n let { allowRangeRequests, suggestedLength, } =\n validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange,\n });\n\n this._isRangeSupported = allowRangeRequests;\n // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n\n // We need to stop reading when range is supported and streaming is\n // disabled.\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException('streaming is disabled'));\n }\n }).catch(this._headersCapability.reject);\n\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 { value, done, } = await this._reader.read();\n if (done) {\n return { value, done, };\n }\n this._loaded += value.byteLength;\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength,\n });\n }\n let buffer = new Uint8Array(value).buffer;\n return { value: buffer, done: false, };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n}\n\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n let source = stream.source;\n this._withCredentials = source.withCredentials;\n this._readCapability = createPromiseCapability();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n\n this._headers = new Headers();\n for (let property in this._stream.httpHeaders) {\n let value = this._stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n this._headers.append(property, value);\n }\n\n let rangeStr = begin + '-' + (end - 1);\n this._headers.append('Range', 'bytes=' + rangeStr);\n let url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials,\n this._abortController)).then((response) => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n });\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 { value, done, } = await this._reader.read();\n if (done) {\n return { value, done, };\n }\n this._loaded += value.byteLength;\n if (this.onProgress) {\n this.onProgress({ loaded: this._loaded, });\n }\n let buffer = new Uint8Array(value).buffer;\n return { value: buffer, done: false, };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n}\n\nexport {\n PDFFetchStream,\n};\n","/* Copyright 2012 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\nimport { assert, createPromiseCapability, stringToBytes } from '../shared/util';\nimport {\n createResponseStatusError, extractFilenameFromHeader,\n validateRangeRequestCapabilities\n} from './network_utils';\nimport globalScope from '../shared/global_scope';\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('FIREFOX || MOZCENTRAL')) {\n throw new Error('Module \"./network\" shall not ' +\n 'be used with FIREFOX or MOZCENTRAL build.');\n}\n\nvar OK_RESPONSE = 200;\nvar PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction NetworkManager(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 this.getXhr = args.getXhr ||\n function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n this.loadedRequests = Object.create(null);\n}\n\nfunction getArrayBuffer(xhr) {\n var data = xhr.response;\n if (typeof data !== 'string') {\n return data;\n }\n let array = stringToBytes(data);\n return array.buffer;\n}\n\nvar supportsMozChunked =\n typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME') ? false :\n (function supportsMozChunkedClosure() {\n try {\n var x = new XMLHttpRequest();\n // Firefox 37- required .open() to be called before setting responseType.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=707484\n // Even though the URL is not visited, .open() could fail if the URL is\n // blocked, e.g. via the connect-src CSP directive or the NoScript addon.\n // When this error occurs, this feature detection method will mistakenly\n // report that moz-chunked-arraybuffer is not supported in Firefox 37-.\n x.open('GET', globalScope.location.href);\n x.responseType = 'moz-chunked-arraybuffer';\n return x.responseType === 'moz-chunked-arraybuffer';\n } catch (e) {\n return false;\n }\n})();\n\nNetworkManager.prototype = {\n requestRange: function NetworkManager_requestRange(begin, end, listeners) {\n var args = {\n begin,\n end,\n };\n for (var prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n },\n\n requestFull: function NetworkManager_requestFull(listeners) {\n return this.request(listeners);\n },\n\n request: function NetworkManager_request(args) {\n var xhr = this.getXhr();\n var xhrId = this.currXhrId++;\n var pendingRequest = this.pendingRequests[xhrId] = {\n xhr,\n };\n\n xhr.open('GET', this.url);\n xhr.withCredentials = this.withCredentials;\n for (var property in this.httpHeaders) {\n var value = this.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && 'begin' in args && 'end' in args) {\n var rangeStr = args.begin + '-' + (args.end - 1);\n xhr.setRequestHeader('Range', 'bytes=' + rangeStr);\n pendingRequest.expectedStatus = 206;\n } else {\n pendingRequest.expectedStatus = 200;\n }\n\n var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData;\n if (useMozChunkedLoading) {\n xhr.responseType = 'moz-chunked-arraybuffer';\n pendingRequest.onProgressiveData = args.onProgressiveData;\n pendingRequest.mozChunked = true;\n } else {\n xhr.responseType = 'arraybuffer';\n }\n\n if (args.onError) {\n xhr.onerror = function(evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n\n xhr.send(null);\n\n return xhrId;\n },\n\n onProgress: function NetworkManager_onProgress(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n // Maybe abortRequest was called...\n return;\n }\n\n if (pendingRequest.mozChunked) {\n var chunk = getArrayBuffer(pendingRequest.xhr);\n pendingRequest.onProgressiveData(chunk);\n }\n\n var onProgress = pendingRequest.onProgress;\n if (onProgress) {\n onProgress(evt);\n }\n },\n\n onStateChange: function NetworkManager_onStateChange(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n // Maybe abortRequest was called...\n return;\n }\n\n var xhr = pendingRequest.xhr;\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 // The XHR request might have been aborted in onHeadersReceived()\n // callback, in which case we should abort request\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n // success status == 0 can be on ftp, file and other protocols\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n return;\n }\n var xhrStatus = xhr.status || OK_RESPONSE;\n\n // From http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2:\n // \"A server MAY ignore the Range header\". This means it's possible to\n // get a 200 rather than a 206 response from a range request.\n var ok_response_on_range_request =\n xhrStatus === OK_RESPONSE &&\n pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request &&\n xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n return;\n }\n\n this.loadedRequests[xhrId] = true;\n\n var chunk = getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n var rangeHeader = xhr.getResponseHeader('Content-Range');\n var matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n var begin = parseInt(matches[1], 10);\n pendingRequest.onDone({\n begin,\n chunk,\n });\n } else if (pendingRequest.onProgressiveData) {\n pendingRequest.onDone(null);\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: function NetworkManager_hasPendingRequests() {\n for (var xhrId in this.pendingRequests) {\n return true;\n }\n return false;\n },\n\n getRequestXhr: function NetworkManager_getXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n },\n\n isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) {\n return !!(this.pendingRequests[xhrId].onProgressiveData);\n },\n\n isPendingRequest: function NetworkManager_isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n },\n\n isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) {\n return xhrId in this.loadedRequests;\n },\n\n abortAllRequests: function NetworkManager_abortAllRequests() {\n for (var xhrId in this.pendingRequests) {\n this.abortRequest(xhrId | 0);\n }\n },\n\n abortRequest: function NetworkManager_abortRequest(xhrId) {\n var xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n },\n};\n\n/** @implements {IPDFStream} */\nfunction PDFNetworkStream(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\nPDFNetworkStream.prototype = {\n _onRangeRequestReaderClosed:\n function PDFNetworkStream_onRangeRequestReaderClosed(reader) {\n var i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n },\n\n getFullReader: function PDFNetworkStream_getFullReader() {\n assert(!this._fullRequestReader);\n this._fullRequestReader =\n new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n },\n\n getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) {\n var reader = new PDFNetworkStreamRangeRequestReader(this._manager,\n begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n },\n\n cancelAllRequests: function PDFNetworkStream_cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n var readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n },\n};\n\n/** @implements {IPDFStreamReader} */\nfunction PDFNetworkStreamFullRequestReader(manager, source) {\n this._manager = manager;\n\n var args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onProgressiveData: source.disableStream ? null :\n this._onProgressiveData.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 = createPromiseCapability();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length; // optional\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n\n this.onProgress = null;\n}\n\nPDFNetworkStreamFullRequestReader.prototype = {\n _onHeadersReceived:\n function PDFNetworkStreamFullRequestReader_onHeadersReceived() {\n var fullRequestXhrId = this._fullRequestId;\n var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = (name) => {\n return fullRequestXhr.getResponseHeader(name);\n };\n let { allowRangeRequests, suggestedLength, } =\n 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 // Setting right content length.\n this._contentLength = suggestedLength || this._contentLength;\n\n this._filename = extractFilenameFromHeader(getResponseHeader);\n\n var networkManager = this._manager;\n if (networkManager.isStreamingRequest(fullRequestXhrId)) {\n // We can continue fetching when progressive loading is enabled,\n // and we don't need the autoFetch feature.\n this._isStreamingSupported = true;\n } else if (this._isRangeSupported) {\n // NOTE: by cancelling the full request, and then issuing range\n // requests, there will be an issue for sites where you can only\n // request the pdf once. However, if this is the case, then the\n // server should not be returning that it can support range\n // requests.\n networkManager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n },\n\n _onProgressiveData:\n function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) {\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n requestCapability.resolve({ value: chunk, done: false, });\n } else {\n this._cachedChunks.push(chunk);\n }\n },\n\n _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) {\n if (args) {\n this._onProgressiveData(args.chunk);\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n },\n\n _onError: function PDFNetworkStreamFullRequestReader_onError(status) {\n var url = this._url;\n var exception = createResponseStatusError(status, url);\n this._storedError = exception;\n this._headersReceivedCapability.reject(exception);\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\n this._requests = [];\n this._cachedChunks = [];\n },\n\n _onProgress: function PDFNetworkStreamFullRequestReader_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 if (this._cachedChunks.length > 0) {\n var chunk = this._cachedChunks.shift();\n return { value: chunk, done: false, };\n }\n if (this._done) {\n return { value: undefined, done: true, };\n }\n var requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n },\n\n cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n },\n};\n\n/** @implements {IPDFStreamRangeReader} */\nfunction PDFNetworkStreamRangeRequestReader(manager, begin, end) {\n this._manager = manager;\n var 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\n this.onProgress = null;\n this.onClosed = null;\n}\n\nPDFNetworkStreamRangeRequestReader.prototype = {\n _close: function PDFNetworkStreamRangeRequestReader_close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n },\n\n _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) {\n var chunk = data.chunk;\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n requestCapability.resolve({ value: chunk, done: false, });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n this._close();\n },\n\n _onProgress: function PDFNetworkStreamRangeRequestReader_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; // TODO allow progressive range bytes loading\n },\n\n async read() {\n if (this._queuedChunk !== null) {\n var chunk = this._queuedChunk;\n this._queuedChunk = null;\n return { value: chunk, done: false, };\n }\n if (this._done) {\n return { value: undefined, done: true, };\n }\n var requestCapability = createPromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n },\n\n cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) {\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({ value: undefined, done: true, });\n });\n this._requests = [];\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n },\n};\n\nexport {\n PDFNetworkStream,\n NetworkManager,\n};\n"],"sourceRoot":""}
|