| 1234 |
- var __webpack_require__={d:(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},o:(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop)},__webpack_exports__=globalThis.pdfjsWorker={};__webpack_require__.d(__webpack_exports__,{WorkerMessageHandler:()=>WorkerMessageHandler});const isNodeJS=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type),IDENTITY_MATRIX=[1,0,0,1,0,0],FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0],MAX_IMAGE_SIZE_TO_CACHE=1e7,LINE_FACTOR=1.35,LINE_DESCENT_FACTOR=.35,BASELINE_FACTOR=LINE_DESCENT_FACTOR/LINE_FACTOR,RenderingIntentFlag={ANY:1,DISPLAY:2,PRINT:4,SAVE:8,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,OPLIST:256},AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},AnnotationEditorPrefix="pdfjs_internal_editor_",AnnotationEditorType={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15},AnnotationEditorParamsType={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_DEFAULT_COLOR:32,HIGHLIGHT_THICKNESS:33,HIGHLIGHT_FREE:34,HIGHLIGHT_SHOW_ALL:35},PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26},AnnotationReplyType={GROUP:"Group",REPLY:"R"},AnnotationFlag={INVISIBLE:1,HIDDEN:2,PRINT:4,NOZOOM:8,NOROTATE:16,NOVIEW:32,READONLY:64,LOCKED:128,TOGGLENOVIEW:256,LOCKEDCONTENTS:512},AnnotationFieldFlag={READONLY:1,REQUIRED:2,NOEXPORT:4,MULTILINE:4096,PASSWORD:8192,NOTOGGLETOOFF:16384,RADIO:32768,PUSHBUTTON:65536,COMBO:131072,EDIT:262144,SORT:524288,FILESELECT:1048576,MULTISELECT:2097152,DONOTSPELLCHECK:4194304,DONOTSCROLL:8388608,COMB:16777216,RICHTEXT:33554432,RADIOSINUNISON:33554432,COMMITONSELCHANGE:67108864},AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},AnnotationActionEventType={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"},DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"},PageActionEventType={O:"PageOpen",C:"PageClose"},VerbosityLevel={ERRORS:0,WARNINGS:1,INFOS:5},CMapCompressionType={NONE:0,BINARY:1},OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91},PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let verbosity=VerbosityLevel.WARNINGS;function setVerbosityLevel(level){Number.isInteger(level)&&(verbosity=level)}function getVerbosityLevel(){return verbosity}function info(msg){verbosity>=VerbosityLevel.INFOS&&console.log("Info: "+msg)}function warn(msg){verbosity>=VerbosityLevel.WARNINGS&&console.log("Warning: "+msg)}function unreachable(msg){throw new Error(msg)}function assert(cond,msg){cond||unreachable(msg)}function _isValidProtocol(url){switch(url?.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function createValidAbsoluteUrl(url,baseUrl=null,options=null){if(url)try{if(options&&"string"==typeof url)if(options.addDefaultProtocol&&url.startsWith("www.")&&2<=url.match(/\./g)?.length&&(url="http://"+url),options.tryConvertEncoding)try{url=stringToUTF8String(url)}catch{}var absoluteUrl=baseUrl?new URL(url,baseUrl):new URL(url);if(_isValidProtocol(absoluteUrl))return absoluteUrl}catch{}return null}function shadow(obj,prop,value,nonSerializable=!1){return Object.defineProperty(obj,prop,{value:value,enumerable:!nonSerializable,configurable:!0,writable:!1}),value}const BaseException=function(){function BaseException(message,name){this.constructor===BaseException&&unreachable("Cannot initialize BaseException."),this.message=message,this.name=name}return BaseException.prototype=new Error,BaseException.constructor=BaseException}();class PasswordException extends BaseException{constructor(msg,code){super(msg,"PasswordException"),this.code=code}}class UnknownErrorException extends BaseException{constructor(msg,details){super(msg,"UnknownErrorException"),this.details=details}}class InvalidPDFException extends BaseException{constructor(msg){super(msg,"InvalidPDFException")}}class MissingPDFException extends BaseException{constructor(msg){super(msg,"MissingPDFException")}}class UnexpectedResponseException extends BaseException{constructor(msg,status){super(msg,"UnexpectedResponseException"),this.status=status}}class FormatError extends BaseException{constructor(msg){super(msg,"FormatError")}}class AbortException extends BaseException{constructor(msg){super(msg,"AbortException")}}function bytesToString(bytes){"object"==typeof bytes&&void 0!==bytes?.length||unreachable("Invalid argument for bytesToString");var length=bytes.length;if(length<8192)return String.fromCharCode.apply(null,bytes);var strBuf=[];for(let i=0;i<length;i+=8192){var chunkEnd=Math.min(i+8192,length),chunkEnd=bytes.subarray(i,chunkEnd);strBuf.push(String.fromCharCode.apply(null,chunkEnd))}return strBuf.join("")}function stringToBytes(str){"string"!=typeof str&&unreachable("Invalid argument for stringToBytes");var length=str.length,bytes=new Uint8Array(length);for(let i=0;i<length;++i)bytes[i]=255&str.charCodeAt(i);return bytes}function string32(value){return String.fromCharCode(value>>24&255,value>>16&255,value>>8&255,255&value)}function objectSize(obj){return Object.keys(obj).length}function objectFromMap(map){var key,value,obj=Object.create(null);for([key,value]of map)obj[key]=value;return obj}function isLittleEndian(){var buffer8=new Uint8Array(4),buffer8=(buffer8[0]=1,new Uint32Array(buffer8.buffer,0,1));return 1===buffer8[0]}function isEvalSupported(){try{return new Function(""),!0}catch{return!1}}class FeatureTest{static get isLittleEndian(){return shadow(this,"isLittleEndian",isLittleEndian())}static get isEvalSupported(){return shadow(this,"isEvalSupported",isEvalSupported())}static get isOffscreenCanvasSupported(){return shadow(this,"isOffscreenCanvasSupported","undefined"!=typeof OffscreenCanvas)}static get platform(){return"undefined"!=typeof navigator&&"string"==typeof navigator?.platform?shadow(this,"platform",{isMac:navigator.platform.includes("Mac")}):shadow(this,"platform",{isMac:!1})}static get isCSSRoundSupported(){return shadow(this,"isCSSRoundSupported",globalThis.CSS?.supports?.("width: round(1.5px, 1px)"))}}const hexNumbers=Array.from(Array(256).keys(),n=>n.toString(16).padStart(2,"0"));class Util{static makeHexColor(r,g,b){return"#"+hexNumbers[r]+hexNumbers[g]+hexNumbers[b]}static scaleMinMax(transform,minMax){let temp;transform[0]?(transform[0]<0&&(temp=minMax[0],minMax[0]=minMax[2],minMax[2]=temp),minMax[0]*=transform[0],minMax[2]*=transform[0],transform[3]<0&&(temp=minMax[1],minMax[1]=minMax[3],minMax[3]=temp),minMax[1]*=transform[3],minMax[3]*=transform[3]):(temp=minMax[0],minMax[0]=minMax[1],minMax[1]=temp,temp=minMax[2],minMax[2]=minMax[3],minMax[3]=temp,transform[1]<0&&(temp=minMax[1],minMax[1]=minMax[3],minMax[3]=temp),minMax[1]*=transform[1],minMax[3]*=transform[1],transform[2]<0&&(temp=minMax[0],minMax[0]=minMax[2],minMax[2]=temp),minMax[0]*=transform[2],minMax[2]*=transform[2]),minMax[0]+=transform[4],minMax[1]+=transform[5],minMax[2]+=transform[4],minMax[3]+=transform[5]}static transform(m1,m2){return[m1[0]*m2[0]+m1[2]*m2[1],m1[1]*m2[0]+m1[3]*m2[1],m1[0]*m2[2]+m1[2]*m2[3],m1[1]*m2[2]+m1[3]*m2[3],m1[0]*m2[4]+m1[2]*m2[5]+m1[4],m1[1]*m2[4]+m1[3]*m2[5]+m1[5]]}static applyTransform(p,m){return[p[0]*m[0]+p[1]*m[2]+m[4],p[0]*m[1]+p[1]*m[3]+m[5]]}static applyInverseTransform(p,m){var d=m[0]*m[3]-m[1]*m[2];return[(p[0]*m[3]-p[1]*m[2]+m[2]*m[5]-m[4]*m[3])/d,(-p[0]*m[1]+p[1]*m[0]+m[4]*m[1]-m[5]*m[0])/d]}static getAxialAlignedBoundingBox(r,m){var p1=this.applyTransform(r,m),p2=this.applyTransform(r.slice(2,4),m),p3=this.applyTransform([r[0],r[3]],m),r=this.applyTransform([r[2],r[1]],m);return[Math.min(p1[0],p2[0],p3[0],r[0]),Math.min(p1[1],p2[1],p3[1],r[1]),Math.max(p1[0],p2[0],p3[0],r[0]),Math.max(p1[1],p2[1],p3[1],r[1])]}static inverseTransform(m){var d=m[0]*m[3]-m[1]*m[2];return[m[3]/d,-m[1]/d,-m[2]/d,m[0]/d,(m[2]*m[5]-m[4]*m[3])/d,(m[4]*m[1]-m[5]*m[0])/d]}static singularValueDecompose2dScale(m){var transpose=[m[0],m[2],m[1],m[3]],a=m[0]*transpose[0]+m[1]*transpose[2],b=m[0]*transpose[1]+m[1]*transpose[3],c=m[2]*transpose[0]+m[3]*transpose[2],m=m[2]*transpose[1]+m[3]*transpose[3],transpose=(a+m)/2,a=Math.sqrt((a+m)**2-4*(a*m-c*b))/2,m=transpose-a||1;return[Math.sqrt(transpose+a||1),Math.sqrt(m)]}static normalizeRect(rect){var r=rect.slice(0);return rect[0]>rect[2]&&(r[0]=rect[2],r[2]=rect[0]),rect[1]>rect[3]&&(r[1]=rect[3],r[3]=rect[1]),r}static intersect(rect1,rect2){var yLow,xLow=Math.max(Math.min(rect1[0],rect1[2]),Math.min(rect2[0],rect2[2])),xHigh=Math.min(Math.max(rect1[0],rect1[2]),Math.max(rect2[0],rect2[2]));return xHigh<xLow||(yLow=Math.max(Math.min(rect1[1],rect1[3]),Math.min(rect2[1],rect2[3])),(rect1=Math.min(Math.max(rect1[1],rect1[3]),Math.max(rect2[1],rect2[3])))<yLow)?null:[xLow,yLow,xHigh,rect1]}static#getExtremumOnCurve(x0,x1,x2,x3,y0,y1,y2,y3,t,minMax){var mt;t<=0||1<=t||(x2=(mt=1-t)*(mt*(mt*x0+3*t*x1)+3*(x0=t*t)*x2)+(x1=x0*t)*x3,x3=mt*(mt*(mt*y0+3*t*y1)+3*x0*y2)+x1*y3,minMax[0]=Math.min(minMax[0],x2),minMax[1]=Math.min(minMax[1],x3),minMax[2]=Math.max(minMax[2],x2),minMax[3]=Math.max(minMax[3],x3))}static#getExtremum(x0,x1,x2,x3,y0,y1,y2,y3,a,b,c,minMax){Math.abs(a)<1e-12?1e-12<=Math.abs(b)&&this.#getExtremumOnCurve(x0,x1,x2,x3,y0,y1,y2,y3,-c/b,minMax):(c=b**2-4*c*a)<0||(c=Math.sqrt(c),this.#getExtremumOnCurve(x0,x1,x2,x3,y0,y1,y2,y3,(-b+c)/(a=2*a),minMax),this.#getExtremumOnCurve(x0,x1,x2,x3,y0,y1,y2,y3,(-b-c)/a,minMax))}static bezierBoundingBox(x0,y0,x1,y1,x2,y2,x3,y3,minMax){return minMax?(minMax[0]=Math.min(minMax[0],x0,x3),minMax[1]=Math.min(minMax[1],y0,y3),minMax[2]=Math.max(minMax[2],x0,x3),minMax[3]=Math.max(minMax[3],y0,y3)):minMax=[Math.min(x0,x3),Math.min(y0,y3),Math.max(x0,x3),Math.max(y0,y3)],this.#getExtremum(x0,x1,x2,x3,y0,y1,y2,y3,3*(3*(x1-x2)-x0+x3),6*(x0-2*x1+x2),3*(x1-x0),minMax),this.#getExtremum(x0,x1,x2,x3,y0,y1,y2,y3,3*(3*(y1-y2)-y0+y3),6*(y0-2*y1+y2),3*(y1-y0),minMax),minMax}}const PDFStringTranslateTable=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];function stringToPDFString(str){if("ï"<=str[0]){let encoding;if("þ"===str[0]&&"ÿ"===str[1]?(encoding="utf-16be",str.length%2==1&&(str=str.slice(0,-1))):"ÿ"===str[0]&&"þ"===str[1]?(encoding="utf-16le",str.length%2==1&&(str=str.slice(0,-1))):"ï"===str[0]&&"»"===str[1]&&"¿"===str[2]&&(encoding="utf-8"),encoding)try{var decoder=new TextDecoder(encoding,{fatal:!0}),buffer=stringToBytes(str),decoded=decoder.decode(buffer);return decoded.includes("")?decoded.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g,""):decoded}catch(ex){warn(`stringToPDFString: "${ex}".`)}}var strBuf=[];for(let i=0,ii=str.length;i<ii;i++){var charCode=str.charCodeAt(i);if(27===charCode)for(;++i<ii&&27!==str.charCodeAt(i););else{charCode=PDFStringTranslateTable[charCode];strBuf.push(charCode?String.fromCharCode(charCode):str.charAt(i))}}return strBuf.join("")}function stringToUTF8String(str){return decodeURIComponent(escape(str))}function utf8StringToString(str){return unescape(encodeURIComponent(str))}function isArrayEqual(arr1,arr2){if(arr1.length!==arr2.length)return!1;for(let i=0,ii=arr1.length;i<ii;i++)if(arr1[i]!==arr2[i])return!1;return!0}function getModificationDate(date=new Date){return[date.getUTCFullYear().toString(),(date.getUTCMonth()+1).toString().padStart(2,"0"),date.getUTCDate().toString().padStart(2,"0"),date.getUTCHours().toString().padStart(2,"0"),date.getUTCMinutes().toString().padStart(2,"0"),date.getUTCSeconds().toString().padStart(2,"0")].join("")}let NormalizeRegex=null,NormalizationMap=null;function normalizeUnicode(str){return NormalizeRegex||(NormalizeRegex=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,NormalizationMap=new Map([["ſt","ſt"]])),str.replaceAll(NormalizeRegex,(_,p1,p2)=>p1?p1.normalize("NFKC"):NormalizationMap.get(p2))}function getUuid(){if("undefined"!=typeof crypto&&"function"==typeof crypto?.randomUUID)return crypto.randomUUID();var buf=new Uint8Array(32);if("undefined"!=typeof crypto&&"function"==typeof crypto?.getRandomValues)crypto.getRandomValues(buf);else for(let i=0;i<32;i++)buf[i]=Math.floor(255*Math.random());return bytesToString(buf)}const AnnotationPrefix="pdfjs_internal_id_",FontRenderOps={BEZIER_CURVE_TO:0,MOVE_TO:1,LINE_TO:2,QUADRATIC_CURVE_TO:3,RESTORE:4,SAVE:5,SCALE:6,TRANSFORM:7,TRANSLATE:8},CIRCULAR_REF=Symbol("CIRCULAR_REF"),EOF=Symbol("EOF");let CmdCache=Object.create(null),NameCache=Object.create(null),RefCache=Object.create(null);function clearPrimitiveCaches(){CmdCache=Object.create(null),NameCache=Object.create(null),RefCache=Object.create(null)}class Name{constructor(name){this.name=name}static get(name){return NameCache[name]||=new Name(name)}}class Cmd{constructor(cmd){this.cmd=cmd}static get(cmd){return CmdCache[cmd]||=new Cmd(cmd)}}const nonSerializable=function(){return nonSerializable};class Dict{constructor(xref=null){this._map=Object.create(null),this.xref=xref,this.objId=null,this.suppressEncryption=!1,this.__nonSerializable__=nonSerializable}assignXref(newXref){this.xref=newXref}get size(){return Object.keys(this._map).length}get(key1,key2,key3){let value=this._map[key1];return(value=void 0===value&&void 0!==key2&&void 0===(value=this._map[key2])&&void 0!==key3?this._map[key3]:value)instanceof Ref&&this.xref?this.xref.fetch(value,this.suppressEncryption):value}async getAsync(key1,key2,key3){let value=this._map[key1];return(value=void 0===value&&void 0!==key2&&void 0===(value=this._map[key2])&&void 0!==key3?this._map[key3]:value)instanceof Ref&&this.xref?this.xref.fetchAsync(value,this.suppressEncryption):value}getArray(key1,key2,key3){let value=this._map[key1];if((value=void 0===value&&void 0!==key2&&void 0===(value=this._map[key2])&&void 0!==key3?this._map[key3]:value)instanceof Ref&&this.xref&&(value=this.xref.fetch(value,this.suppressEncryption)),Array.isArray(value))for(let i=0,ii=(value=value.slice()).length;i<ii;i++)value[i]instanceof Ref&&this.xref&&(value[i]=this.xref.fetch(value[i],this.suppressEncryption));return value}getRaw(key){return this._map[key]}getKeys(){return Object.keys(this._map)}getRawValues(){return Object.values(this._map)}set(key,value){this._map[key]=value}has(key){return void 0!==this._map[key]}forEach(callback){for(const key in this._map)callback(key,this.get(key))}static get empty(){var emptyDict=new Dict(null);return emptyDict.set=(key,value)=>{unreachable("Should not call `set` on the empty dictionary.")},shadow(this,"empty",emptyDict)}static merge({xref,dictArray,mergeSubDicts=!1}){var name,values,mergedDict=new Dict(xref),properties=new Map;for(const dict of dictArray)if(dict instanceof Dict)for(var[key,value]of Object.entries(dict._map)){let property=properties.get(key);if(void 0===property)property=[],properties.set(key,property);else if(!(mergeSubDicts&&value instanceof Dict))continue;property.push(value)}for([name,values]of properties)if(1!==values.length&&values[0]instanceof Dict){var subDict=new Dict(xref);for(const dict of values)for(const[key,value]of Object.entries(dict._map))void 0===subDict._map[key]&&(subDict._map[key]=value);0<subDict.size&&(mergedDict._map[name]=subDict)}else mergedDict._map[name]=values[0];return properties.clear(),0<mergedDict.size?mergedDict:Dict.empty}clone(){var dict=new Dict(this.xref);for(const key of this.getKeys())dict.set(key,this.getRaw(key));return dict}}class Ref{constructor(num,gen){this.num=num,this.gen=gen}toString(){return 0===this.gen?this.num+"R":this.num+"R"+this.gen}static fromString(str){var ref=RefCache[str];return ref||((ref=/^(\d+)R(\d*)$/.exec(str))&&"0"!==ref[1]?RefCache[str]=new Ref(parseInt(ref[1]),ref[2]?parseInt(ref[2]):0):null)}static get(num,gen){var key=0===gen?num+"R":num+"R"+gen;return RefCache[key]||=new Ref(num,gen)}}class RefSet{constructor(parent=null){this._set=new Set(parent?._set)}has(ref){return this._set.has(ref.toString())}put(ref){this._set.add(ref.toString())}remove(ref){this._set.delete(ref.toString())}[Symbol.iterator](){return this._set.values()}clear(){this._set.clear()}}class RefSetCache{constructor(){this._map=new Map}get size(){return this._map.size}get(ref){return this._map.get(ref.toString())}has(ref){return this._map.has(ref.toString())}put(ref,obj){this._map.set(ref.toString(),obj)}putAlias(ref,aliasRef){this._map.set(ref.toString(),this.get(aliasRef))}[Symbol.iterator](){return this._map.values()}clear(){this._map.clear()}*items(){for(var[ref,value]of this._map)yield[Ref.fromString(ref),value]}}function isName(v,name){return v instanceof Name&&(void 0===name||v.name===name)}function isCmd(v,cmd){return v instanceof Cmd&&(void 0===cmd||v.cmd===cmd)}function isDict(v,type){return v instanceof Dict&&(void 0===type||isName(v.get("Type"),type))}function isRefsEqual(v1,v2){return v1.num===v2.num&&v1.gen===v2.gen}class BaseStream{constructor(){this.constructor===BaseStream&&unreachable("Cannot initialize BaseStream.")}get length(){unreachable("Abstract getter `length` accessed")}get isEmpty(){unreachable("Abstract getter `isEmpty` accessed")}get isDataLoaded(){return shadow(this,"isDataLoaded",!0)}getByte(){unreachable("Abstract method `getByte` called")}getBytes(length){unreachable("Abstract method `getBytes` called")}peekByte(){var peekedByte=this.getByte();return-1!==peekedByte&&this.pos--,peekedByte}peekBytes(length){length=this.getBytes(length);return this.pos-=length.length,length}getUint16(){var b0=this.getByte(),b1=this.getByte();return-1===b0||-1===b1?-1:(b0<<8)+b1}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getByteRange(begin,end){unreachable("Abstract method `getByteRange` called")}getString(length){return bytesToString(this.getBytes(length))}skip(n){this.pos+=n||1}reset(){unreachable("Abstract method `reset` called")}moveStart(){unreachable("Abstract method `moveStart` called")}makeSubStream(start,length,dict=0){unreachable("Abstract method `makeSubStream` called")}getBaseStreams(){return null}}const PDF_VERSION_REGEXP=/^[1-9]\.\d$/;function getLookupTableFactory(initializer){let lookup;return function(){return initializer&&(lookup=Object.create(null),initializer(lookup),initializer=null),lookup}}class MissingDataException extends BaseException{constructor(begin,end){super(`Missing data [${begin}, ${end})`,"MissingDataException"),this.begin=begin,this.end=end}}class ParserEOFException extends BaseException{constructor(msg){super(msg,"ParserEOFException")}}class XRefEntryException extends BaseException{constructor(msg){super(msg,"XRefEntryException")}}class XRefParseException extends BaseException{constructor(msg){super(msg,"XRefParseException")}}function arrayBuffersToBytes(arr){var length=arr.length;if(0===length)return new Uint8Array(0);if(1===length)return new Uint8Array(arr[0]);let dataLength=0;for(let i=0;i<length;i++)dataLength+=arr[i].byteLength;var data=new Uint8Array(dataLength);let pos=0;for(let i=0;i<length;i++){var item=new Uint8Array(arr[i]);data.set(item,pos),pos+=item.byteLength}return data}function getInheritableProperty({dict,key,getArray=!1,stopWhenFound=!0}){let values;for(var visited=new RefSet;dict instanceof Dict&&(!dict.objId||!visited.has(dict.objId));){dict.objId&&visited.put(dict.objId);var value=getArray?dict.getArray(key):dict.get(key);if(void 0!==value){if(stopWhenFound)return value;(values||=[]).push(value)}dict=dict.get("Parent")}return values}const ROMAN_NUMBER_MAP=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];function toRomanNumerals(number,lowerCase=!1){assert(Number.isInteger(number)&&0<number,"The number should be a positive integer.");for(var romanBuf=[];1e3<=number;)number-=1e3,romanBuf.push("M");pos=number/100|0,number%=100,romanBuf.push(ROMAN_NUMBER_MAP[pos]),pos=number/10|0,number%=10,romanBuf.push(ROMAN_NUMBER_MAP[10+pos]),romanBuf.push(ROMAN_NUMBER_MAP[20+number]);var pos=romanBuf.join("");return lowerCase?pos.toLowerCase():pos}function log2(x){return x<=0?0:Math.ceil(Math.log2(x))}function readInt8(data,offset){return data[offset]<<24>>24}function readUint16(data,offset){return data[offset]<<8|data[offset+1]}function readUint32(data,offset){return(data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3])>>>0}function isWhiteSpace(ch){return 32===ch||9===ch||13===ch||10===ch}function isNumberArray(arr,len){return Array.isArray(arr)&&(null===len||arr.length===len)&&arr.every(x=>"number"==typeof x)}function parseXFAPath(path){const positionPattern=/(.+)\[(\d+)\]$/;return path.split(".").map(component=>{var m=component.match(positionPattern);return m?{name:m[1],pos:parseInt(m[2],10)}:{name:component,pos:0}})}function escapePDFName(str){var buffer=[];let start=0;for(let i=0,ii=str.length;i<ii;i++){var char=str.charCodeAt(i);(char<33||126<char||35===char||40===char||41===char||60===char||62===char||91===char||93===char||123===char||125===char||47===char||37===char)&&(start<i&&buffer.push(str.substring(start,i)),buffer.push("#"+char.toString(16)),start=i+1)}return 0===buffer.length?str:(start<str.length&&buffer.push(str.substring(start,str.length)),buffer.join(""))}function escapeString(str){return str.replaceAll(/([()\\\n\r])/g,match=>"\n"===match?"\\n":"\r"===match?"\\r":"\\"+match)}function _collectJS(entry,xref,list,parents){if(entry){let parent=null;if(entry instanceof Ref){if(parents.has(entry))return;parent=entry,parents.put(parent),entry=xref.fetch(entry)}if(Array.isArray(entry))for(const element of entry)_collectJS(element,xref,list,parents);else if(entry instanceof Dict){if(isName(entry.get("S"),"JavaScript")){var js=entry.get("JS");let code;js instanceof BaseStream?code=js.getString():"string"==typeof js&&(code=js),(code&&=stringToPDFString(code).replaceAll("\0",""))&&list.push(code)}_collectJS(entry.getRaw("Next"),xref,list,parents)}parent&&parents.remove(parent)}}function collectActions(xref,dict,eventType){var actions=Object.create(null),additionalActionsDicts=getInheritableProperty({dict:dict,key:"AA",stopWhenFound:!1});if(additionalActionsDicts)for(let i=additionalActionsDicts.length-1;0<=i;i--){var additionalActions=additionalActionsDicts[i];if(additionalActions instanceof Dict)for(const key of additionalActions.getKeys()){var list,action=eventType[key];action&&(list=[],_collectJS(additionalActions.getRaw(key),xref,list,new RefSet),0<list.length)&&(actions[action]=list)}}if(dict.has("A")){const actionDict=dict.get("A"),parents=new RefSet,list=[];_collectJS(actionDict,xref,list,parents),0<list.length&&(actions.Action=list)}return 0<objectSize(actions)?actions:null}const XMLEntities={60:"<",62:">",38:"&",34:""",39:"'"};function*codePointIter(str){for(let i=0,ii=str.length;i<ii;i++){var char=str.codePointAt(i);55295<char&&(char<57344||65533<char)&&i++,yield char}}function encodeToXmlString(str){var buffer=[];let start=0;for(let i=0,ii=str.length;i<ii;i++){var entity,char=str.codePointAt(i);32<=char&&char<=126?(entity=XMLEntities[char])&&(start<i&&buffer.push(str.substring(start,i)),buffer.push(entity),start=i+1):(start<i&&buffer.push(str.substring(start,i)),buffer.push(`&#x${char.toString(16).toUpperCase()};`),55295<char&&(char<57344||65533<char)&&i++,start=i+1)}return 0===buffer.length?str:(start<str.length&&buffer.push(str.substring(start,str.length)),buffer.join(""))}function validateFontName(fontFamily,mustWarn=!1){var m=/^("|').*("|')$/.exec(fontFamily);if(m&&m[1]===m[2]){if(new RegExp("[^\\\\]"+m[1]).test(fontFamily.slice(1,-1)))return mustWarn&&warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`),!1}else for(const ident of fontFamily.split(/[ \t]+/))if(/^(\d|(-(\d|-)))/.test(ident)||!/^[\w-\\]+$/.test(ident))return mustWarn&&warn(`FontFamily contains invalid <custom-ident>: ${fontFamily}.`),!1;return!0}function validateCSSFont(cssFontInfo){var CSS_FONT_WEIGHT_VALUES=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily,fontWeight,italicAngle}=cssFontInfo;return!!validateFontName(fontFamily,!0)&&(fontFamily=fontWeight?fontWeight.toString():"",cssFontInfo.fontWeight=CSS_FONT_WEIGHT_VALUES.has(fontFamily)?fontFamily:"400",fontWeight=parseFloat(italicAngle),cssFontInfo.italicAngle=isNaN(fontWeight)||fontWeight<-90||90<fontWeight?"14":italicAngle.toString(),!0)}function recoverJsURL(str){str=new RegExp("^\\s*("+["app.launchURL","window.open","xfa.host.gotoURL"].join("|").replaceAll(".","\\.")+")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))","i").exec(str);if(str?.[2]){let newWindow=!1;return{url:str[2],newWindow:newWindow="true"===str[3]&&"app.launchURL"===str[1]?!0:newWindow}}return null}function numberToString(value){var roundedValue;return Number.isInteger(value)?value.toString():(roundedValue=Math.round(100*value))%100==0?(roundedValue/100).toString():roundedValue%10==0?value.toFixed(1):value.toFixed(2)}function getNewAnnotationsMap(annotationStorage){if(!annotationStorage)return null;var key,value,newAnnotationsByPage=new Map;for([key,value]of annotationStorage)if(key.startsWith(AnnotationEditorPrefix)){let annotations=newAnnotationsByPage.get(value.pageIndex);annotations||(annotations=[],newAnnotationsByPage.set(value.pageIndex,annotations)),annotations.push(value)}return 0<newAnnotationsByPage.size?newAnnotationsByPage:null}function isAscii(str){return/^[\x00-\x7F]*$/.test(str)}function stringToUTF16HexString(str){var buf=[];for(let i=0,ii=str.length;i<ii;i++){var char=str.charCodeAt(i);buf.push((char>>8&255).toString(16).padStart(2,"0"),(255&char).toString(16).padStart(2,"0"))}return buf.join("")}function stringToUTF16String(str,bigEndian=!1){var buf=[];bigEndian&&buf.push("þÿ");for(let i=0,ii=str.length;i<ii;i++){var char=str.charCodeAt(i);buf.push(String.fromCharCode(char>>8&255),String.fromCharCode(255&char))}return buf.join("")}function getRotationMatrix(rotation,width,height){switch(rotation){case 90:return[0,1,-1,0,width,0];case 180:return[-1,0,0,-1,width,height];case 270:return[0,-1,1,0,0,height];default:throw new Error("Invalid rotation")}}function getSizeInBytes(x){return Math.ceil(Math.ceil(Math.log2(1+x))/8)}class Stream extends BaseStream{constructor(arrayBuffer,start,length,dict){super(),this.bytes=arrayBuffer instanceof Uint8Array?arrayBuffer:new Uint8Array(arrayBuffer),this.start=start||0,this.pos=this.start,this.end=start+length||this.bytes.length,this.dict=dict}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(length){var bytes=this.bytes,pos=this.pos,strEnd=this.end;if(!length)return bytes.subarray(pos,strEnd);let end=pos+length;return end>strEnd&&(end=strEnd),this.pos=end,bytes.subarray(pos,end)}getByteRange(begin,end){return end>this.end&&(end=this.end),this.bytes.subarray(begin=begin<0?0:begin,end)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(start,length,dict=null){return new Stream(this.bytes.buffer,start,length,dict)}}class StringStream extends Stream{constructor(str){super(stringToBytes(str))}}class NullStream extends Stream{constructor(){super(new Uint8Array(0))}}class ChunkedStream extends Stream{constructor(length,chunkSize,manager){super(new Uint8Array(length),0,length,null),this.chunkSize=chunkSize,this._loadedChunks=new Set,this.numChunks=Math.ceil(length/chunkSize),this.manager=manager,this.progressiveDataLength=0,this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){var chunks=[];for(let chunk=0,n=this.numChunks;chunk<n;++chunk)this._loadedChunks.has(chunk)||chunks.push(chunk);return chunks}get numChunksLoaded(){return this._loadedChunks.size}get isDataLoaded(){return this.numChunksLoaded===this.numChunks}onReceiveData(begin,chunk){var chunkSize=this.chunkSize;if(begin%chunkSize!=0)throw new Error("Bad begin offset: "+begin);var end=begin+chunk.byteLength;if(end%chunkSize!=0&&end!==this.bytes.length)throw new Error("Bad end offset: "+end);this.bytes.set(new Uint8Array(chunk),begin);var chunk=Math.floor(begin/chunkSize),endChunk=Math.floor((end-1)/chunkSize)+1;for(let curChunk=chunk;curChunk<endChunk;++curChunk)this._loadedChunks.add(curChunk)}onReceiveProgressiveData(data){var position=this.progressiveDataLength,beginChunk=Math.floor(position/this.chunkSize),endChunk=(this.bytes.set(new Uint8Array(data),position),position+=data.byteLength,(this.progressiveDataLength=position)>=this.end?this.numChunks:Math.floor(position/this.chunkSize));for(let curChunk=beginChunk;curChunk<endChunk;++curChunk)this._loadedChunks.add(curChunk)}ensureByte(pos){if(!(pos<this.progressiveDataLength)){var chunk=Math.floor(pos/this.chunkSize);if(!(chunk>this.numChunks)&&chunk!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(chunk))throw new MissingDataException(pos,pos+1);this.lastSuccessfulEnsureByteChunk=chunk}}}ensureRange(begin,end){if(!(end<=begin||end<=this.progressiveDataLength)){var beginChunk=Math.floor(begin/this.chunkSize);if(!(beginChunk>this.numChunks)){var endChunk=Math.min(Math.floor((end-1)/this.chunkSize)+1,this.numChunks);for(let chunk=beginChunk;chunk<endChunk;++chunk)if(!this._loadedChunks.has(chunk))throw new MissingDataException(begin,end)}}}nextEmptyChunk(beginChunk){var numChunks=this.numChunks;for(let i=0;i<numChunks;++i){var chunk=(beginChunk+i)%numChunks;if(!this._loadedChunks.has(chunk))return chunk}return null}hasChunk(chunk){return this._loadedChunks.has(chunk)}getByte(){var pos=this.pos;return pos>=this.end?-1:(pos>=this.progressiveDataLength&&this.ensureByte(pos),this.bytes[this.pos++])}getBytes(length){var bytes=this.bytes,pos=this.pos,strEnd=this.end;if(!length)return strEnd>this.progressiveDataLength&&this.ensureRange(pos,strEnd),bytes.subarray(pos,strEnd);let end=pos+length;return(end=end>strEnd?strEnd:end)>this.progressiveDataLength&&this.ensureRange(pos,end),this.pos=end,bytes.subarray(pos,end)}getByteRange(begin,end){return begin<0&&(begin=0),(end=end>this.end?this.end:end)>this.progressiveDataLength&&this.ensureRange(begin,end),this.bytes.subarray(begin,end)}makeSubStream(start,length,dict=null){function ChunkedStreamSubstream(){}length?start+length>this.progressiveDataLength&&this.ensureRange(start,start+length):start>=this.progressiveDataLength&&this.ensureByte(start),(ChunkedStreamSubstream.prototype=Object.create(this)).getMissingChunks=function(){var chunkSize=this.chunkSize,beginChunk=Math.floor(this.start/chunkSize),endChunk=Math.floor((this.end-1)/chunkSize)+1,missingChunks=[];for(let chunk=beginChunk;chunk<endChunk;++chunk)this._loadedChunks.has(chunk)||missingChunks.push(chunk);return missingChunks},Object.defineProperty(ChunkedStreamSubstream.prototype,"isDataLoaded",{get(){return this.numChunksLoaded===this.numChunks||0===this.getMissingChunks().length},configurable:!0});var subStream=new ChunkedStreamSubstream;return subStream.pos=subStream.start=start,subStream.end=start+length||this.end,subStream.dict=dict,subStream}getBaseStreams(){return[this]}}class ChunkedStreamManager{constructor(pdfNetworkStream,args){this.length=args.length,this.chunkSize=args.rangeChunkSize,this.stream=new ChunkedStream(this.length,this.chunkSize,this),this.pdfNetworkStream=pdfNetworkStream,this.disableAutoFetch=args.disableAutoFetch,this.msgHandler=args.msgHandler,this.currRequestId=0,this._chunksNeededByRequest=new Map,this._requestsByChunk=new Map,this._promisesByRequest=new Map,this.progressiveDataLength=0,this.aborted=!1,this._loadedStreamCapability=Promise.withResolvers()}sendRequest(begin,end){const rangeReader=this.pdfNetworkStream.getRangeReader(begin,end);rangeReader.isStreamingSupported||(rangeReader.onProgress=this.onProgress.bind(this));let chunks=[],loaded=0;return new Promise((resolve,reject)=>{const readChunk=({value,done})=>{try{var chunkData;done?(chunkData=arrayBuffersToBytes(chunks),chunks=null,resolve(chunkData)):(loaded+=value.byteLength,rangeReader.isStreamingSupported&&this.onProgress({loaded:loaded}),chunks.push(value),rangeReader.read().then(readChunk,reject))}catch(e){reject(e)}};rangeReader.read().then(readChunk,reject)}).then(data=>{this.aborted||this.onReceiveData({chunk:data,begin:begin})})}requestAllChunks(noFetch=!1){return noFetch||(noFetch=this.stream.getMissingChunks(),this._requestChunks(noFetch)),this._loadedStreamCapability.promise}_requestChunks(chunks){var requestId=this.currRequestId++,chunksNeeded=new Set;this._chunksNeededByRequest.set(requestId,chunksNeeded);for(const chunk of chunks)this.stream.hasChunk(chunk)||chunksNeeded.add(chunk);if(0===chunksNeeded.size)return Promise.resolve();var capability=Promise.withResolvers(),chunksToRequest=(this._promisesByRequest.set(requestId,capability),[]);for(const chunk of chunksNeeded){let requestIds=this._requestsByChunk.get(chunk);requestIds||(requestIds=[],this._requestsByChunk.set(chunk,requestIds),chunksToRequest.push(chunk)),requestIds.push(requestId)}if(0<chunksToRequest.length)for(const groupedChunk of this.groupChunks(chunksToRequest)){var begin=groupedChunk.beginChunk*this.chunkSize,end=Math.min(groupedChunk.endChunk*this.chunkSize,this.length);this.sendRequest(begin,end).catch(capability.reject)}return capability.promise.catch(reason=>{if(!this.aborted)throw reason})}getStream(){return this.stream}requestRange(begin,end){end=Math.min(end,this.length);var begin=this.getBeginChunk(begin),endChunk=this.getEndChunk(end),chunks=[];for(let chunk=begin;chunk<endChunk;++chunk)chunks.push(chunk);return this._requestChunks(chunks)}requestRanges(ranges=[]){var chunksToRequest=[];for(const range of ranges){var beginChunk=this.getBeginChunk(range.begin),endChunk=this.getEndChunk(range.end);for(let chunk=beginChunk;chunk<endChunk;++chunk)chunksToRequest.includes(chunk)||chunksToRequest.push(chunk)}return chunksToRequest.sort(function(a,b){return a-b}),this._requestChunks(chunksToRequest)}groupChunks(chunks){var groupedChunks=[];let beginChunk=-1,prevChunk=-1;for(let i=0,ii=chunks.length;i<ii;++i){var chunk=chunks[i];beginChunk<0&&(beginChunk=chunk),0<=prevChunk&&prevChunk+1!==chunk&&(groupedChunks.push({beginChunk:beginChunk,endChunk:prevChunk+1}),beginChunk=chunk),i+1===chunks.length&&groupedChunks.push({beginChunk:beginChunk,endChunk:chunk+1}),prevChunk=chunk}return groupedChunks}onProgress(args){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+args.loaded,total:this.length})}onReceiveData(args){var chunk=args.chunk,isProgressive=void 0===args.begin,args=isProgressive?this.progressiveDataLength:args.begin,end=args+chunk.byteLength,beginChunk=Math.floor(args/this.chunkSize),endChunk=end<this.length?Math.floor(end/this.chunkSize):Math.ceil(end/this.chunkSize),loadedRequests=(isProgressive?(this.stream.onReceiveProgressiveData(chunk),this.progressiveDataLength=end):this.stream.onReceiveData(args,chunk),this.stream.isDataLoaded&&this._loadedStreamCapability.resolve(this.stream),[]);for(let curChunk=beginChunk;curChunk<endChunk;++curChunk){var requestIds=this._requestsByChunk.get(curChunk);if(requestIds){this._requestsByChunk.delete(curChunk);for(const requestId of requestIds){var chunksNeeded=this._chunksNeededByRequest.get(requestId);chunksNeeded.has(curChunk)&&chunksNeeded.delete(curChunk),0<chunksNeeded.size||loadedRequests.push(requestId)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let nextEmptyChunk;1===this.stream.numChunksLoaded?(isProgressive=this.stream.numChunks-1,this.stream.hasChunk(isProgressive)||(nextEmptyChunk=isProgressive)):nextEmptyChunk=this.stream.nextEmptyChunk(endChunk),Number.isInteger(nextEmptyChunk)&&this._requestChunks([nextEmptyChunk])}for(const requestId of loadedRequests){var capability=this._promisesByRequest.get(requestId);this._promisesByRequest.delete(requestId),capability.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}onError(err){this._loadedStreamCapability.reject(err)}getBeginChunk(begin){return Math.floor(begin/this.chunkSize)}getEndChunk(end){return Math.floor((end-1)/this.chunkSize)+1}abort(reason){this.aborted=!0,this.pdfNetworkStream?.cancelAllRequests(reason);for(const capability of this._promisesByRequest.values())capability.reject(reason)}}function resizeRgbImage(src,dest,w1,h1,w2,h2,alpha01){alpha01=1!==alpha01?0:alpha01;var xRatio=w1/w2,yRatio=h1/h2;let newIndex=0,oldIndex;var xScaled=new Uint16Array(w2),w1Scanline=3*w1;for(let i=0;i<w2;i++)xScaled[i]=3*Math.floor(i*xRatio);for(let i=0;i<h2;i++){var py=Math.floor(i*yRatio)*w1Scanline;for(let j=0;j<w2;j++)oldIndex=py+xScaled[j],dest[newIndex++]=src[oldIndex++],dest[newIndex++]=src[oldIndex++],dest[newIndex++]=src[+oldIndex],newIndex+=alpha01}}class ColorSpace{constructor(name,numComps){this.constructor===ColorSpace&&unreachable("Cannot initialize ColorSpace."),this.name=name,this.numComps=numComps}getRgb(src,srcOffset){var rgb=new Uint8ClampedArray(3);return this.getRgbItem(src,srcOffset,rgb,0),rgb}getRgbItem(src,srcOffset,dest,destOffset){unreachable("Should not call ColorSpace.getRgbItem")}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){unreachable("Should not call ColorSpace.getRgbBuffer")}getOutputLength(inputLength,alpha01){unreachable("Should not call ColorSpace.getOutputLength")}isPassthrough(bits){return!1}isDefaultDecode(decodeMap,bpc){return ColorSpace.isDefaultDecode(decodeMap,this.numComps)}fillRgb(dest,originalWidth,originalHeight,width,height,actualHeight,bpc,comps,alpha01){var count=originalWidth*originalHeight;let rgbBuf=null;var numComponentColors=1<<bpc,needsResizing=originalHeight!==height||originalWidth!==width;if(this.isPassthrough(bpc))rgbBuf=comps;else if(1===this.numComps&&numComponentColors<count&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){var allColors=new(bpc<=8?Uint8Array:Uint16Array)(numComponentColors);for(let i=0;i<numComponentColors;i++)allColors[i]=i;var colorMap=new Uint8ClampedArray(3*numComponentColors);if(this.getRgbBuffer(allColors,0,numComponentColors,colorMap,0,bpc,0),needsResizing){rgbBuf=new Uint8Array(3*count);let rgbPos=0;for(let i=0;i<count;++i){const key=3*comps[i];rgbBuf[rgbPos++]=colorMap[key],rgbBuf[rgbPos++]=colorMap[1+key],rgbBuf[rgbPos++]=colorMap[2+key]}}else{let destPos=0;for(let i=0;i<count;++i){var key=3*comps[i];dest[destPos++]=colorMap[key],dest[destPos++]=colorMap[1+key],dest[destPos++]=colorMap[2+key],destPos+=alpha01}}}else needsResizing?(rgbBuf=new Uint8ClampedArray(3*count),this.getRgbBuffer(comps,0,count,rgbBuf,0,bpc,0)):this.getRgbBuffer(comps,0,width*actualHeight,dest,0,bpc,alpha01);if(rgbBuf)if(needsResizing)resizeRgbImage(rgbBuf,dest,originalWidth,originalHeight,width,height,alpha01);else{let destPos=0,rgbPos=0;for(let i=0,ii=width*actualHeight;i<ii;i++)dest[destPos++]=rgbBuf[rgbPos++],dest[destPos++]=rgbBuf[rgbPos++],dest[destPos++]=rgbBuf[rgbPos++],destPos+=alpha01}}get usesZeroToOneRange(){return shadow(this,"usesZeroToOneRange",!0)}static _cache(cacheKey,xref,localColorSpaceCache,parsedColorSpace){if(!localColorSpaceCache)throw new Error('ColorSpace._cache - expected "localColorSpaceCache" argument.');if(!parsedColorSpace)throw new Error('ColorSpace._cache - expected "parsedColorSpace" argument.');let csName,csRef;cacheKey instanceof Ref&&(csRef=cacheKey,cacheKey=xref.fetch(cacheKey)),((csName=cacheKey instanceof Name?cacheKey.name:csName)||csRef)&&localColorSpaceCache.set(csName,csRef,parsedColorSpace)}static getCached(cacheKey,xref,localColorSpaceCache){if(!localColorSpaceCache)throw new Error('ColorSpace.getCached - expected "localColorSpaceCache" argument.');if(cacheKey instanceof Ref){var localColorSpace=localColorSpaceCache.getByRef(cacheKey);if(localColorSpace)return localColorSpace;try{cacheKey=xref.fetch(cacheKey)}catch(ex){if(ex instanceof MissingDataException)throw ex}}if(cacheKey instanceof Name){const localColorSpace=localColorSpaceCache.getByName(cacheKey.name);if(localColorSpace)return localColorSpace}return null}static async parseAsync({cs,xref,resources=null,pdfFunctionFactory,localColorSpaceCache}){resources=this._parse(cs,xref,resources,pdfFunctionFactory);return this._cache(cs,xref,localColorSpaceCache,resources),resources}static parse({cs,xref,resources=null,pdfFunctionFactory,localColorSpaceCache}){var cachedColorSpace=this.getCached(cs,xref,localColorSpaceCache);return cachedColorSpace||(cachedColorSpace=this._parse(cs,xref,resources,pdfFunctionFactory),this._cache(cs,xref,localColorSpaceCache,cachedColorSpace),cachedColorSpace)}static _parse(cs,xref,resources=null,pdfFunctionFactory){if((cs=xref.fetchIfRef(cs))instanceof Name)switch(cs.name){case"G":case"DeviceGray":return this.singletons.gray;case"RGB":case"DeviceRGB":return this.singletons.rgb;case"CMYK":case"DeviceCMYK":return this.singletons.cmyk;case"Pattern":return new PatternCS(null);default:if(resources instanceof Dict){var colorSpaces=resources.get("ColorSpace");if(colorSpaces instanceof Dict){colorSpaces=colorSpaces.get(cs.name);if(colorSpaces){if(colorSpaces instanceof Name)return this._parse(colorSpaces,xref,resources,pdfFunctionFactory);cs=colorSpaces;break}}}throw new FormatError("Unrecognized ColorSpace: "+cs.name)}if(Array.isArray(cs)){var mode=xref.fetchIfRef(cs[0]).name;let params,numComps,baseCS,whitePoint,blackPoint,gamma;switch(mode){case"G":case"DeviceGray":return this.singletons.gray;case"RGB":case"DeviceRGB":return this.singletons.rgb;case"CMYK":case"DeviceCMYK":return this.singletons.cmyk;case"CalGray":return params=xref.fetchIfRef(cs[1]),whitePoint=params.getArray("WhitePoint"),blackPoint=params.getArray("BlackPoint"),gamma=params.get("Gamma"),new CalGrayCS(whitePoint,blackPoint,gamma);case"CalRGB":params=xref.fetchIfRef(cs[1]),whitePoint=params.getArray("WhitePoint"),blackPoint=params.getArray("BlackPoint"),gamma=params.getArray("Gamma");var matrix=params.getArray("Matrix");return new CalRGBCS(whitePoint,blackPoint,gamma,matrix);case"ICCBased":matrix=xref.fetchIfRef(cs[1]).dict,matrix=(numComps=matrix.get("N"),matrix.get("Alternate"));if(matrix){matrix=this._parse(matrix,xref,resources,pdfFunctionFactory);if(matrix.numComps===numComps)return matrix;warn("ICCBased color space: Ignoring incorrect /Alternate entry.")}if(1===numComps)return this.singletons.gray;if(3===numComps)return this.singletons.rgb;if(4===numComps)return this.singletons.cmyk;break;case"Pattern":return baseCS=(baseCS=cs[1]||null)&&this._parse(baseCS,xref,resources,pdfFunctionFactory),new PatternCS(baseCS);case"I":case"Indexed":baseCS=this._parse(cs[1],xref,resources,pdfFunctionFactory);var matrix=xref.fetchIfRef(cs[2])+1,lookup=xref.fetchIfRef(cs[3]);return new IndexedCS(baseCS,matrix,lookup);case"Separation":case"DeviceN":matrix=xref.fetchIfRef(cs[1]),lookup=(numComps=Array.isArray(matrix)?matrix.length:1,baseCS=this._parse(cs[2],xref,resources,pdfFunctionFactory),pdfFunctionFactory.create(cs[3]));return new AlternateCS(numComps,baseCS,lookup);case"Lab":params=xref.fetchIfRef(cs[1]),whitePoint=params.getArray("WhitePoint"),blackPoint=params.getArray("BlackPoint");matrix=params.getArray("Range");return new LabCS(whitePoint,blackPoint,matrix);default:throw new FormatError("Unimplemented ColorSpace object: "+mode)}}throw new FormatError("Unrecognized ColorSpace object: "+cs)}static isDefaultDecode(decode,numComps){if(Array.isArray(decode))if(2*numComps!==decode.length)warn("The decode map is not the correct length");else for(let i=0,ii=decode.length;i<ii;i+=2)if(0!==decode[i]||1!==decode[i+1])return!1;return!0}static get singletons(){return shadow(this,"singletons",{get gray(){return shadow(this,"gray",new DeviceGrayCS)},get rgb(){return shadow(this,"rgb",new DeviceRgbCS)},get cmyk(){return shadow(this,"cmyk",new DeviceCmykCS)}})}}class AlternateCS extends ColorSpace{constructor(numComps,base,tintFn){super("Alternate",numComps),this.base=base,this.tintFn=tintFn,this.tmpBuf=new Float32Array(base.numComps)}getRgbItem(src,srcOffset,dest,destOffset){var tmpBuf=this.tmpBuf;this.tintFn(src,srcOffset,tmpBuf,0),this.base.getRgbItem(tmpBuf,0,dest,destOffset)}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var tintFn=this.tintFn,base=this.base,scale=1/((1<<bits)-1),baseNumComps=base.numComps,usesZeroToOneRange=base.usesZeroToOneRange,bits=(base.isPassthrough(8)||!usesZeroToOneRange)&&0===alpha01;let pos=bits?destOffset:0;var baseBuf=bits?dest:new Uint8ClampedArray(baseNumComps*count),numComps=this.numComps,scaled=new Float32Array(numComps),tinted=new Float32Array(baseNumComps);let i,j;for(i=0;i<count;i++){for(j=0;j<numComps;j++)scaled[j]=src[srcOffset++]*scale;if(tintFn(scaled,0,tinted,0),usesZeroToOneRange)for(j=0;j<baseNumComps;j++)baseBuf[pos++]=255*tinted[j];else base.getRgbItem(tinted,0,baseBuf,pos),pos+=baseNumComps}bits||base.getRgbBuffer(baseBuf,0,count,dest,destOffset,8,alpha01)}getOutputLength(inputLength,alpha01){return this.base.getOutputLength(inputLength*this.base.numComps/this.numComps,alpha01)}}class PatternCS extends ColorSpace{constructor(baseCS){super("Pattern",null),this.base=baseCS}isDefaultDecode(decodeMap,bpc){unreachable("Should not call PatternCS.isDefaultDecode")}}class IndexedCS extends ColorSpace{constructor(base,highVal,lookup){super("Indexed",1),this.base=base,this.highVal=highVal;var length=base.numComps*highVal;if(this.lookup=new Uint8Array(length),lookup instanceof BaseStream){base=lookup.getBytes(length);this.lookup.set(base)}else{if("string"!=typeof lookup)throw new FormatError("IndexedCS - unrecognized lookup table: "+lookup);for(let i=0;i<length;++i)this.lookup[i]=255&lookup.charCodeAt(i)}}getRgbItem(src,srcOffset,dest,destOffset){var numComps=this.base.numComps,src=src[srcOffset]*numComps;this.base.getRgbBuffer(this.lookup,src,1,dest,destOffset,8,0)}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var base=this.base,numComps=base.numComps,outputDelta=base.getOutputLength(numComps,alpha01),lookup=this.lookup;for(let i=0;i<count;++i){var lookupPos=src[srcOffset++]*numComps;base.getRgbBuffer(lookup,lookupPos,1,dest,destOffset,8,alpha01),destOffset+=outputDelta}}getOutputLength(inputLength,alpha01){return this.base.getOutputLength(inputLength*this.base.numComps,alpha01)}isDefaultDecode(decodeMap,bpc){return!Array.isArray(decodeMap)||(2!==decodeMap.length?(warn("Decode map length is not correct"),!0):!Number.isInteger(bpc)||bpc<1?(warn("Bits per component is not correct"),!0):0===decodeMap[0]&&decodeMap[1]===(1<<bpc)-1)}}class DeviceGrayCS extends ColorSpace{constructor(){super("DeviceGray",1)}getRgbItem(src,srcOffset,dest,destOffset){src=255*src[srcOffset];dest[destOffset]=dest[destOffset+1]=dest[destOffset+2]=src}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var scale=255/((1<<bits)-1);let j=srcOffset,q=destOffset;for(let i=0;i<count;++i){var c=scale*src[j++];dest[q++]=c,dest[q++]=c,dest[q++]=c,q+=alpha01}}getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)}}class DeviceRgbCS extends ColorSpace{constructor(){super("DeviceRGB",3)}getRgbItem(src,srcOffset,dest,destOffset){dest[destOffset]=255*src[srcOffset],dest[destOffset+1]=255*src[srcOffset+1],dest[destOffset+2]=255*src[srcOffset+2]}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){if(8===bits&&0===alpha01)dest.set(src.subarray(srcOffset,srcOffset+3*count),destOffset);else{var scale=255/((1<<bits)-1);let j=srcOffset,q=destOffset;for(let i=0;i<count;++i)dest[q++]=scale*src[j++],dest[q++]=scale*src[j++],dest[q++]=scale*src[j++],q+=alpha01}}getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)/3|0}isPassthrough(bits){return 8===bits}}class DeviceCmykCS extends ColorSpace{constructor(){super("DeviceCMYK",4)}#toRgb(src,srcOffset,srcScale,dest,destOffset){var c=src[srcOffset]*srcScale,m=src[srcOffset+1]*srcScale,y=src[srcOffset+2]*srcScale,src=src[srcOffset+3]*srcScale;dest[destOffset]=255+c*(-4.387332384609988*c+54.48615194189176*m+18.82290502165302*y+212.25662451639585*src-285.2331026137004)+m*(1.7149763477362134*m-5.6096736904047315*y+-17.873870861415444*src-5.497006427196366)+y*(-2.5217340131683033*y-21.248923337353073*src+17.5119270841813)+src*(-21.86122147463605*src-189.48180835922747),dest[destOffset+1]=255+c*(8.841041422036149*c+60.118027045597366*m+6.871425592049007*y+31.159100130055922*src-79.2970844816548)+m*(-15.310361306967817*m+17.575251261109482*y+131.35250912493976*src-190.9453302588951)+y*(4.444339102852739*y+9.8632861493405*src-24.86741582555878)+src*(-20.737325471181034*src-187.80453709719578),dest[destOffset+2]=255+c*(.8842522430003296*c+8.078677503112928*m+30.89978309703729*y-.23883238689178934*src-14.183576799673286)+m*(10.49593273432072*m+63.02378494754052*y+50.606957656360734*src-112.23884253719248)+y*(.03296041114873217*y+115.60384449646641*src-193.58209356861505)+src*(-22.33816807309886*src-180.12613974708367)}getRgbItem(src,srcOffset,dest,destOffset){this.#toRgb(src,srcOffset,1,dest,destOffset)}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var scale=1/((1<<bits)-1);for(let i=0;i<count;i++)this.#toRgb(src,srcOffset,scale,dest,destOffset),srcOffset+=4,destOffset+=3+alpha01}getOutputLength(inputLength,alpha01){return inputLength/4*(3+alpha01)|0}}class CalGrayCS extends ColorSpace{constructor(whitePoint,blackPoint,gamma){if(super("CalGray",1),!whitePoint)throw new FormatError("WhitePoint missing - required for color space CalGray");if([this.XW,this.YW,this.ZW]=whitePoint,[this.XB,this.YB,this.ZB]=blackPoint||[0,0,0],this.G=gamma||1,this.XW<0||this.ZW<0||1!==this.YW)throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);(this.XB<0||this.YB<0||this.ZB<0)&&(info(`Invalid BlackPoint for ${this.name}, falling back to default.`),this.XB=this.YB=this.ZB=0),0===this.XB&&0===this.YB&&0===this.ZB||warn(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, `+`ZB: ${this.ZB}, only default values are supported.`),this.G<1&&(info(`Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`),this.G=1)}#toRgb(src,srcOffset,dest,destOffset,scale){src=(src[srcOffset]*scale)**this.G,srcOffset=this.YW*src,scale=Math.max(295.8*srcOffset**.3333333333333333-40.8,0);dest[destOffset]=scale,dest[destOffset+1]=scale,dest[destOffset+2]=scale}getRgbItem(src,srcOffset,dest,destOffset){this.#toRgb(src,srcOffset,dest,destOffset,1)}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var scale=1/((1<<bits)-1);for(let i=0;i<count;++i)this.#toRgb(src,srcOffset,dest,destOffset,scale),srcOffset+=1,destOffset+=3+alpha01}getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)}}class CalRGBCS extends ColorSpace{static#BRADFORD_SCALE_MATRIX=new Float32Array([.8951,.2664,-.1614,-.7502,1.7135,.0367,.0389,-.0685,1.0296]);static#BRADFORD_SCALE_INVERSE_MATRIX=new Float32Array([.9869929,-.1470543,.1599627,.4323053,.5183603,.0492912,-.0085287,.0400428,.9684867]);static#SRGB_D65_XYZ_TO_RGB_MATRIX=new Float32Array([3.2404542,-1.5371385,-.4985314,-.969266,1.8760108,.041556,.0556434,-.2040259,1.0572252]);static#FLAT_WHITEPOINT_MATRIX=new Float32Array([1,1,1]);static#tempNormalizeMatrix=new Float32Array(3);static#tempConvertMatrix1=new Float32Array(3);static#tempConvertMatrix2=new Float32Array(3);static#DECODE_L_CONSTANT=(24/116)**3/8;constructor(whitePoint,blackPoint,gamma,matrix){if(super("CalRGB",3),!whitePoint)throw new FormatError("WhitePoint missing - required for color space CalRGB");var[whitePoint,YW,ZW]=this.whitePoint=whitePoint,[blackPoint,YB,ZB]=this.blackPoint=blackPoint||new Float32Array(3);if([this.GR,this.GG,this.GB]=gamma||new Float32Array([1,1,1]),[this.MXA,this.MYA,this.MZA,this.MXB,this.MYB,this.MZB,this.MXC,this.MYC,this.MZC]=matrix||new Float32Array([1,0,0,0,1,0,0,0,1]),whitePoint<0||ZW<0||1!==YW)throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);(blackPoint<0||YB<0||ZB<0)&&(info(`Invalid BlackPoint for ${this.name} [${blackPoint}, ${YB}, ${ZB}], `+"falling back to default."),this.blackPoint=new Float32Array(3)),(this.GR<0||this.GG<0||this.GB<0)&&(info(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for `+this.name+", falling back to default."),this.GR=this.GG=this.GB=1)}#matrixProduct(a,b,result){result[0]=a[0]*b[0]+a[1]*b[1]+a[2]*b[2],result[1]=a[3]*b[0]+a[4]*b[1]+a[5]*b[2],result[2]=a[6]*b[0]+a[7]*b[1]+a[8]*b[2]}#toFlat(sourceWhitePoint,LMS,result){result[0]=+LMS[0]/sourceWhitePoint[0],result[1]=+LMS[1]/sourceWhitePoint[1],result[2]=+LMS[2]/sourceWhitePoint[2]}#toD65(sourceWhitePoint,LMS,result){result[0]=.95047*LMS[0]/sourceWhitePoint[0],result[1]=+LMS[1]/sourceWhitePoint[1],result[2]=1.08883*LMS[2]/sourceWhitePoint[2]}#sRGBTransferFunction(color){return color<=.0031308?this.#adjustToRange(0,1,12.92*color):.99554525<=color?1:this.#adjustToRange(0,1,1.055*color**(1/2.4)-.055)}#adjustToRange(min,max,value){return Math.max(min,Math.min(max,value))}#decodeL(L){return L<0?-this.#decodeL(-L):8<L?((L+16)/116)**3:L*CalRGBCS.#DECODE_L_CONSTANT}#compensateBlackPoint(sourceBlackPoint,XYZ_Flat,result){var X_Scale,Y_Scale,Y_Offset,zeroDecodeL;0===sourceBlackPoint[0]&&0===sourceBlackPoint[1]&&0===sourceBlackPoint[2]?(result[0]=XYZ_Flat[0],result[1]=XYZ_Flat[1],result[2]=XYZ_Flat[2]):(X_Scale=(1-(zeroDecodeL=this.#decodeL(0)))/(1-this.#decodeL(sourceBlackPoint[0])),Y_Offset=1-(Y_Scale=(1-zeroDecodeL)/(1-this.#decodeL(sourceBlackPoint[1]))),sourceBlackPoint=1-(zeroDecodeL=(1-zeroDecodeL)/(1-this.#decodeL(sourceBlackPoint[2]))),result[0]=XYZ_Flat[0]*X_Scale+(1-X_Scale),result[1]=XYZ_Flat[1]*Y_Scale+Y_Offset,result[2]=XYZ_Flat[2]*zeroDecodeL+sourceBlackPoint)}#normalizeWhitePointToFlat(sourceWhitePoint,XYZ_In,result){var LMS;1===sourceWhitePoint[0]&&1===sourceWhitePoint[2]?(result[0]=XYZ_In[0],result[1]=XYZ_In[1],result[2]=XYZ_In[2]):(LMS=result,this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX,XYZ_In,LMS),XYZ_In=CalRGBCS.#tempNormalizeMatrix,this.#toFlat(sourceWhitePoint,LMS,XYZ_In),this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,XYZ_In,result))}#normalizeWhitePointToD65(sourceWhitePoint,XYZ_In,result){var LMS=result,XYZ_In=(this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX,XYZ_In,LMS),CalRGBCS.#tempNormalizeMatrix);this.#toD65(sourceWhitePoint,LMS,XYZ_In),this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,XYZ_In,result)}#toRgb(src,srcOffset,dest,destOffset,scale){var A=this.#adjustToRange(0,1,src[srcOffset]*scale),B=this.#adjustToRange(0,1,src[srcOffset+1]*scale),src=this.#adjustToRange(0,1,src[srcOffset+2]*scale),srcOffset=1===A?1:A**this.GR,scale=1===B?1:B**this.GG,A=1===src?1:src**this.GB,B=this.MXA*srcOffset+this.MXB*scale+this.MXC*A,src=this.MYA*srcOffset+this.MYB*scale+this.MYC*A,srcOffset=this.MZA*srcOffset+this.MZB*scale+this.MZC*A,scale=CalRGBCS.#tempConvertMatrix1,A=(scale[0]=B,scale[1]=src,scale[2]=srcOffset,CalRGBCS.#tempConvertMatrix2),B=(this.#normalizeWhitePointToFlat(this.whitePoint,scale,A),CalRGBCS.#tempConvertMatrix1),src=(this.#compensateBlackPoint(this.blackPoint,A,B),CalRGBCS.#tempConvertMatrix2),srcOffset=(this.#normalizeWhitePointToD65(CalRGBCS.#FLAT_WHITEPOINT_MATRIX,B,src),CalRGBCS.#tempConvertMatrix1);this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX,src,srcOffset),dest[destOffset]=255*this.#sRGBTransferFunction(srcOffset[0]),dest[destOffset+1]=255*this.#sRGBTransferFunction(srcOffset[1]),dest[destOffset+2]=255*this.#sRGBTransferFunction(srcOffset[2])}getRgbItem(src,srcOffset,dest,destOffset){this.#toRgb(src,srcOffset,dest,destOffset,1)}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var scale=1/((1<<bits)-1);for(let i=0;i<count;++i)this.#toRgb(src,srcOffset,dest,destOffset,scale),srcOffset+=3,destOffset+=3+alpha01}getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)/3|0}}class LabCS extends ColorSpace{constructor(whitePoint,blackPoint,range){if(super("Lab",3),!whitePoint)throw new FormatError("WhitePoint missing - required for color space Lab");if([this.XW,this.YW,this.ZW]=whitePoint,[this.amin,this.amax,this.bmin,this.bmax]=range||[-100,100,-100,100],[this.XB,this.YB,this.ZB]=blackPoint||[0,0,0],this.XW<0||this.ZW<0||1!==this.YW)throw new FormatError("Invalid WhitePoint components, no fallback available");(this.XB<0||this.YB<0||this.ZB<0)&&(info("Invalid BlackPoint, falling back to default"),this.XB=this.YB=this.ZB=0),(this.amin>this.amax||this.bmin>this.bmax)&&(info("Invalid Range, falling back to defaults"),this.amin=-100,this.amax=100,this.bmin=-100,this.bmax=100)}#fn_g(x){return 6/29<=x?x**3:108/841*(x-4/29)}#decode(value,high1,low2,high2){return low2+value*(high2-low2)/high1}#toRgb(src,srcOffset,maxVal,dest,destOffset){let Ls=src[srcOffset],as=src[srcOffset+1],bs=src[srcOffset+2];!1!==maxVal&&(Ls=this.#decode(Ls,maxVal,0,100),as=this.#decode(as,maxVal,this.amin,this.amax),bs=this.#decode(bs,maxVal,this.bmin,this.bmax)),as>this.amax?as=this.amax:as<this.amin&&(as=this.amin),bs>this.bmax?bs=this.bmax:bs<this.bmin&&(bs=this.bmin);src=(Ls+16)/116,srcOffset=src+as/500,maxVal=src-bs/200,srcOffset=this.XW*this.#fn_g(srcOffset),src=this.YW*this.#fn_g(src),maxVal=this.ZW*this.#fn_g(maxVal);let r,g,b;b=this.ZW<1?(r=3.1339*srcOffset+-1.617*src+-.4906*maxVal,g=-.9785*srcOffset+1.916*src+.0333*maxVal,.072*srcOffset+-.229*src+1.4057*maxVal):(r=3.2406*srcOffset+-1.5372*src+-.4986*maxVal,g=-.9689*srcOffset+1.8758*src+.0415*maxVal,.0557*srcOffset+-.204*src+1.057*maxVal),dest[destOffset]=255*Math.sqrt(r),dest[destOffset+1]=255*Math.sqrt(g),dest[destOffset+2]=255*Math.sqrt(b)}getRgbItem(src,srcOffset,dest,destOffset){this.#toRgb(src,srcOffset,!1,dest,destOffset)}getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var maxVal=(1<<bits)-1;for(let i=0;i<count;i++)this.#toRgb(src,srcOffset,maxVal,dest,destOffset),srcOffset+=3,destOffset+=3+alpha01}getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)/3|0}isDefaultDecode(decodeMap,bpc){return!0}get usesZeroToOneRange(){return shadow(this,"usesZeroToOneRange",!1)}}function hexToInt(a,size){let n=0;for(let i=0;i<=size;i++)n=n<<8|a[i];return n>>>0}function hexToStr(a,size){return 1===size?String.fromCharCode(a[0],a[1]):3===size?String.fromCharCode(a[0],a[1],a[2],a[3]):String.fromCharCode(...a.subarray(0,size+1))}function addHex(a,b,size){let c=0;for(let i=size;0<=i;i--)c+=a[i]+b[i],a[i]=255&c,c>>=8}function incHex(a,size){let c=1;for(let i=size;0<=i&&0<c;i--)c+=a[i],a[i]=255&c,c>>=8}const MAX_NUM_SIZE=16,MAX_ENCODED_NUM_SIZE=19;class BinaryCMapStream{constructor(data){this.buffer=data,this.pos=0,this.end=data.length,this.tmpBuf=new Uint8Array(MAX_ENCODED_NUM_SIZE)}readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}readNumber(){let n=0;var last;do{var b=this.readByte();if(b<0)throw new FormatError("unexpected EOF in bcmap");last=!(128&b),n=n<<7|127&b}while(!last);return n}readSigned(){var n=this.readNumber();return 1&n?~(n>>>1):n>>>1}readHex(num,size){num.set(this.buffer.subarray(this.pos,this.pos+size+1)),this.pos+=size+1}readHexNumber(num,size){var last,stack=this.tmpBuf;let sp=0;do{var b=this.readByte();if(b<0)throw new FormatError("unexpected EOF in bcmap");last=!(128&b),stack[sp++]=127&b}while(!last);let i=size,buffer=0,bufferSize=0;for(;0<=i;){for(;bufferSize<8&&0<stack.length;)buffer|=stack[--sp]<<bufferSize,bufferSize+=7;num[i]=255&buffer,i--,buffer>>=8,bufferSize-=8}}readHexSigned(num,size){this.readHexNumber(num,size);var sign=1&num[size]?255:0;let c=0;for(let i=0;i<=size;i++)c=(1&c)<<8|num[i],num[i]=c>>1^sign}readString(){var len=this.readNumber(),buf=new Array(len);for(let i=0;i<len;i++)buf[i]=this.readNumber();return String.fromCharCode(...buf)}}class BinaryCMapReader{async process(data,cMap,extend){var stream=new BinaryCMapStream(data),data=stream.readByte();cMap.vertical=!!(1&data);let useCMap=null;var b,start=new Uint8Array(MAX_NUM_SIZE),end=new Uint8Array(MAX_NUM_SIZE),char=new Uint8Array(MAX_NUM_SIZE),charCode=new Uint8Array(MAX_NUM_SIZE),tmp=new Uint8Array(MAX_NUM_SIZE);let code;for(;0<=(b=stream.readByte());){var type=b>>5;if(7==type)switch(31&b){case 0:stream.readString();break;case 1:useCMap=stream.readString()}else{var sequence=!!(16&b),dataSize=15&b;if(1+dataSize>MAX_NUM_SIZE)throw new Error("BinaryCMapReader.process: Invalid dataSize.");var subitemsCount=stream.readNumber();switch(type){case 0:stream.readHex(start,dataSize),stream.readHexNumber(end,dataSize),addHex(end,start,dataSize),cMap.addCodespaceRange(1+dataSize,hexToInt(start,dataSize),hexToInt(end,dataSize));for(let i=1;i<subitemsCount;i++)incHex(end,dataSize),stream.readHexNumber(start,dataSize),addHex(start,end,dataSize),stream.readHexNumber(end,dataSize),addHex(end,start,dataSize),cMap.addCodespaceRange(1+dataSize,hexToInt(start,dataSize),hexToInt(end,dataSize));break;case 1:stream.readHex(start,dataSize),stream.readHexNumber(end,dataSize),addHex(end,start,dataSize),stream.readNumber();for(let i=1;i<subitemsCount;i++)incHex(end,dataSize),stream.readHexNumber(start,dataSize),addHex(start,end,dataSize),stream.readHexNumber(end,dataSize),addHex(end,start,dataSize),stream.readNumber();break;case 2:stream.readHex(char,dataSize),code=stream.readNumber(),cMap.mapOne(hexToInt(char,dataSize),code);for(let i=1;i<subitemsCount;i++)incHex(char,dataSize),sequence||(stream.readHexNumber(tmp,dataSize),addHex(char,tmp,dataSize)),code=stream.readSigned()+(code+1),cMap.mapOne(hexToInt(char,dataSize),code);break;case 3:stream.readHex(start,dataSize),stream.readHexNumber(end,dataSize),addHex(end,start,dataSize),code=stream.readNumber(),cMap.mapCidRange(hexToInt(start,dataSize),hexToInt(end,dataSize),code);for(let i=1;i<subitemsCount;i++)incHex(end,dataSize),sequence?start.set(end):(stream.readHexNumber(start,dataSize),addHex(start,end,dataSize)),stream.readHexNumber(end,dataSize),addHex(end,start,dataSize),code=stream.readNumber(),cMap.mapCidRange(hexToInt(start,dataSize),hexToInt(end,dataSize),code);break;case 4:stream.readHex(char,1),stream.readHex(charCode,dataSize),cMap.mapOne(hexToInt(char,1),hexToStr(charCode,dataSize));for(let i=1;i<subitemsCount;i++)incHex(char,1),sequence||(stream.readHexNumber(tmp,1),addHex(char,tmp,1)),incHex(charCode,dataSize),stream.readHexSigned(tmp,dataSize),addHex(charCode,tmp,dataSize),cMap.mapOne(hexToInt(char,1),hexToStr(charCode,dataSize));break;case 5:stream.readHex(start,1),stream.readHexNumber(end,1),addHex(end,start,1),stream.readHex(charCode,dataSize),cMap.mapBfRange(hexToInt(start,1),hexToInt(end,1),hexToStr(charCode,dataSize));for(let i=1;i<subitemsCount;i++)incHex(end,1),sequence?start.set(end):(stream.readHexNumber(start,1),addHex(start,end,1)),stream.readHexNumber(end,1),addHex(end,start,1),stream.readHex(charCode,dataSize),cMap.mapBfRange(hexToInt(start,1),hexToInt(end,1),hexToStr(charCode,dataSize));break;default:throw new Error("BinaryCMapReader.process - unknown type: "+type)}}}return useCMap?extend(useCMap):cMap}}const emptyBuffer=new Uint8Array(0);class DecodeStream extends BaseStream{constructor(maybeMinBufferLength){if(super(),this._rawMinBufferLength=maybeMinBufferLength||0,this.pos=0,this.bufferLength=0,this.eof=!1,this.buffer=emptyBuffer,this.minBufferLength=512,maybeMinBufferLength)for(;this.minBufferLength<maybeMinBufferLength;)this.minBufferLength*=2}get isEmpty(){for(;!this.eof&&0===this.bufferLength;)this.readBlock();return 0===this.bufferLength}ensureBuffer(requested){var buffer=this.buffer;if(requested<=buffer.byteLength)return buffer;let size=this.minBufferLength;for(;size<requested;)size*=2;var buffer2=new Uint8Array(size);return buffer2.set(buffer),this.buffer=buffer2}getByte(){for(var pos=this.pos;this.bufferLength<=pos;){if(this.eof)return-1;this.readBlock()}return this.buffer[this.pos++]}getBytes(length,ignoreColorSpace=!1){var pos=this.pos;let end;if(length){for(this.ensureBuffer(pos+length),end=pos+length;!this.eof&&this.bufferLength<end;)this.readBlock(ignoreColorSpace);length=this.bufferLength;end>length&&(end=length)}else{for(;!this.eof;)this.readBlock(ignoreColorSpace);end=this.bufferLength}return this.pos=end,this.buffer.subarray(pos,end)}reset(){this.pos=0}makeSubStream(start,length,dict=null){if(void 0===length)for(;!this.eof;)this.readBlock();else for(var end=start+length;this.bufferLength<=end&&!this.eof;)this.readBlock();return new Stream(this.buffer,start,length,dict)}getBaseStreams(){return this.str?this.str.getBaseStreams():null}}class StreamsSequenceStream extends DecodeStream{constructor(streams,onError=null){let maybeLength=0;for(const stream of streams)maybeLength+=stream instanceof DecodeStream?stream._rawMinBufferLength:stream.length;super(maybeLength),this.streams=streams,this._onError=onError}readBlock(){var streams=this.streams;if(0===streams.length)this.eof=!0;else{streams=streams.shift();let chunk;try{chunk=streams.getBytes()}catch(reason){if(this._onError)return void this._onError(reason,streams.dict?.objId);throw reason}var streams=this.bufferLength,newLength=streams+chunk.length;this.ensureBuffer(newLength).set(chunk,streams),this.bufferLength=newLength}}getBaseStreams(){var baseStreamsBuf=[];for(const stream of this.streams){var baseStreams=stream.getBaseStreams();baseStreams&&baseStreamsBuf.push(...baseStreams)}return 0<baseStreamsBuf.length?baseStreamsBuf:null}}class Ascii85Stream extends DecodeStream{constructor(str,maybeLength){maybeLength&&(maybeLength*=.8),super(maybeLength),this.str=str,this.dict=str.dict,this.input=new Uint8Array(5)}readBlock(){var str=this.str;let c=str.getByte();for(;isWhiteSpace(c);)c=str.getByte();if(-1===c||126===c)this.eof=!0;else{var bufferLength=this.bufferLength;let buffer,i;if(122===c){for(buffer=this.ensureBuffer(bufferLength+4),i=0;i<4;++i)buffer[bufferLength+i]=0;this.bufferLength+=4}else{var input=this.input;for(input[0]=c,i=1;i<5;++i){for(c=str.getByte();isWhiteSpace(c);)c=str.getByte();if(-1===(input[i]=c)||126===c)break}if(buffer=this.ensureBuffer(bufferLength+i-1),this.bufferLength+=i-1,i<5){for(;i<5;++i)input[i]=117;this.eof=!0}let t=0;for(i=0;i<5;++i)t=85*t+(input[i]-33);for(i=3;0<=i;--i)buffer[bufferLength+i]=255&t,t>>=8}}}}class AsciiHexStream extends DecodeStream{constructor(str,maybeLength){maybeLength&&(maybeLength*=.5),super(maybeLength),this.str=str,this.dict=str.dict,this.firstDigit=-1}readBlock(){var bytes=this.str.getBytes(8e3);if(bytes.length){var maxDecodeLength=bytes.length+1>>1,buffer=this.ensureBuffer(this.bufferLength+maxDecodeLength);let bufferLength=this.bufferLength,firstDigit=this.firstDigit;for(const ch of bytes){let digit;if(48<=ch&&ch<=57)digit=15&ch;else{if(!(65<=ch&&ch<=70||97<=ch&&ch<=102)){if(62!==ch)continue;this.eof=!0;break}digit=9+(15&ch)}firstDigit=firstDigit<0?digit:(buffer[bufferLength++]=firstDigit<<4|digit,-1)}0<=firstDigit&&this.eof&&(buffer[bufferLength++]=firstDigit<<4,firstDigit=-1),this.firstDigit=firstDigit,this.bufferLength=bufferLength}else this.eof=!0}}const ccittEOL=-2,ccittEOF=-1,twoDimPass=0,twoDimHoriz=1,twoDimVert0=2,twoDimVertR1=3,twoDimVertL1=4,twoDimVertR2=5,twoDimVertL2=6,twoDimVertR3=7,twoDimVertL3=8,twoDimTable=[[-1,-1],[-1,-1],[7,twoDimVertL3],[7,twoDimVertR3],[6,twoDimVertL2],[6,twoDimVertL2],[6,twoDimVertR2],[6,twoDimVertR2],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0]],whiteTable1=[[-1,-1],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],whiteTable2=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],blackTable1=[[-1,-1],[-1,-1],[12,ccittEOL],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],blackTable2=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],blackTable3=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];class CCITTFaxDecoder{constructor(source,options={}){if(!source||"function"!=typeof source.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=source,this.eof=!1,this.encoding=options.K||0,this.eoline=options.EndOfLine||!1,this.byteAlign=options.EncodedByteAlign||!1,this.columns=options.Columns||1728,this.rows=options.Rows||0,this.eoblock=options.EndOfBlock??!0,this.black=options.BlackIs1||!1,this.codingLine=new Uint32Array(this.columns+1),this.refLine=new Uint32Array(this.columns+2),this.codingLine[0]=this.columns,this.codingPos=0,this.row=0,this.nextLine2D=this.encoding<0,this.inputBits=0,this.inputBuf=0,this.outputBits=0,this.rowsDone=!1;let code1;for(;0===(code1=this._lookBits(12));)this._eatBits(1);1===code1&&this._eatBits(12),0<this.encoding&&(this.nextLine2D=!this._lookBits(1),this._eatBits(1))}readNextChar(){if(this.eof)return-1;var refLine=this.refLine,codingLine=this.codingLine,columns=this.columns;let refPos,blackPixels,bits,i;if(0===this.outputBits){if(this.rowsDone&&(this.eof=!0),this.eof)return-1;this.err=!1;let code1,code2,code3;if(this.nextLine2D){for(i=0;codingLine[i]<columns;++i)refLine[i]=codingLine[i];for(refLine[i++]=columns,refLine[i]=columns,codingLine[0]=0,this.codingPos=0,refPos=0,blackPixels=0;codingLine[this.codingPos]<columns;)switch(code1=this._getTwoDimCode()){case twoDimPass:this._addPixels(refLine[refPos+1],blackPixels),refLine[refPos+1]<columns&&(refPos+=2);break;case twoDimHoriz:if(code1=code2=0,blackPixels){for(;code1+=code3=this._getBlackCode(),64<=code3;);for(;code2+=code3=this._getWhiteCode(),64<=code3;);}else{for(;code1+=code3=this._getWhiteCode(),64<=code3;);for(;code2+=code3=this._getBlackCode(),64<=code3;);}for(this._addPixels(codingLine[this.codingPos]+code1,blackPixels),codingLine[this.codingPos]<columns&&this._addPixels(codingLine[this.codingPos]+code2,1^blackPixels);refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns;)refPos+=2;break;case twoDimVertR3:if(this._addPixels(refLine[refPos]+3,blackPixels),blackPixels^=1,codingLine[this.codingPos]<columns)for(++refPos;refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns;)refPos+=2;break;case twoDimVertR2:if(this._addPixels(refLine[refPos]+2,blackPixels),blackPixels^=1,codingLine[this.codingPos]<columns)for(++refPos;refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns;)refPos+=2;break;case twoDimVertR1:if(this._addPixels(refLine[refPos]+1,blackPixels),blackPixels^=1,codingLine[this.codingPos]<columns)for(++refPos;refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns;)refPos+=2;break;case twoDimVert0:if(this._addPixels(refLine[refPos],blackPixels),blackPixels^=1,codingLine[this.codingPos]<columns)for(++refPos;refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns;)refPos+=2;break;case twoDimVertL3:if(this._addPixelsNeg(refLine[refPos]-3,blackPixels),blackPixels^=1,codingLine[this.codingPos]<columns)for(0<refPos?--refPos:++refPos;refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns;)refPos+=2;break;case twoDimVertL2:if(this._addPixelsNeg(refLine[refPos]-2,blackPixels),blackPixels^=1,codingLine[this.codingPos]<columns)for(0<refPos?--refPos:++refPos;refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns;)refPos+=2;break;case twoDimVertL1:if(this._addPixelsNeg(refLine[refPos]-1,blackPixels),blackPixels^=1,codingLine[this.codingPos]<columns)for(0<refPos?--refPos:++refPos;refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns;)refPos+=2;break;case ccittEOF:this._addPixels(columns,0),this.eof=!0;break;default:info("bad 2d code"),this._addPixels(columns,0),this.err=!0}}else for(codingLine[0]=0,this.codingPos=0,blackPixels=0;codingLine[this.codingPos]<columns;){if(code1=0,blackPixels)for(;code1+=code3=this._getBlackCode(),64<=code3;);else for(;code1+=code3=this._getWhiteCode(),64<=code3;);this._addPixels(codingLine[this.codingPos]+code1,blackPixels),blackPixels^=1}let gotEOL=!1;if(this.byteAlign&&(this.inputBits&=-8),this.eoblock||this.row!==this.rows-1){if(code1=this._lookBits(12),this.eoline)for(;code1!==ccittEOF&&1!==code1;)this._eatBits(1),code1=this._lookBits(12);else for(;0===code1;)this._eatBits(1),code1=this._lookBits(12);1===code1?(this._eatBits(12),gotEOL=!0):code1===ccittEOF&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&0<this.encoding&&!this.rowsDone&&(this.nextLine2D=!this._lookBits(1),this._eatBits(1)),this.eoblock&&gotEOL&&this.byteAlign){if(1===(code1=this._lookBits(12))){if(this._eatBits(12),0<this.encoding&&(this._lookBits(1),this._eatBits(1)),0<=this.encoding)for(i=0;i<4;++i)1!==(code1=this._lookBits(12))&&info("bad rtc code: "+code1),this._eatBits(12),0<this.encoding&&(this._lookBits(1),this._eatBits(1));this.eof=!0}}else if(this.err&&this.eoline){for(;;){if((code1=this._lookBits(13))===ccittEOF)return this.eof=!0,-1;if(code1>>1==1)break;this._eatBits(1)}this._eatBits(12),0<this.encoding&&(this._eatBits(1),this.nextLine2D=!(1&code1))}this.outputBits=0<codingLine[0]?codingLine[this.codingPos=0]:codingLine[this.codingPos=1],this.row++}let c;if(8<=this.outputBits)c=1&this.codingPos?0:255,this.outputBits-=8,0===this.outputBits&&codingLine[this.codingPos]<columns&&(this.codingPos++,this.outputBits=codingLine[this.codingPos]-codingLine[this.codingPos-1]);else{bits=8,c=0;do{if("number"!=typeof this.outputBits)throw new FormatError('Invalid /CCITTFaxDecode data, "outputBits" must be a number.')}while(this.outputBits>bits?(c<<=bits,1&this.codingPos||(c|=255>>8-bits),this.outputBits-=bits,bits=0):(c<<=this.outputBits,1&this.codingPos||(c|=255>>8-this.outputBits),bits-=this.outputBits,this.outputBits=0,codingLine[this.codingPos]<columns?(this.codingPos++,this.outputBits=codingLine[this.codingPos]-codingLine[this.codingPos-1]):0<bits&&(c<<=bits,bits=0)),bits)}return this.black&&(c^=255),c}_addPixels(a1,blackPixels){var codingLine=this.codingLine;let codingPos=this.codingPos;a1>codingLine[codingPos]&&(a1>this.columns&&(info("row is wrong length"),this.err=!0,a1=this.columns),1&codingPos^blackPixels&&++codingPos,codingLine[codingPos]=a1),this.codingPos=codingPos}_addPixelsNeg(a1,blackPixels){var codingLine=this.codingLine;let codingPos=this.codingPos;if(a1>codingLine[codingPos])a1>this.columns&&(info("row is wrong length"),this.err=!0,a1=this.columns),1&codingPos^blackPixels&&++codingPos,codingLine[codingPos]=a1;else if(a1<codingLine[codingPos]){for(a1<0&&(info("invalid code"),this.err=!0,a1=0);0<codingPos&&a1<codingLine[codingPos-1];)--codingPos;codingLine[codingPos]=a1}this.codingPos=codingPos}_findTableCode(start,end,table,limit){var limitValue=limit||0;for(let i=start;i<=end;++i){let code=this._lookBits(i);if(code===ccittEOF)return[!0,1,!1];if(i<end&&(code<<=end-i),!limitValue||code>=limitValue){var p=table[code-limitValue];if(p[0]===i)return this._eatBits(i),[!0,p[1],!0]}}return[!1,0,!1]}_getTwoDimCode(){if(this.eoblock){if(code=this._lookBits(7),0<(code=twoDimTable[code])?.[0])return this._eatBits(code[0]),code[1]}else{var code=this._findTableCode(1,7,twoDimTable);if(code[0]&&code[2])return code[1]}return info("Bad two dim code"),ccittEOF}_getWhiteCode(){if(this.eoblock){if((code=this._lookBits(12))===ccittEOF)return 1;if(0<(code=code>>5==0?whiteTable1[code]:whiteTable2[code>>3])[0])return this._eatBits(code[0]),code[1]}else{var code=this._findTableCode(1,9,whiteTable2);if(code[0])return code[1];if((code=this._findTableCode(11,12,whiteTable1))[0])return code[1]}return info("bad white code"),this._eatBits(1),1}_getBlackCode(){let code,p;if(this.eoblock){if((code=this._lookBits(13))===ccittEOF)return 1;if(0<(p=code>>7==0?blackTable1[code]:code>>9==0&&code>>7!=0?blackTable2[(code>>1)-64]:blackTable3[code>>7])[0])return this._eatBits(p[0]),p[1]}else{var result=this._findTableCode(2,6,blackTable3);if(result[0])return result[1];if((result=this._findTableCode(7,12,blackTable2,64))[0])return result[1];if((result=this._findTableCode(10,13,blackTable1))[0])return result[1]}return info("bad black code"),this._eatBits(1),1}_lookBits(n){for(var c;this.inputBits<n;){if(-1===(c=this.source.next()))return 0===this.inputBits?ccittEOF:this.inputBuf<<n-this.inputBits&65535>>16-n;this.inputBuf=this.inputBuf<<8|c,this.inputBits+=8}return this.inputBuf>>this.inputBits-n&65535>>16-n}_eatBits(n){(this.inputBits-=n)<0&&(this.inputBits=0)}}class CCITTFaxStream extends DecodeStream{constructor(str,maybeLength,params){super(maybeLength),this.str=str,this.dict=str.dict,params instanceof Dict||(params=Dict.empty);maybeLength={next(){return str.getByte()}};this.ccittFaxDecoder=new CCITTFaxDecoder(maybeLength,{K:params.get("K"),EndOfLine:params.get("EndOfLine"),EncodedByteAlign:params.get("EncodedByteAlign"),Columns:params.get("Columns"),Rows:params.get("Rows"),EndOfBlock:params.get("EndOfBlock"),BlackIs1:params.get("BlackIs1")})}readBlock(){for(;!this.eof;){var c=this.ccittFaxDecoder.readNextChar();if(-1===c)return void(this.eof=!0);this.ensureBuffer(this.bufferLength+1),this.buffer[this.bufferLength++]=c}}}const codeLenCodeMap=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),lengthDecode=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),distDecode=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),fixedLitCodeTab=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],fixedDistCodeTab=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];class FlateStream extends DecodeStream{constructor(str,maybeLength){super(maybeLength),this.str=str,this.dict=str.dict;maybeLength=str.getByte(),str=str.getByte();if(-1===maybeLength||-1===str)throw new FormatError(`Invalid header in flate stream: ${maybeLength}, `+str);if(8!=(15&maybeLength))throw new FormatError(`Unknown compression method in flate stream: ${maybeLength}, `+str);if(((maybeLength<<8)+str)%31!=0)throw new FormatError(`Bad FCHECK in flate stream: ${maybeLength}, `+str);if(32&str)throw new FormatError(`FDICT bit set in flate stream: ${maybeLength}, `+str);this.codeSize=0,this.codeBuf=0}getBits(bits){var str=this.str;let codeSize=this.codeSize,codeBuf=this.codeBuf,b;for(;codeSize<bits;){if(-1===(b=str.getByte()))throw new FormatError("Bad encoding in flate stream");codeBuf|=b<<codeSize,codeSize+=8}return b=codeBuf&(1<<bits)-1,this.codeBuf=codeBuf>>bits,this.codeSize=codeSize-=bits,b}getCode(table){var b,str=this.str,codes=table[0],maxLen=table[1];let codeSize=this.codeSize,codeBuf=this.codeBuf;for(;codeSize<maxLen&&-1!==(b=str.getByte());)codeBuf|=b<<codeSize,codeSize+=8;table=codes[codeBuf&(1<<maxLen)-1],codes=table>>16,table&=65535;if(codes<1||codeSize<codes)throw new FormatError("Bad encoding in flate stream");return this.codeBuf=codeBuf>>codes,this.codeSize=codeSize-codes,table}generateHuffmanTable(lengths){var n=lengths.length;let maxLen=0,i;for(i=0;i<n;++i)lengths[i]>maxLen&&(maxLen=lengths[i]);var size=1<<maxLen,codes=new Int32Array(size);for(let len=1,code=0,skip=2;len<=maxLen;++len,code<<=1,skip<<=1)for(let val=0;val<n;++val)if(lengths[val]===len){let code2=0,t=code;for(i=0;i<len;++i)code2=code2<<1|1&t,t>>=1;for(i=code2;i<size;i+=skip)codes[i]=len<<16|val;++code}return[codes,maxLen]}#endsStreamOnError(err){info(err),this.eof=!0}readBlock(){let buffer,len;var str=this.str,hdr=this.getBits(3);if(1&hdr&&(this.eof=!0),0==(hdr>>=1))if(-1===(b=str.getByte()))this.#endsStreamOnError("Bad block header in flate stream");else{var blockLen=b;if(-1===(b=str.getByte()))this.#endsStreamOnError("Bad block header in flate stream");else if(blockLen|=b<<8,-1===(b=str.getByte()))this.#endsStreamOnError("Bad block header in flate stream");else{var check=b;if(-1===(b=str.getByte()))this.#endsStreamOnError("Bad block header in flate stream");else{if((check|=b<<8)!=(65535&~blockLen)&&(0!=blockLen||0!=check))throw new FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0,this.codeSize=0;var b=this.bufferLength,check=b+blockLen;buffer=this.ensureBuffer(check),this.bufferLength=check,0==blockLen?-1===str.peekByte()&&(this.eof=!0):(check=str.getBytes(blockLen),buffer.set(check,b),check.length<blockLen&&(this.eof=!0))}}}else{let litCodeTable,distCodeTable;if(1==hdr)litCodeTable=fixedLitCodeTab,distCodeTable=fixedDistCodeTab;else{if(2!=hdr)throw new FormatError("Unknown block type in flate stream");{var str=this.getBits(5)+257,b=this.getBits(5)+1,numCodeLenCodes=this.getBits(4)+4,codeLenCodeLengths=new Uint8Array(codeLenCodeMap.length);let i;for(i=0;i<numCodeLenCodes;++i)codeLenCodeLengths[codeLenCodeMap[i]]=this.getBits(3);var codeLenCodeTab=this.generateHuffmanTable(codeLenCodeLengths),codes=(len=0,i=0,str+b),codeLengths=new Uint8Array(codes);let bitsLength,bitsOffset,what;for(;i<codes;){var code=this.getCode(codeLenCodeTab);if(16===code)bitsLength=2,bitsOffset=3,what=len;else{if(17===code)bitsLength=3,bitsOffset=3;else{if(18!==code){codeLengths[i++]=len=code;continue}bitsLength=7,bitsOffset=11}what=len=0}let repeatLength=this.getBits(bitsLength)+bitsOffset;for(;0<repeatLength--;)codeLengths[i++]=what}litCodeTable=this.generateHuffmanTable(codeLengths.subarray(0,str)),distCodeTable=this.generateHuffmanTable(codeLengths.subarray(str,codes))}}let limit=(buffer=this.buffer)?buffer.length:0,pos=this.bufferLength;for(;;)if((code1=this.getCode(litCodeTable))<256)pos+1>=limit&&(buffer=this.ensureBuffer(pos+1),limit=buffer.length),buffer[pos++]=code1;else{if(256===code1)return void(this.bufferLength=pos);code1-=257;let code2=(code1=lengthDecode[code1])>>16;0<code2&&(code2=this.getBits(code2)),len=(65535&code1)+code2;var code1=this.getCode(distCodeTable),dist=(65535&(code1=distDecode[code1]))+(code2=0<(code2=code1>>16)?this.getBits(code2):code2);pos+len>=limit&&(buffer=this.ensureBuffer(pos+len),limit=buffer.length);for(let k=0;k<len;++k,++pos)buffer[pos]=buffer[pos-dist]}}}}const QeTable=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];class ArithmeticDecoder{constructor(data,start,end){this.data=data,this.bp=start,this.dataEnd=end,this.chigh=data[start],this.clow=0,this.byteIn(),this.chigh=this.chigh<<7&65535|this.clow>>9&127,this.clow=this.clow<<7&65535,this.ct-=7,this.a=32768}byteIn(){var data=this.data;let bp=this.bp;255===data[bp]?143<data[bp+1]?(this.clow+=65280,this.ct=8):(bp++,this.clow+=data[bp]<<9,this.ct=7,this.bp=bp):(bp++,this.clow+=bp<this.dataEnd?data[bp]<<8:65280,this.ct=8,this.bp=bp),65535<this.clow&&(this.chigh+=this.clow>>16,this.clow&=65535)}readBit(contexts,pos){let cx_index=contexts[pos]>>1,cx_mps=1&contexts[pos];var qeTableIcx=QeTable[cx_index],qeIcx=qeTableIcx.qe;let d,a=this.a-qeIcx;if(this.chigh<qeIcx)cx_index=a<qeIcx?(a=qeIcx,d=cx_mps,qeTableIcx.nmps):(a=qeIcx,d=1^cx_mps,1===qeTableIcx.switchFlag&&(cx_mps=d),qeTableIcx.nlps);else{if(this.chigh-=qeIcx,0!=(32768&a))return this.a=a,cx_mps;cx_index=a<qeIcx?(d=1^cx_mps,1===qeTableIcx.switchFlag&&(cx_mps=d),qeTableIcx.nlps):(d=cx_mps,qeTableIcx.nmps)}for(;0===this.ct&&this.byteIn(),a<<=1,this.chigh=this.chigh<<1&65535|this.clow>>15&1,this.clow=this.clow<<1&65535,this.ct--,0==(32768&a););return this.a=a,contexts[pos]=cx_index<<1|cx_mps,d}}class Jbig2Error extends BaseException{constructor(msg){super(msg,"Jbig2Error")}}class ContextCache{getContexts(id){return id in this?this[id]:this[id]=new Int8Array(65536)}}class DecodingContext{constructor(data,start,end){this.data=data,this.start=start,this.end=end}get decoder(){return shadow(this,"decoder",new ArithmeticDecoder(this.data,this.start,this.end))}get contextCache(){return shadow(this,"contextCache",new ContextCache)}}const MAX_INT_32=2**31-1,MIN_INT_32=-(2**31);function decodeInteger(contextCache,procedure,decoder){const contexts=contextCache.getContexts(procedure);let prev=1;function readBits(length){let v=0;for(let i=0;i<length;i++){var bit=decoder.readBit(contexts,prev);prev=prev<256?prev<<1|bit:511&(prev<<1|bit)|256,v=v<<1|bit}return v>>>0}contextCache=readBits(1),procedure=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);let signedValue;return 0===contextCache?signedValue=procedure:0<procedure&&(signedValue=-procedure),signedValue>=MIN_INT_32&&signedValue<=MAX_INT_32?signedValue:null}function decodeIAID(contextCache,decoder,codeLength){var contexts=contextCache.getContexts("IAID");let prev=1;for(let i=0;i<codeLength;i++){var bit=decoder.readBit(contexts,prev);prev=prev<<1|bit}return codeLength<31?prev&(1<<codeLength)-1:2147483647&prev}const SegmentTypes=["SymbolDictionary",null,null,null,"IntermediateTextRegion",null,"ImmediateTextRegion","ImmediateLosslessTextRegion",null,null,null,null,null,null,null,null,"PatternDictionary",null,null,null,"IntermediateHalftoneRegion",null,"ImmediateHalftoneRegion","ImmediateLosslessHalftoneRegion",null,null,null,null,null,null,null,null,null,null,null,null,"IntermediateGenericRegion",null,"ImmediateGenericRegion","ImmediateLosslessGenericRegion","IntermediateGenericRefinementRegion",null,"ImmediateGenericRefinementRegion","ImmediateLosslessGenericRefinementRegion",null,null,null,null,"PageInformation","EndOfPage","EndOfStripe","EndOfFile","Profiles","Tables",null,null,null,null,null,null,null,null,"Extension"],CodingTemplates=[[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:2,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-2,y:0},{x:-1,y:0}],[{x:-3,y:-1},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}]],RefinementTemplates=[{coding:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:-1,y:1},{x:0,y:1},{x:1,y:1}]},{coding:[{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]}],ReusedContexts=[39717,1941,229,405],RefinementReusedContexts=[32,8];function decodeBitmapTemplate0(width,height,decodingContext){var decoder=decodingContext.decoder,contexts=decodingContext.contextCache.getContexts("GB"),bitmap=[];let contextLabel,i,j,pixel,row,row1,row2;for(i=0;i<height;i++)for(row=bitmap[i]=new Uint8Array(width),row1=i<1?row:bitmap[i-1],row2=i<2?row:bitmap[i-2],contextLabel=row2[0]<<13|row2[1]<<12|row2[2]<<11|row1[0]<<7|row1[1]<<6|row1[2]<<5|row1[3]<<4,j=0;j<width;j++)row[j]=pixel=decoder.readBit(contexts,contextLabel),contextLabel=(31735&contextLabel)<<1|(j+3<width?row2[j+3]<<11:0)|(j+4<width?row1[j+4]<<4:0)|pixel;return bitmap}function decodeBitmap(mmr,width,height,templateIndex,prediction,skip,at,decodingContext){if(mmr)return decodeMMRBitmap(new Reader(decodingContext.data,decodingContext.start,decodingContext.end),width,height,!1);if(0===templateIndex&&!skip&&!prediction&&4===at.length&&3===at[0].x&&-1===at[0].y&&-3===at[1].x&&-1===at[1].y&&2===at[2].x&&-2===at[2].y&&-2===at[3].x&&-2===at[3].y)return decodeBitmapTemplate0(width,height,decodingContext);var useskip=!!skip,template=CodingTemplates[templateIndex].concat(at),templateLength=(template.sort(function(a,b){return a.y-b.y||a.x-b.x}),template.length),templateX=new Int8Array(templateLength),templateY=new Int8Array(templateLength),changingTemplateEntries=[];let reuseMask=0,minX=0,maxX=0,minY=0,c,k;for(k=0;k<templateLength;k++)templateX[k]=template[k].x,templateY[k]=template[k].y,minX=Math.min(minX,template[k].x),maxX=Math.max(maxX,template[k].x),minY=Math.min(minY,template[k].y),k<templateLength-1&&template[k].y===template[k+1].y&&template[k].x===template[k+1].x-1?reuseMask|=1<<templateLength-1-k:changingTemplateEntries.push(k);var changingEntriesLength=changingTemplateEntries.length,changingTemplateX=new Int8Array(changingEntriesLength),changingTemplateY=new Int8Array(changingEntriesLength),changingTemplateBit=new Uint16Array(changingEntriesLength);for(c=0;c<changingEntriesLength;c++)k=changingTemplateEntries[c],changingTemplateX[c]=template[k].x,changingTemplateY[c]=template[k].y,changingTemplateBit[c]=1<<templateLength-1-k;var sbb_left=-minX,sbb_top=-minY,sbb_right=width-maxX,pseudoPixelContext=ReusedContexts[templateIndex];let row=new Uint8Array(width);var bitmap=[],decoder=decodingContext.decoder,contexts=decodingContext.contextCache.getContexts("GB");let ltp=0,j,i0,j0,contextLabel=0,bit,shift;for(let i=0;i<height;i++){if(prediction){var sltp=decoder.readBit(contexts,pseudoPixelContext);if(ltp^=sltp){bitmap.push(row);continue}}for(row=new Uint8Array(row),bitmap.push(row),j=0;j<width;j++)if(useskip&&skip[i][j])row[j]=0;else{if(j>=sbb_left&&j<sbb_right&&i>=sbb_top)for(contextLabel=contextLabel<<1&reuseMask,k=0;k<changingEntriesLength;k++)i0=i+changingTemplateY[k],j0=j+changingTemplateX[k],(bit=bitmap[i0][j0])&&(bit=changingTemplateBit[k],contextLabel|=bit);else for(contextLabel=0,shift=templateLength-1,k=0;k<templateLength;k++,shift--)0<=(j0=j+templateX[k])&&j0<width&&0<=(i0=i+templateY[k])&&(bit=bitmap[i0][j0])&&(contextLabel|=bit<<shift);var pixel=decoder.readBit(contexts,contextLabel);row[j]=pixel}}return bitmap}function decodeRefinement(width,height,templateIndex,referenceBitmap,offsetX,offsetY,prediction,at,decodingContext){let codingTemplate=RefinementTemplates[templateIndex].coding;var codingTemplateLength=(codingTemplate=0===templateIndex?codingTemplate.concat([at[0]]):codingTemplate).length,codingTemplateX=new Int32Array(codingTemplateLength),codingTemplateY=new Int32Array(codingTemplateLength);let k;for(k=0;k<codingTemplateLength;k++)codingTemplateX[k]=codingTemplate[k].x,codingTemplateY[k]=codingTemplate[k].y;let referenceTemplate=RefinementTemplates[templateIndex].reference;var referenceTemplateLength=(referenceTemplate=0===templateIndex?referenceTemplate.concat([at[1]]):referenceTemplate).length,referenceTemplateX=new Int32Array(referenceTemplateLength),referenceTemplateY=new Int32Array(referenceTemplateLength);for(k=0;k<referenceTemplateLength;k++)referenceTemplateX[k]=referenceTemplate[k].x,referenceTemplateY[k]=referenceTemplate[k].y;var referenceWidth=referenceBitmap[0].length,referenceHeight=referenceBitmap.length,pseudoPixelContext=RefinementReusedContexts[templateIndex],bitmap=[],decoder=decodingContext.decoder,contexts=decodingContext.contextCache.getContexts("GR");let ltp=0;for(let i=0;i<height;i++){if(prediction){var sltp=decoder.readBit(contexts,pseudoPixelContext);if(ltp^=sltp)throw new Jbig2Error("prediction is not supported")}var row=new Uint8Array(width);bitmap.push(row);for(let j=0;j<width;j++){let i0,j0,contextLabel=0;for(k=0;k<codingTemplateLength;k++)i0=i+codingTemplateY[k],j0=j+codingTemplateX[k],i0<0||j0<0||j0>=width?contextLabel<<=1:contextLabel=contextLabel<<1|bitmap[i0][j0];for(k=0;k<referenceTemplateLength;k++)i0=i+referenceTemplateY[k]-offsetY,j0=j+referenceTemplateX[k]-offsetX,i0<0||i0>=referenceHeight||j0<0||j0>=referenceWidth?contextLabel<<=1:contextLabel=contextLabel<<1|referenceBitmap[i0][j0];var pixel=decoder.readBit(contexts,contextLabel);row[j]=pixel}}return bitmap}function decodeSymbolDictionary(huffman,refinement,symbols,numberOfNewSymbols,numberOfExportedSymbols,huffmanTables,templateIndex,at,refinementTemplateIndex,refinementAt,decodingContext,huffmanInput){if(huffman&&refinement)throw new Jbig2Error("symbol refinement with Huffman is not supported");var newSymbols=[];let currentHeight=0,symbolCodeLength=log2(symbols.length+numberOfNewSymbols);var decoder=decodingContext.decoder,contextCache=decodingContext.contextCache;let tableB1,symbolWidths;for(huffman&&(tableB1=getStandardTable(1),symbolWidths=[],symbolCodeLength=Math.max(symbolCodeLength,1));newSymbols.length<numberOfNewSymbols;){var deltaHeight=huffman?huffmanTables.tableDeltaHeight.decode(huffmanInput):decodeInteger(contextCache,"IADH",decoder);currentHeight+=deltaHeight;let currentWidth=0,totalWidth=0;for(deltaHeight=huffman?symbolWidths.length:0;;){var rdx,rdy,deltaWidth=huffman?huffmanTables.tableDeltaWidth.decode(huffmanInput):decodeInteger(contextCache,"IADW",decoder);if(null===deltaWidth)break;currentWidth+=deltaWidth,totalWidth+=currentWidth;let bitmap;refinement?(deltaWidth=decodeInteger(contextCache,"IAAI",decoder),bitmap=1<deltaWidth?decodeTextRegion(huffman,refinement,currentWidth,currentHeight,0,deltaWidth,1,symbols.concat(newSymbols),symbolCodeLength,0,0,1,0,huffmanTables,refinementTemplateIndex,refinementAt,decodingContext,0,huffmanInput):(deltaWidth=decodeIAID(contextCache,decoder,symbolCodeLength),rdx=decodeInteger(contextCache,"IARDX",decoder),rdy=decodeInteger(contextCache,"IARDY",decoder),deltaWidth=deltaWidth<symbols.length?symbols[deltaWidth]:newSymbols[deltaWidth-symbols.length],decodeRefinement(currentWidth,currentHeight,refinementTemplateIndex,deltaWidth,rdx,rdy,!1,refinementAt,decodingContext)),newSymbols.push(bitmap)):huffman?symbolWidths.push(currentWidth):(bitmap=decodeBitmap(!1,currentWidth,currentHeight,templateIndex,!1,null,at,decodingContext),newSymbols.push(bitmap))}if(huffman&&!refinement){var originalEnd,bitmapSize=huffmanTables.tableBitmapSize.decode(huffmanInput);huffmanInput.byteAlign();let collectiveBitmap;0===bitmapSize?collectiveBitmap=readUncompressedBitmap(huffmanInput,totalWidth,currentHeight):(originalEnd=huffmanInput.end,bitmapSize=huffmanInput.position+bitmapSize,huffmanInput.end=bitmapSize,collectiveBitmap=decodeMMRBitmap(huffmanInput,totalWidth,currentHeight,!1),huffmanInput.end=originalEnd,huffmanInput.position=bitmapSize);var numberOfSymbolsDecoded=symbolWidths.length;if(deltaHeight===numberOfSymbolsDecoded-1)newSymbols.push(collectiveBitmap);else{let i,y,xMin=0,xMax,bitmapWidth,symbolBitmap;for(i=deltaHeight;i<numberOfSymbolsDecoded;i++){for(bitmapWidth=symbolWidths[i],xMax=xMin+bitmapWidth,symbolBitmap=[],y=0;y<currentHeight;y++)symbolBitmap.push(collectiveBitmap[y].subarray(xMin,xMax));newSymbols.push(symbolBitmap),xMin=xMax}}}}var exportedSymbols=[],flags=[];let currentFlag=!1,i,ii;for(var totalSymbolsLength=symbols.length+numberOfNewSymbols;flags.length<totalSymbolsLength;){let runLength=huffman?tableB1.decode(huffmanInput):decodeInteger(contextCache,"IAEX",decoder);for(;runLength--;)flags.push(currentFlag);currentFlag=!currentFlag}for(i=0,ii=symbols.length;i<ii;i++)flags[i]&&exportedSymbols.push(symbols[i]);for(let j=0;j<numberOfNewSymbols;i++,j++)flags[i]&&exportedSymbols.push(newSymbols[j]);return exportedSymbols}function decodeTextRegion(huffman,refinement,width,height,defaultPixelValue,numberOfSymbolInstances,stripSize,inputSymbols,symbolCodeLength,transposed,dsOffset,referenceCorner,combinationOperator,huffmanTables,refinementTemplateIndex,refinementAt,decodingContext,logStripSize,huffmanInput){if(huffman&&refinement)throw new Jbig2Error("refinement with Huffman is not supported");var bitmap=[];let i,row;for(i=0;i<height;i++){if(row=new Uint8Array(width),defaultPixelValue)for(let j=0;j<width;j++)row[j]=defaultPixelValue;bitmap.push(row)}var decoder=decodingContext.decoder,contextCache=decodingContext.contextCache;let stripT=huffman?-huffmanTables.tableDeltaT.decode(huffmanInput):-decodeInteger(contextCache,"IADT",decoder),firstS=0;for(i=0;i<numberOfSymbolInstances;){var deltaT=huffman?huffmanTables.tableDeltaT.decode(huffmanInput):decodeInteger(contextCache,"IADT",decoder),deltaT=(stripT+=deltaT,huffman?huffmanTables.tableFirstS.decode(huffmanInput):decodeInteger(contextCache,"IAFS",decoder));let currentS=firstS+=deltaT;for(;;){let currentT=0;1<stripSize&&(currentT=huffman?huffmanInput.readBits(logStripSize):decodeInteger(contextCache,"IAIT",decoder));var rdx,rdy,t=stripSize*stripT+currentT,symbolId=huffman?huffmanTables.symbolIDTable.decode(huffmanInput):decodeIAID(contextCache,decoder,symbolCodeLength),applyRefinement=refinement&&(huffman?huffmanInput.readBit():decodeInteger(contextCache,"IARI",decoder));let symbolBitmap=inputSymbols[symbolId],symbolWidth=symbolBitmap[0].length,symbolHeight=symbolBitmap.length,increment=(applyRefinement&&(symbolId=decodeInteger(contextCache,"IARDW",decoder),applyRefinement=decodeInteger(contextCache,"IARDH",decoder),rdx=decodeInteger(contextCache,"IARDX",decoder),rdy=decodeInteger(contextCache,"IARDY",decoder),symbolWidth+=symbolId,symbolHeight+=applyRefinement,symbolBitmap=decodeRefinement(symbolWidth,symbolHeight,refinementTemplateIndex,symbolBitmap,(symbolId>>1)+rdx,(applyRefinement>>1)+rdy,!1,refinementAt,decodingContext)),0);transposed?1&referenceCorner?increment=symbolHeight-1:currentS+=symbolHeight-1:1<referenceCorner?currentS+=symbolWidth-1:increment=symbolWidth-1;var offsetT=t-(1&referenceCorner?0:symbolHeight-1),offsetS=currentS-(2&referenceCorner?symbolWidth-1:0);let s2,t2,symbolRow;if(transposed){for(s2=0;s2<symbolHeight;s2++)if(row=bitmap[offsetS+s2]){symbolRow=symbolBitmap[s2];var maxWidth=Math.min(width-offsetT,symbolWidth);switch(combinationOperator){case 0:for(t2=0;t2<maxWidth;t2++)row[offsetT+t2]|=symbolRow[t2];break;case 2:for(t2=0;t2<maxWidth;t2++)row[offsetT+t2]^=symbolRow[t2];break;default:throw new Jbig2Error(`operator ${combinationOperator} is not supported`)}}}else for(t2=0;t2<symbolHeight;t2++)if(row=bitmap[offsetT+t2])switch(symbolRow=symbolBitmap[t2],combinationOperator){case 0:for(s2=0;s2<symbolWidth;s2++)row[offsetS+s2]|=symbolRow[s2];break;case 2:for(s2=0;s2<symbolWidth;s2++)row[offsetS+s2]^=symbolRow[s2];break;default:throw new Jbig2Error(`operator ${combinationOperator} is not supported`)}i++;symbolId=huffman?huffmanTables.tableDeltaS.decode(huffmanInput):decodeInteger(contextCache,"IADS",decoder);if(null===symbolId)break;currentS+=increment+symbolId+dsOffset}}return bitmap}function decodePatternDictionary(mmr,patternWidth,patternHeight,maxPatternIndex,template,decodingContext){var at=[],collectiveWidth=(mmr||(at.push({x:-patternWidth,y:0}),0===template&&at.push({x:-3,y:-1},{x:2,y:-2},{x:-2,y:-2})),(maxPatternIndex+1)*patternWidth),collectiveBitmap=decodeBitmap(mmr,collectiveWidth,patternHeight,template,!1,null,at,decodingContext),patterns=[];for(let i=0;i<=maxPatternIndex;i++){var patternBitmap=[],xMin=patternWidth*i,xMax=xMin+patternWidth;for(let y=0;y<patternHeight;y++)patternBitmap.push(collectiveBitmap[y].subarray(xMin,xMax));patterns.push(patternBitmap)}return patterns}function decodeHalftoneRegion(mmr,patterns,template,regionWidth,regionHeight,defaultPixelValue,enableSkip,combinationOperator,gridWidth,gridHeight,gridOffsetX,gridOffsetY,gridVectorX,gridVectorY,decodingContext){if(enableSkip)throw new Jbig2Error("skip is not supported");if(0!==combinationOperator)throw new Jbig2Error(`operator "${combinationOperator}" is not supported in halftone region`);var regionBitmap=[];let i,j,row;for(i=0;i<regionHeight;i++){if(row=new Uint8Array(regionWidth),defaultPixelValue)for(j=0;j<regionWidth;j++)row[j]=defaultPixelValue;regionBitmap.push(row)}var regionX,regionY,enableSkip=patterns.length,combinationOperator=patterns[0],patternWidth=combinationOperator[0].length,patternHeight=combinationOperator.length,bitsPerValue=log2(enableSkip),at=[],grayScaleBitPlanes=(mmr||(at.push({x:template<=1?3:2,y:-1}),0===template&&at.push({x:-3,y:-1},{x:2,y:-2},{x:-2,y:-2})),[]);let mmrInput,bitmap;for(mmr&&(mmrInput=new Reader(decodingContext.data,decodingContext.start,decodingContext.end)),i=bitsPerValue-1;0<=i;i--)bitmap=mmr?decodeMMRBitmap(mmrInput,gridWidth,gridHeight,!0):decodeBitmap(!1,gridWidth,gridHeight,template,!1,null,at,decodingContext),grayScaleBitPlanes[i]=bitmap;let mg,ng,bit,patternIndex,patternBitmap,x,y,patternRow,regionRow;for(mg=0;mg<gridHeight;mg++)for(ng=0;ng<gridWidth;ng++){for(bit=0,patternIndex=0,j=bitsPerValue-1;0<=j;j--)bit^=grayScaleBitPlanes[j][mg][ng],patternIndex|=bit<<j;if(patternBitmap=patterns[patternIndex],x=gridOffsetX+mg*gridVectorY+ng*gridVectorX>>8,y=gridOffsetY+mg*gridVectorX-ng*gridVectorY>>8,0<=x&&x+patternWidth<=regionWidth&&0<=y&&y+patternHeight<=regionHeight)for(i=0;i<patternHeight;i++)for(regionRow=regionBitmap[y+i],patternRow=patternBitmap[i],j=0;j<patternWidth;j++)regionRow[x+j]|=patternRow[j];else for(i=0;i<patternHeight;i++)if(!((regionY=y+i)<0||regionHeight<=regionY))for(regionRow=regionBitmap[regionY],patternRow=patternBitmap[i],j=0;j<patternWidth;j++)0<=(regionX=x+j)&®ionX<regionWidth&&(regionRow[regionX]|=patternRow[j])}return regionBitmap}function readSegmentHeader(data,start){var segmentHeader={},flags=(segmentHeader.number=readUint32(data,start),data[start+4]),segmentType=63&flags;if(!SegmentTypes[segmentType])throw new Jbig2Error("invalid segment type: "+segmentType);segmentHeader.type=segmentType,segmentHeader.typeName=SegmentTypes[segmentType],segmentHeader.deferredNonRetain=!!(128&flags);var flags=!!(64&flags),referredFlags=data[start+5];let referredToCount=referredFlags>>5&7;var retainBits=[31&referredFlags];let position=start+6;if(7===referredFlags){referredToCount=536870911&readUint32(data,position-1),position+=3;let bytes=referredToCount+7>>3;for(retainBits[0]=data[position++];0<--bytes;)retainBits.push(data[position++])}else if(5===referredFlags||6===referredFlags)throw new Jbig2Error("invalid referred-to flags");segmentHeader.retainBits=retainBits;let referredToSegmentNumberSize=4;segmentHeader.number<=256?referredToSegmentNumberSize=1:segmentHeader.number<=65536&&(referredToSegmentNumberSize=2);var referredTo=[];let i,ii;for(i=0;i<referredToCount;i++){let number;number=1===referredToSegmentNumberSize?data[position]:(2===referredToSegmentNumberSize?readUint16:readUint32)(data,position),referredTo.push(number),position+=referredToSegmentNumberSize}if(segmentHeader.referredTo=referredTo,flags?(segmentHeader.pageAssociation=readUint32(data,position),position+=4):segmentHeader.pageAssociation=data[position++],segmentHeader.length=readUint32(data,position),position+=4,4294967295===segmentHeader.length){if(38!=segmentType)throw new Jbig2Error("invalid unknown segment length");var start=readRegionSegmentInformation(data,position),referredFlags=!!(1&data[position+RegionSegmentInformationFieldLength]),searchPattern=new Uint8Array(6);for(referredFlags||(searchPattern[0]=255,searchPattern[1]=172),searchPattern[2]=start.height>>>24&255,searchPattern[3]=start.height>>16&255,searchPattern[4]=start.height>>8&255,searchPattern[5]=255&start.height,i=position,ii=data.length;i<ii;i++){let j=0;for(;j<6&&searchPattern[j]===data[i+j];)j++;if(6===j){segmentHeader.length=i+6;break}}if(4294967295===segmentHeader.length)throw new Jbig2Error("segment end was not found")}return segmentHeader.headerEnd=position,segmentHeader}function readSegments(header,data,start,end){var segments=[];let position=start;for(;position<end;){var segmentHeader=readSegmentHeader(data,position),segment=(position=segmentHeader.headerEnd,{header:segmentHeader,data:data});if(header.randomAccess||(segment.start=position,position+=segmentHeader.length,segment.end=position),segments.push(segment),51===segmentHeader.type)break}if(header.randomAccess)for(let i=0,ii=segments.length;i<ii;i++)segments[i].start=position,position+=segments[i].header.length,segments[i].end=position;return segments}function readRegionSegmentInformation(data,start){return{width:readUint32(data,start),height:readUint32(data,start+4),x:readUint32(data,start+8),y:readUint32(data,start+12),combinationOperator:7&data[start+16]}}const RegionSegmentInformationFieldLength=17;function processSegment(segment,visitor){var header=segment.header,data=segment.data,end=segment.end;let position=segment.start,args,at,i,atLength;switch(header.type){case 0:var dictionary={},dictionaryFlags=readUint16(data,position);if(dictionary.huffman=!!(1&dictionaryFlags),dictionary.refinement=!!(2&dictionaryFlags),dictionary.huffmanDHSelector=dictionaryFlags>>2&3,dictionary.huffmanDWSelector=dictionaryFlags>>4&3,dictionary.bitmapSizeSelector=dictionaryFlags>>6&1,dictionary.aggregationInstancesSelector=dictionaryFlags>>7&1,dictionary.bitmapCodingContextUsed=!!(256&dictionaryFlags),dictionary.bitmapCodingContextRetained=!!(512&dictionaryFlags),dictionary.template=dictionaryFlags>>10&3,dictionary.refinementTemplate=dictionaryFlags>>12&1,position+=2,!dictionary.huffman){for(atLength=0===dictionary.template?4:1,at=[],i=0;i<atLength;i++)at.push({x:readInt8(data,position),y:readInt8(data,position+1)}),position+=2;dictionary.at=at}if(dictionary.refinement&&!dictionary.refinementTemplate){for(at=[],i=0;i<2;i++)at.push({x:readInt8(data,position),y:readInt8(data,position+1)}),position+=2;dictionary.refinementAt=at}dictionary.numberOfExportedSymbols=readUint32(data,position),position+=4,dictionary.numberOfNewSymbols=readUint32(data,position),position+=4,args=[dictionary,header.number,header.referredTo,data,position,end];break;case 6:case 7:var dictionaryFlags={},dictionary=(dictionaryFlags.info=readRegionSegmentInformation(data,position),readUint16(data,position+=RegionSegmentInformationFieldLength));if(position+=2,dictionaryFlags.huffman=!!(1&dictionary),dictionaryFlags.refinement=!!(2&dictionary),dictionaryFlags.logStripSize=dictionary>>2&3,dictionaryFlags.stripSize=1<<dictionaryFlags.logStripSize,dictionaryFlags.referenceCorner=dictionary>>4&3,dictionaryFlags.transposed=!!(64&dictionary),dictionaryFlags.combinationOperator=dictionary>>7&3,dictionaryFlags.defaultPixelValue=dictionary>>9&1,dictionaryFlags.dsOffset=dictionary<<17>>27,dictionaryFlags.refinementTemplate=dictionary>>15&1,dictionaryFlags.huffman&&(dictionary=readUint16(data,position),position+=2,dictionaryFlags.huffmanFS=3&dictionary,dictionaryFlags.huffmanDS=dictionary>>2&3,dictionaryFlags.huffmanDT=dictionary>>4&3,dictionaryFlags.huffmanRefinementDW=dictionary>>6&3,dictionaryFlags.huffmanRefinementDH=dictionary>>8&3,dictionaryFlags.huffmanRefinementDX=dictionary>>10&3,dictionaryFlags.huffmanRefinementDY=dictionary>>12&3,dictionaryFlags.huffmanRefinementSizeSelector=!!(16384&dictionary)),dictionaryFlags.refinement&&!dictionaryFlags.refinementTemplate){for(at=[],i=0;i<2;i++)at.push({x:readInt8(data,position),y:readInt8(data,position+1)}),position+=2;dictionaryFlags.refinementAt=at}dictionaryFlags.numberOfSymbolInstances=readUint32(data,position),position+=4,args=[dictionaryFlags,header.referredTo,data,position,end];break;case 16:dictionary={},dictionaryFlags=data[position++];dictionary.mmr=!!(1&dictionaryFlags),dictionary.template=dictionaryFlags>>1&3,dictionary.patternWidth=data[position++],dictionary.patternHeight=data[position++],dictionary.maxPatternIndex=readUint32(data,position),position+=4,args=[dictionary,header.number,data,position,end];break;case 22:case 23:dictionaryFlags={},dictionary=(dictionaryFlags.info=readRegionSegmentInformation(data,position),position+=RegionSegmentInformationFieldLength,data[position++]);dictionaryFlags.mmr=!!(1&dictionary),dictionaryFlags.template=dictionary>>1&3,dictionaryFlags.enableSkip=!!(8&dictionary),dictionaryFlags.combinationOperator=dictionary>>4&7,dictionaryFlags.defaultPixelValue=dictionary>>7&1,dictionaryFlags.gridWidth=readUint32(data,position),position+=4,dictionaryFlags.gridHeight=readUint32(data,position),position+=4,dictionaryFlags.gridOffsetX=4294967295&readUint32(data,position),position+=4,dictionaryFlags.gridOffsetY=4294967295&readUint32(data,position),position+=4,dictionaryFlags.gridVectorX=readUint16(data,position),position+=2,dictionaryFlags.gridVectorY=readUint16(data,position),position+=2,args=[dictionaryFlags,header.referredTo,data,position,end];break;case 38:case 39:dictionary={},dictionaryFlags=(dictionary.info=readRegionSegmentInformation(data,position),position+=RegionSegmentInformationFieldLength,data[position++]);if(dictionary.mmr=!!(1&dictionaryFlags),dictionary.template=dictionaryFlags>>1&3,dictionary.prediction=!!(8&dictionaryFlags),!dictionary.mmr){for(atLength=0===dictionary.template?4:1,at=[],i=0;i<atLength;i++)at.push({x:readInt8(data,position),y:readInt8(data,position+1)}),position+=2;dictionary.at=at}args=[dictionary,data,position,end];break;case 48:dictionaryFlags={width:readUint32(data,position),height:readUint32(data,position+4),resolutionX:readUint32(data,position+8),resolutionY:readUint32(data,position+12)},dictionary=(4294967295===dictionaryFlags.height&&delete dictionaryFlags.height,data[position+16]);readUint16(data,position+17),dictionaryFlags.lossless=!!(1&dictionary),dictionaryFlags.refinement=!!(2&dictionary),dictionaryFlags.defaultPixelValue=dictionary>>2&1,dictionaryFlags.combinationOperator=dictionary>>3&3,dictionaryFlags.requiresBuffer=!!(32&dictionary),dictionaryFlags.combinationOperatorOverride=!!(64&dictionary),args=[dictionaryFlags];break;case 49:case 50:case 51:break;case 53:args=[header.number,data,position,end];break;case 62:break;default:throw new Jbig2Error(`segment type ${header.typeName}(${header.type}) is not implemented`)}segment="on"+header.typeName;segment in visitor&&visitor[segment].apply(visitor,args)}function processSegments(segments,visitor){for(let i=0,ii=segments.length;i<ii;i++)processSegment(segments[i],visitor)}function parseJbig2Chunks(chunks){var visitor=new SimpleSegmentVisitor;for(let i=0,ii=chunks.length;i<ii;i++){var chunk=chunks[i];processSegments(readSegments({},chunk.data,chunk.start,chunk.end),visitor)}return visitor.buffer}function parseJbig2(data){throw new Error("Not implemented: parseJbig2")}class SimpleSegmentVisitor{onPageInformation(info){var rowSize=(this.currentPageInfo=info).width+7>>3,rowSize=new Uint8ClampedArray(rowSize*info.height);info.defaultPixelValue&&rowSize.fill(255),this.buffer=rowSize}drawBitmap(regionInfo,bitmap){var pageInfo=this.currentPageInfo,width=regionInfo.width,height=regionInfo.height,rowSize=pageInfo.width+7>>3,combinationOperator=(pageInfo.combinationOperatorOverride?regionInfo:pageInfo).combinationOperator,buffer=this.buffer,mask0=128>>(7®ionInfo.x);let offset0=regionInfo.y*rowSize+(regionInfo.x>>3),i,j,mask,offset;switch(combinationOperator){case 0:for(i=0;i<height;i++){for(mask=mask0,offset=offset0,j=0;j<width;j++)bitmap[i][j]&&(buffer[offset]|=mask),(mask>>=1)||(mask=128,offset++);offset0+=rowSize}break;case 2:for(i=0;i<height;i++){for(mask=mask0,offset=offset0,j=0;j<width;j++)bitmap[i][j]&&(buffer[offset]^=mask),(mask>>=1)||(mask=128,offset++);offset0+=rowSize}break;default:throw new Jbig2Error(`operator ${combinationOperator} is not supported`)}}onImmediateGenericRegion(region,data,start,end){var regionInfo=region.info,data=new DecodingContext(data,start,end),start=decodeBitmap(region.mmr,regionInfo.width,regionInfo.height,region.template,region.prediction,null,region.at,data);this.drawBitmap(regionInfo,start)}onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion(...arguments)}onSymbolDictionary(dictionary,currentSegment,referredSegments,data,start,end){let huffmanTables,huffmanInput,symbols=(dictionary.huffman&&(huffmanTables=getSymbolDictionaryHuffmanTables(dictionary,referredSegments,this.customTables),huffmanInput=new Reader(data,start,end)),this.symbols);symbols||(this.symbols=symbols={});var inputSymbols=[];for(const referredSegment of referredSegments){var referredSymbols=symbols[referredSegment];referredSymbols&&inputSymbols.push(...referredSymbols)}referredSegments=new DecodingContext(data,start,end);symbols[currentSegment]=decodeSymbolDictionary(dictionary.huffman,dictionary.refinement,inputSymbols,dictionary.numberOfNewSymbols,dictionary.numberOfExportedSymbols,huffmanTables,dictionary.template,dictionary.at,dictionary.refinementTemplate,dictionary.refinementAt,referredSegments,huffmanInput)}onImmediateTextRegion(region,referredSegments,data,start,end){var regionInfo=region.info;let huffmanTables,huffmanInput;var symbols=this.symbols,inputSymbols=[];for(const referredSegment of referredSegments){var referredSymbols=symbols[referredSegment];referredSymbols&&inputSymbols.push(...referredSymbols)}var symbolCodeLength=log2(inputSymbols.length),referredSegments=(region.huffman&&(huffmanInput=new Reader(data,start,end),huffmanTables=getTextRegionHuffmanTables(region,referredSegments,this.customTables,inputSymbols.length,huffmanInput)),new DecodingContext(data,start,end)),data=decodeTextRegion(region.huffman,region.refinement,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.numberOfSymbolInstances,region.stripSize,inputSymbols,symbolCodeLength,region.transposed,region.dsOffset,region.referenceCorner,region.combinationOperator,huffmanTables,region.refinementTemplate,region.refinementAt,referredSegments,region.logStripSize,huffmanInput);this.drawBitmap(regionInfo,data)}onImmediateLosslessTextRegion(){this.onImmediateTextRegion(...arguments)}onPatternDictionary(dictionary,currentSegment,data,start,end){let patterns=this.patterns;patterns||(this.patterns=patterns={});data=new DecodingContext(data,start,end);patterns[currentSegment]=decodePatternDictionary(dictionary.mmr,dictionary.patternWidth,dictionary.patternHeight,dictionary.maxPatternIndex,dictionary.template,data)}onImmediateHalftoneRegion(region,referredSegments,data,start,end){var referredSegments=this.patterns[referredSegments[0]],regionInfo=region.info,data=new DecodingContext(data,start,end),start=decodeHalftoneRegion(region.mmr,referredSegments,region.template,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.enableSkip,region.combinationOperator,region.gridWidth,region.gridHeight,region.gridOffsetX,region.gridOffsetY,region.gridVectorX,region.gridVectorY,data);this.drawBitmap(regionInfo,start)}onImmediateLosslessHalftoneRegion(){this.onImmediateHalftoneRegion(...arguments)}onTables(currentSegment,data,start,end){let customTables=this.customTables;customTables||(this.customTables=customTables={}),customTables[currentSegment]=decodeTablesSegment(data,start,end)}}class HuffmanLine{constructor(lineData){2===lineData.length?(this.isOOB=!0,this.rangeLow=0,this.prefixLength=lineData[0],this.rangeLength=0,this.prefixCode=lineData[1],this.isLowerRange=!1):(this.isOOB=!1,this.rangeLow=lineData[0],this.prefixLength=lineData[1],this.rangeLength=lineData[2],this.prefixCode=lineData[3],this.isLowerRange="lower"===lineData[4])}}class HuffmanTreeNode{constructor(line){this.children=[],line?(this.isLeaf=!0,this.rangeLength=line.rangeLength,this.rangeLow=line.rangeLow,this.isLowerRange=line.isLowerRange,this.isOOB=line.isOOB):this.isLeaf=!1}buildTree(line,shift){var bit=line.prefixCode>>shift&1;if(shift<=0)this.children[bit]=new HuffmanTreeNode(line);else{let node=this.children[bit];node||(this.children[bit]=node=new HuffmanTreeNode(null)),node.buildTree(line,shift-1)}}decodeNode(reader){if(this.isLeaf)return this.isOOB?null:(htOffset=reader.readBits(this.rangeLength),this.rangeLow+(this.isLowerRange?-htOffset:htOffset));var htOffset=this.children[reader.readBit()];if(htOffset)return htOffset.decodeNode(reader);throw new Jbig2Error("invalid Huffman data")}}class HuffmanTable{constructor(lines,prefixCodesDone){prefixCodesDone||this.assignPrefixCodes(lines),this.rootNode=new HuffmanTreeNode(null);for(let i=0,ii=lines.length;i<ii;i++){var line=lines[i];0<line.prefixLength&&this.rootNode.buildTree(line,line.prefixLength-1)}}decode(reader){return this.rootNode.decodeNode(reader)}assignPrefixCodes(lines){var linesLength=lines.length;let prefixLengthMax=0;for(let i=0;i<linesLength;i++)prefixLengthMax=Math.max(prefixLengthMax,lines[i].prefixLength);var histogram=new Uint32Array(prefixLengthMax+1);for(let i=0;i<linesLength;i++)histogram[lines[i].prefixLength]++;let currentLength=1,firstCode=0,currentCode,currentTemp,line;for(histogram[0]=0;currentLength<=prefixLengthMax;){for(firstCode=firstCode+histogram[currentLength-1]<<1,currentCode=firstCode,currentTemp=0;currentTemp<linesLength;)(line=lines[currentTemp]).prefixLength===currentLength&&(line.prefixCode=currentCode,currentCode++),currentTemp++;currentLength++}}}function decodeTablesSegment(data,start,end){var flags=data[start],lowestValue=4294967295&readUint32(data,start+1),highestValue=4294967295&readUint32(data,start+5),reader=new Reader(data,start+9,end),prefixSizeBits=1+(flags>>1&7),rangeSizeBits=1+(flags>>4&7),lines=[];let prefixLength,rangeLength,currentRangeLow=lowestValue;for(;prefixLength=reader.readBits(prefixSizeBits),rangeLength=reader.readBits(rangeSizeBits),lines.push(new HuffmanLine([currentRangeLow,prefixLength,rangeLength,0])),(currentRangeLow+=1<<rangeLength)<highestValue;);return prefixLength=reader.readBits(prefixSizeBits),lines.push(new HuffmanLine([lowestValue-1,prefixLength,32,0,"lower"])),prefixLength=reader.readBits(prefixSizeBits),lines.push(new HuffmanLine([highestValue,prefixLength,32,0])),1&flags&&(prefixLength=reader.readBits(prefixSizeBits),lines.push(new HuffmanLine([prefixLength,0]))),new HuffmanTable(lines,!1)}const standardTablesCache={};function getStandardTable(number){var table=standardTablesCache[number];if(!table){let lines;switch(number){case 1:lines=[[0,1,4,0],[16,2,8,2],[272,3,16,6],[65808,3,32,7]];break;case 2:lines=[[0,1,0,0],[1,2,0,2],[2,3,0,6],[3,4,3,14],[11,5,6,30],[75,6,32,62],[6,63]];break;case 3:lines=[[-256,8,8,254],[0,1,0,0],[1,2,0,2],[2,3,0,6],[3,4,3,14],[11,5,6,30],[-257,8,32,255,"lower"],[75,7,32,126],[6,62]];break;case 4:lines=[[1,1,0,0],[2,2,0,2],[3,3,0,6],[4,4,3,14],[12,5,6,30],[76,5,32,31]];break;case 5:lines=[[-255,7,8,126],[1,1,0,0],[2,2,0,2],[3,3,0,6],[4,4,3,14],[12,5,6,30],[-256,7,32,127,"lower"],[76,6,32,62]];break;case 6:lines=[[-2048,5,10,28],[-1024,4,9,8],[-512,4,8,9],[-256,4,7,10],[-128,5,6,29],[-64,5,5,30],[-32,4,5,11],[0,2,7,0],[128,3,7,2],[256,3,8,3],[512,4,9,12],[1024,4,10,13],[-2049,6,32,62,"lower"],[2048,6,32,63]];break;case 7:lines=[[-1024,4,9,8],[-512,3,8,0],[-256,4,7,9],[-128,5,6,26],[-64,5,5,27],[-32,4,5,10],[0,4,5,11],[32,5,5,28],[64,5,6,29],[128,4,7,12],[256,3,8,1],[512,3,9,2],[1024,3,10,3],[-1025,5,32,30,"lower"],[2048,5,32,31]];break;case 8:lines=[[-15,8,3,252],[-7,9,1,508],[-5,8,1,253],[-3,9,0,509],[-2,7,0,124],[-1,4,0,10],[0,2,1,0],[2,5,0,26],[3,6,0,58],[4,3,4,4],[20,6,1,59],[22,4,4,11],[38,4,5,12],[70,5,6,27],[134,5,7,28],[262,6,7,60],[390,7,8,125],[646,6,10,61],[-16,9,32,510,"lower"],[1670,9,32,511],[2,1]];break;case 9:lines=[[-31,8,4,252],[-15,9,2,508],[-11,8,2,253],[-7,9,1,509],[-5,7,1,124],[-3,4,1,10],[-1,3,1,2],[1,3,1,3],[3,5,1,26],[5,6,1,58],[7,3,5,4],[39,6,2,59],[43,4,5,11],[75,4,6,12],[139,5,7,27],[267,5,8,28],[523,6,8,60],[779,7,9,125],[1291,6,11,61],[-32,9,32,510,"lower"],[3339,9,32,511],[2,0]];break;case 10:lines=[[-21,7,4,122],[-5,8,0,252],[-4,7,0,123],[-3,5,0,24],[-2,2,2,0],[2,5,0,25],[3,6,0,54],[4,7,0,124],[5,8,0,253],[6,2,6,1],[70,5,5,26],[102,6,5,55],[134,6,6,56],[198,6,7,57],[326,6,8,58],[582,6,9,59],[1094,6,10,60],[2118,7,11,125],[-22,8,32,254,"lower"],[4166,8,32,255],[2,2]];break;case 11:lines=[[1,1,0,0],[2,2,1,2],[4,4,0,12],[5,4,1,13],[7,5,1,28],[9,5,2,29],[13,6,2,60],[17,7,2,122],[21,7,3,123],[29,7,4,124],[45,7,5,125],[77,7,6,126],[141,7,32,127]];break;case 12:lines=[[1,1,0,0],[2,2,0,2],[3,3,1,6],[5,5,0,28],[6,5,1,29],[8,6,1,60],[10,7,0,122],[11,7,1,123],[13,7,2,124],[17,7,3,125],[25,7,4,126],[41,8,5,254],[73,8,32,255]];break;case 13:lines=[[1,1,0,0],[2,3,0,4],[3,4,0,12],[4,5,0,28],[5,4,1,13],[7,3,3,5],[15,6,1,58],[17,6,2,59],[21,6,3,60],[29,6,4,61],[45,6,5,62],[77,7,6,126],[141,7,32,127]];break;case 14:lines=[[-2,3,0,4],[-1,3,0,5],[0,1,0,0],[1,3,0,6],[2,3,0,7]];break;case 15:lines=[[-24,7,4,124],[-8,6,2,60],[-4,5,1,28],[-2,4,0,12],[-1,3,0,4],[0,1,0,0],[1,3,0,5],[2,4,0,13],[3,5,1,29],[5,6,2,61],[9,7,4,125],[-25,7,32,126,"lower"],[25,7,32,127]];break;default:throw new Jbig2Error(`standard table B.${number} does not exist`)}for(let i=0,ii=lines.length;i<ii;i++)lines[i]=new HuffmanLine(lines[i]);table=new HuffmanTable(lines,!0),standardTablesCache[number]=table}return table}class Reader{constructor(data,start,end){this.data=data,this.start=start,this.end=end,this.position=start,this.shift=-1,this.currentByte=0}readBit(){if(this.shift<0){if(this.position>=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++],this.shift=7}var bit=this.currentByte>>this.shift&1;return this.shift--,bit}readBits(numBits){let result=0,i;for(i=numBits-1;0<=i;i--)result|=this.readBit()<<i;return result}byteAlign(){this.shift=-1}next(){return this.position>=this.end?-1:this.data[this.position++]}}function getCustomHuffmanTable(index,referredTo,customTables){let currentIndex=0;for(let i=0,ii=referredTo.length;i<ii;i++){var table=customTables[referredTo[i]];if(table){if(index===currentIndex)return table;currentIndex++}}throw new Jbig2Error("can't find custom Huffman table")}function getTextRegionHuffmanTables(textRegion,referredTo,customTables,numberOfSymbols,reader){var codes=[];for(let i=0;i<=34;i++){var codeLength=reader.readBits(4);codes.push(new HuffmanLine([i,codeLength,0,0]))}var runCodesTable=new HuffmanTable(codes,!1);for(let i=codes.length=0;i<numberOfSymbols;){const codeLength=runCodesTable.decode(reader);if(32<=codeLength){let repeatedLength,numberOfRepeats,j;switch(codeLength){case 32:if(0===i)throw new Jbig2Error("no previous value in symbol ID table");numberOfRepeats=reader.readBits(2)+3,repeatedLength=codes[i-1].prefixLength;break;case 33:numberOfRepeats=reader.readBits(3)+3,repeatedLength=0;break;case 34:numberOfRepeats=reader.readBits(7)+11,repeatedLength=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table")}for(j=0;j<numberOfRepeats;j++)codes.push(new HuffmanLine([i,repeatedLength,0,0])),i++}else codes.push(new HuffmanLine([i,codeLength,0,0])),i++}reader.byteAlign();var symbolIDTable=new HuffmanTable(codes,!1);let customIndex=0,tableFirstS,tableDeltaS,tableDeltaT;switch(textRegion.huffmanFS){case 0:case 1:tableFirstS=getStandardTable(textRegion.huffmanFS+6);break;case 3:tableFirstS=getCustomHuffmanTable(customIndex,referredTo,customTables),customIndex++;break;default:throw new Jbig2Error("invalid Huffman FS selector")}switch(textRegion.huffmanDS){case 0:case 1:case 2:tableDeltaS=getStandardTable(textRegion.huffmanDS+8);break;case 3:tableDeltaS=getCustomHuffmanTable(customIndex,referredTo,customTables),customIndex++;break;default:throw new Jbig2Error("invalid Huffman DS selector")}switch(textRegion.huffmanDT){case 0:case 1:case 2:tableDeltaT=getStandardTable(textRegion.huffmanDT+11);break;case 3:tableDeltaT=getCustomHuffmanTable(customIndex,referredTo,customTables),customIndex++;break;default:throw new Jbig2Error("invalid Huffman DT selector")}if(textRegion.refinement)throw new Jbig2Error("refinement with Huffman is not supported");return{symbolIDTable:symbolIDTable,tableFirstS:tableFirstS,tableDeltaS:tableDeltaS,tableDeltaT:tableDeltaT}}function getSymbolDictionaryHuffmanTables(dictionary,referredTo,customTables){let customIndex=0,tableDeltaHeight,tableDeltaWidth;switch(dictionary.huffmanDHSelector){case 0:case 1:tableDeltaHeight=getStandardTable(dictionary.huffmanDHSelector+4);break;case 3:tableDeltaHeight=getCustomHuffmanTable(customIndex,referredTo,customTables),customIndex++;break;default:throw new Jbig2Error("invalid Huffman DH selector")}switch(dictionary.huffmanDWSelector){case 0:case 1:tableDeltaWidth=getStandardTable(dictionary.huffmanDWSelector+2);break;case 3:tableDeltaWidth=getCustomHuffmanTable(customIndex,referredTo,customTables),customIndex++;break;default:throw new Jbig2Error("invalid Huffman DW selector")}let tableBitmapSize,tableAggregateInstances;return dictionary.bitmapSizeSelector?(tableBitmapSize=getCustomHuffmanTable(customIndex,referredTo,customTables),customIndex++):tableBitmapSize=getStandardTable(1),tableAggregateInstances=dictionary.aggregationInstancesSelector?getCustomHuffmanTable(customIndex,referredTo,customTables):getStandardTable(1),{tableDeltaHeight:tableDeltaHeight,tableDeltaWidth:tableDeltaWidth,tableBitmapSize:tableBitmapSize,tableAggregateInstances:tableAggregateInstances}}function readUncompressedBitmap(reader,width,height){var bitmap=[];for(let y=0;y<height;y++){var row=new Uint8Array(width);bitmap.push(row);for(let x=0;x<width;x++)row[x]=reader.readBit();reader.byteAlign()}return bitmap}function decodeMMRBitmap(input,width,height,endOfBlock){var params={K:-1,Columns:width,Rows:height,BlackIs1:!0,EndOfBlock:endOfBlock},decoder=new CCITTFaxDecoder(input,params),bitmap=[];let currentByte,eof=!1;for(let y=0;y<height;y++){var row=new Uint8Array(width);bitmap.push(row);let shift=-1;for(let x=0;x<width;x++)shift<0&&(-1===(currentByte=decoder.readNextChar())&&(currentByte=0,eof=!0),shift=7),row[x]=currentByte>>shift&1,shift--}if(endOfBlock&&!eof)for(let i=0;i<5&&-1!==decoder.readNextChar();i++);return bitmap}class Jbig2Image{parseChunks(chunks){return parseJbig2Chunks(chunks)}parse(data){throw new Error("Not implemented: Jbig2Image.parse")}}class Jbig2Stream extends DecodeStream{constructor(stream,maybeLength,params){super(maybeLength),this.stream=stream,this.dict=stream.dict,this.maybeLength=maybeLength,this.params=params}get bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(requested){}readBlock(){if(!this.eof){var globalsStream,jbig2Image=new Jbig2Image,chunks=[],data=(this.params instanceof Dict&&(globalsStream=this.params.get("JBIG2Globals"))instanceof BaseStream&&(globalsStream=globalsStream.getBytes(),chunks.push({data:globalsStream,start:0,end:globalsStream.length})),chunks.push({data:this.bytes,start:0,end:this.bytes.length}),jbig2Image.parseChunks(chunks)),dataLength=data.length;for(let i=0;i<dataLength;i++)data[i]^=255;this.buffer=data,this.bufferLength=dataLength,this.eof=!0}}}function convertToRGBA(params){switch(params.kind){case ImageKind.GRAYSCALE_1BPP:return convertBlackAndWhiteToRGBA(params);case ImageKind.RGB_24BPP:return convertRGBToRGBA(params)}return null}function convertBlackAndWhiteToRGBA({src,srcPos=0,dest,width,height,nonBlackColor=4294967295,inverseDecode=!1}){var black=FeatureTest.isLittleEndian?4278190080:255,[zeroMapping,oneMapping]=inverseDecode?[nonBlackColor,black]:[black,nonBlackColor],widthInSource=width>>3,widthRemainder=7&width,srcLength=src.length;dest=new Uint32Array(dest.buffer);let destPos=0;for(let i=0;i<height;i++){for(var max=srcPos+widthInSource;srcPos<max;srcPos++){const elem=srcPos<srcLength?src[srcPos]:255;dest[destPos++]=128&elem?oneMapping:zeroMapping,dest[destPos++]=64&elem?oneMapping:zeroMapping,dest[destPos++]=32&elem?oneMapping:zeroMapping,dest[destPos++]=16&elem?oneMapping:zeroMapping,dest[destPos++]=8&elem?oneMapping:zeroMapping,dest[destPos++]=4&elem?oneMapping:zeroMapping,dest[destPos++]=2&elem?oneMapping:zeroMapping,dest[destPos++]=1&elem?oneMapping:zeroMapping}if(0!=widthRemainder){var elem=srcPos<srcLength?src[srcPos++]:255;for(let j=0;j<widthRemainder;j++)dest[destPos++]=elem&1<<7-j?oneMapping:zeroMapping}}return{srcPos:srcPos,destPos:destPos}}function convertRGBToRGBA({src,srcPos=0,dest,destPos=0}){let i=0;var len32=src.length>>2,src32=new Uint32Array(src.buffer,srcPos,len32);if(FeatureTest.isLittleEndian){for(;i<len32-2;i+=3,destPos+=4){var s1=src32[i],s2=src32[i+1],s3=src32[i+2];dest[destPos]=4278190080|s1,dest[destPos+1]=s1>>>24|s2<<8|4278190080,dest[destPos+2]=s2>>>16|s3<<16|4278190080,dest[destPos+3]=s3>>>8|4278190080}for(let j=4*i,jj=src.length;j<jj;j+=3)dest[destPos++]=src[j]|src[j+1]<<8|src[j+2]<<16|4278190080}else{for(;i<len32-2;i+=3,destPos+=4){const s1=src32[i],s2=src32[i+1],s3=src32[i+2];dest[destPos]=255|s1,dest[destPos+1]=s1<<24|s2>>>8|255,dest[destPos+2]=s2<<16|s3>>>16|255,dest[destPos+3]=s3<<8|255}for(let j=4*i,jj=src.length;j<jj;j+=3)dest[destPos++]=src[j]<<24|src[j+1]<<16|src[j+2]<<8|255}return{srcPos:srcPos,destPos:destPos}}function grayToRGBA(src,dest){if(FeatureTest.isLittleEndian)for(let i=0,ii=src.length;i<ii;i++)dest[i]=65793*src[i]|4278190080;else for(let i=0,ii=src.length;i<ii;i++)dest[i]=16843008*src[i]|255}class JpegError extends BaseException{constructor(msg){super(msg,"JpegError")}}class DNLMarkerError extends BaseException{constructor(message,scanLines){super(message,"DNLMarkerError"),this.scanLines=scanLines}}class EOIMarkerError extends BaseException{constructor(msg){super(msg,"EOIMarkerError")}}const dctZigZag=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),dctCos1=4017,dctSin1=799,dctCos3=3406,dctSin3=2276,dctCos6=1567,dctSin6=3784,dctSqrt2=5793,dctSqrt1d2=2896;function buildHuffmanTable(codeLengths,values){let k=0,i,j,length=16;for(;0<length&&!codeLengths[length-1];)length--;var code=[{children:[],index:0}];let p=code[0],q;for(i=0;i<length;i++){for(j=0;j<codeLengths[i];j++){for((p=code.pop()).children[p.index]=values[k];0<p.index;)p=code.pop();for(p.index++,code.push(p);code.length<=i;)code.push(q={children:[],index:0}),p.children[p.index]=q.children,p=q;k++}i+1<length&&(code.push(q={children:[],index:0}),p.children[p.index]=q.children,p=q)}return code[0].children}function getBlockBufferOffset(component,row,col){return 64*((component.blocksPerLine+1)*row+col)}function decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successivePrev,successive,parseDNLMarker=!1){const mcusPerLine=frame.mcusPerLine;var progressive=frame.progressive,startOffset=offset;let bitsData=0,bitsCount=0;function readBit(){if(0<bitsCount)return bitsCount--,bitsData>>bitsCount&1;if(255===(bitsData=data[offset++])){var nextByte=data[offset++];if(nextByte){if(220===nextByte&&parseDNLMarker){var scanLines=readUint16(data,offset+=2);if(offset+=2,0<scanLines&&scanLines!==frame.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",scanLines)}else if(217===nextByte){if(parseDNLMarker){scanLines=blockRow*(8===frame.precision?8:0);if(0<scanLines&&5<=Math.round(frame.scanLines/scanLines))throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",scanLines)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError("unexpected marker "+(bitsData<<8|nextByte).toString(16))}}return bitsCount=7,bitsData>>>7}function decodeHuffman(tree){let node=tree;for(;;){switch(typeof(node=node[readBit()])){case"number":return node;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(length){let n=0;for(;0<length;)n=n<<1|readBit(),length--;return n}function receiveAndExtend(length){var n;return 1===length?1===readBit()?1:-1:1<<length-1<=(n=receive(length))?n:n+(-1<<length)+1}let eobrun=0;let successiveACState=0,successiveACNextValue;let blockRow=0;var componentsLength=components.length;let component,i,j,k,n,decodeFn,mcu=(decodeFn=progressive?0===spectralStart?0===successivePrev?function(component,blockOffset){var t=0===(t=decodeHuffman(component.huffmanTableDC))?0:receiveAndExtend(t)<<successive;component.blockData[blockOffset]=component.pred+=t}:function(component,blockOffset){component.blockData[blockOffset]|=readBit()<<successive}:0===successivePrev?function(component,blockOffset){if(0<eobrun)eobrun--;else{let k=spectralStart;for(var e=spectralEnd;k<=e;){var rs=decodeHuffman(component.huffmanTableAC),s=15&rs,rs=rs>>4;if(0==s){if(rs<15){eobrun=receive(rs)+(1<<rs)-1;break}k+=16}else{k+=rs;rs=dctZigZag[k];component.blockData[blockOffset+rs]=receiveAndExtend(s)*(1<<successive),k++}}}}:function(component,blockOffset){let k=spectralStart;var s,rs,e=spectralEnd;let r=0;for(;k<=e;){var offsetZ=blockOffset+dctZigZag[k],sign=component.blockData[offsetZ]<0?-1:1;switch(successiveACState){case 0:if(s=15&(rs=decodeHuffman(component.huffmanTableAC)),r=rs>>4,0==s)successiveACState=r<15?(eobrun=receive(r)+(1<<r),4):(r=16,1);else{if(1!=s)throw new JpegError("invalid ACn encoding");successiveACNextValue=receiveAndExtend(s),successiveACState=r?2:3}continue;case 1:case 2:component.blockData[offsetZ]?component.blockData[offsetZ]+=sign*(readBit()<<successive):0===--r&&(successiveACState=2===successiveACState?3:0);break;case 3:component.blockData[offsetZ]?component.blockData[offsetZ]+=sign*(readBit()<<successive):(component.blockData[offsetZ]=successiveACNextValue<<successive,successiveACState=0);break;case 4:component.blockData[offsetZ]&&(component.blockData[offsetZ]+=sign*(readBit()<<successive))}k++}4===successiveACState&&0===--eobrun&&(successiveACState=0)}:function(component,blockOffset){var t=0===(t=decodeHuffman(component.huffmanTableDC))?0:receiveAndExtend(t);component.blockData[blockOffset]=component.pred+=t;let k=1;for(;k<64;){var rs=decodeHuffman(component.huffmanTableAC),s=15&rs,rs=rs>>4;if(0==s){if(rs<15)break;k+=16}else{k+=rs;rs=dctZigZag[k];component.blockData[blockOffset+rs]=receiveAndExtend(s),k++}}},0),fileMarker;for(var h,v,mcuExpected=1===componentsLength?components[0].blocksPerLine*components[0].blocksPerColumn:mcusPerLine*frame.mcusPerColumn;mcu<=mcuExpected;){var mcuToRead=resetInterval?Math.min(mcuExpected-mcu,resetInterval):mcuExpected;if(0<mcuToRead){for(i=0;i<componentsLength;i++)components[i].pred=0;if(eobrun=0,1===componentsLength)for(component=components[0],n=0;n<mcuToRead;n++)!function(component,decode,mcu){blockRow=mcu/component.blocksPerLine|0,mcu%=component.blocksPerLine,decode(component,getBlockBufferOffset(component,blockRow,mcu))}(component,decodeFn,mcu),mcu++;else for(n=0;n<mcuToRead;n++){for(i=0;i<componentsLength;i++)for(h=(component=components[i]).h,v=component.v,j=0;j<v;j++)for(k=0;k<h;k++)!function(component,decode,mcu,row,col){var mcuRow=mcu/mcusPerLine|0,mcu=mcu%mcusPerLine,mcuRow=(blockRow=mcuRow*component.v+row,mcu*component.h+col);decode(component,getBlockBufferOffset(component,blockRow,mcuRow))}(component,decodeFn,mcu,j,k);mcu++}}if(bitsCount=0,!(fileMarker=findNextFileMarker(data,offset)))break;if(fileMarker.invalid&&(warn(`decodeScan - ${0<mcuToRead?"unexpected":"excessive"} MCU data, current marker is: `+fileMarker.invalid),offset=fileMarker.offset),!(65488<=fileMarker.marker&&fileMarker.marker<=65495))break;offset+=2}return offset-startOffset}function quantizeAndInverse(component,blockBufferOffset,p){var qt=component.quantizationTable,blockData=component.blockData;let v0,v1,v2,v3,v4,v5,v6,v7,p0,p1,p2,p3,p4,p5,p6,p7,t;if(!qt)throw new JpegError("missing required Quantization Table.");for(let row=0;row<64;row+=8)p0=blockData[blockBufferOffset+row],p1=blockData[blockBufferOffset+row+1],p2=blockData[blockBufferOffset+row+2],p3=blockData[blockBufferOffset+row+3],p4=blockData[blockBufferOffset+row+4],p5=blockData[blockBufferOffset+row+5],p6=blockData[blockBufferOffset+row+6],p7=blockData[blockBufferOffset+row+7],p0*=qt[row],0==(p1|p2|p3|p4|p5|p6|p7)?(t=dctSqrt2*p0+512>>10,p[row]=t,p[row+1]=t,p[row+2]=t,p[row+3]=t,p[row+4]=t,p[row+5]=t,p[row+6]=t,p[row+7]=t):(p1*=qt[row+1],p2*=qt[row+2],p3*=qt[row+3],p4*=qt[row+4],p5*=qt[row+5],p6*=qt[row+6],p7*=qt[row+7],v0=dctSqrt2*p0+128>>8,v1=dctSqrt2*p4+128>>8,v2=p2,v3=p6,v4=dctSqrt1d2*(p1-p7)+128>>8,v7=dctSqrt1d2*(p1+p7)+128>>8,v5=p3<<4,v6=p5<<4,v0=v0+v1+1>>1,v1=v0-v1,t=v2*dctSin6+v3*dctCos6+128>>8,v2=v2*dctCos6-v3*dctSin6+128>>8,v3=t,v4=v4+v6+1>>1,v6=v4-v6,v7=v7+v5+1>>1,v5=v7-v5,v0=v0+v3+1>>1,v3=v0-v3,v1=v1+v2+1>>1,v2=v1-v2,t=v4*dctSin3+v7*dctCos3+2048>>12,v4=v4*dctCos3-v7*dctSin3+2048>>12,v7=t,t=v5*dctSin1+v6*dctCos1+2048>>12,v5=v5*dctCos1-v6*dctSin1+2048>>12,v6=t,p[row]=v0+v7,p[row+7]=v0-v7,p[row+1]=v1+v6,p[row+6]=v1-v6,p[row+2]=v2+v5,p[row+5]=v2-v5,p[row+3]=v3+v4,p[row+4]=v3-v4);for(let col=0;col<8;++col)p0=p[col],p1=p[col+8],p2=p[col+16],p3=p[col+24],p4=p[col+32],p5=p[col+40],p6=p[col+48],p7=p[col+56],0==(p1|p2|p3|p4|p5|p6|p7)?(t=(t=dctSqrt2*p0+8192>>14)<-2040?0:2024<=t?255:t+2056>>4,blockData[blockBufferOffset+col]=t,blockData[blockBufferOffset+col+8]=t,blockData[blockBufferOffset+col+16]=t,blockData[blockBufferOffset+col+24]=t,blockData[blockBufferOffset+col+32]=t,blockData[blockBufferOffset+col+40]=t,blockData[blockBufferOffset+col+48]=t,blockData[blockBufferOffset+col+56]=t):(v0=dctSqrt2*p0+2048>>12,v1=dctSqrt2*p4+2048>>12,v2=p2,v3=p6,v4=dctSqrt1d2*(p1-p7)+2048>>12,v7=dctSqrt1d2*(p1+p7)+2048>>12,v5=p3,v6=p5,v0=4112+(v0+v1+1>>1),v1=v0-v1,t=v2*dctSin6+v3*dctCos6+2048>>12,v2=v2*dctCos6-v3*dctSin6+2048>>12,v3=t,v4=v4+v6+1>>1,v6=v4-v6,v7=v7+v5+1>>1,v5=v7-v5,v0=v0+v3+1>>1,v3=v0-v3,v1=v1+v2+1>>1,v2=v1-v2,t=v4*dctSin3+v7*dctCos3+2048>>12,v4=v4*dctCos3-v7*dctSin3+2048>>12,v7=t,t=v5*dctSin1+v6*dctCos1+2048>>12,v5=v5*dctCos1-v6*dctSin1+2048>>12,v6=t,p0=v0+v7,p7=v0-v7,p1=v1+v6,p6=v1-v6,p2=v2+v5,p5=v2-v5,p3=v3+v4,p4=v3-v4,p0<16?p0=0:4080<=p0?p0=255:p0>>=4,p1<16?p1=0:4080<=p1?p1=255:p1>>=4,p2<16?p2=0:4080<=p2?p2=255:p2>>=4,p3<16?p3=0:4080<=p3?p3=255:p3>>=4,p4<16?p4=0:4080<=p4?p4=255:p4>>=4,p5<16?p5=0:4080<=p5?p5=255:p5>>=4,p6<16?p6=0:4080<=p6?p6=255:p6>>=4,p7<16?p7=0:4080<=p7?p7=255:p7>>=4,blockData[blockBufferOffset+col]=p0,blockData[blockBufferOffset+col+8]=p1,blockData[blockBufferOffset+col+16]=p2,blockData[blockBufferOffset+col+24]=p3,blockData[blockBufferOffset+col+32]=p4,blockData[blockBufferOffset+col+40]=p5,blockData[blockBufferOffset+col+48]=p6,blockData[blockBufferOffset+col+56]=p7)}function buildComponentData(frame,component){var blocksPerLine=component.blocksPerLine,blocksPerColumn=component.blocksPerColumn,computationBuffer=new Int16Array(64);for(let blockRow=0;blockRow<blocksPerColumn;blockRow++)for(let blockCol=0;blockCol<blocksPerLine;blockCol++)quantizeAndInverse(component,getBlockBufferOffset(component,blockRow,blockCol),computationBuffer);return component.blockData}function findNextFileMarker(data,currentPos,startPos=currentPos){var maxPos=data.length-1;let newPos=startPos<currentPos?startPos:currentPos;if(maxPos<=currentPos)return null;startPos=readUint16(data,currentPos);if(65472<=startPos&&startPos<=65534)return{invalid:null,marker:startPos,offset:currentPos};let newMarker=readUint16(data,newPos);for(;!(65472<=newMarker&&newMarker<=65534);){if(++newPos>=maxPos)return null;newMarker=readUint16(data,newPos)}return{invalid:startPos.toString(16),marker:newMarker,offset:newPos}}class JpegImage{constructor({decodeTransform=null,colorTransform=-1}={}){this._decodeTransform=decodeTransform,this._colorTransform=colorTransform}parse(data,{dnlScanLines=null}={}){let offset=0,jfif=null,adobe=null,frame,resetInterval,numSOSMarkers=0;var quantizationTables=[],huffmanTablesAC=[],huffmanTablesDC=[];let fileMarker=readUint16(data,offset);if(offset+=2,65496!==fileMarker)throw new JpegError("SOI not found");fileMarker=readUint16(data,offset),offset+=2;markerLoop:for(;65497!==fileMarker;){let i,j,l;switch(fileMarker){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var appData=function(){var length=readUint16(data,offset);let endOffset=(offset+=2)+length-2;return(length=findNextFileMarker(data,endOffset,offset))?.invalid&&(warn("readDataBlock - incorrect length, current marker is: "+length.invalid),endOffset=length.offset),length=data.subarray(offset,endOffset),offset+=length.length,length}();65504===fileMarker&&74===appData[0]&&70===appData[1]&&73===appData[2]&&70===appData[3]&&0===appData[4]&&(jfif={version:{major:appData[5],minor:appData[6]},densityUnits:appData[7],xDensity:appData[8]<<8|appData[9],yDensity:appData[10]<<8|appData[11],thumbWidth:appData[12],thumbHeight:appData[13],thumbData:appData.subarray(14,14+3*appData[12]*appData[13])}),65518===fileMarker&&65===appData[0]&&100===appData[1]&&111===appData[2]&&98===appData[3]&&101===appData[4]&&(adobe={version:appData[5]<<8|appData[6],flags0:appData[7]<<8|appData[8],flags1:appData[9]<<8|appData[10],transformCode:appData[11]});break;case 65499:var quantizationTablesEnd=readUint16(data,offset)+(offset+=2)-2;let z;for(;offset<quantizationTablesEnd;){var quantizationTableSpec=data[offset++],tableData=new Uint16Array(64);if(quantizationTableSpec>>4==0)for(j=0;j<64;j++)tableData[z=dctZigZag[j]]=data[offset++];else{if(quantizationTableSpec>>4!=1)throw new JpegError("DQT - invalid table spec");for(j=0;j<64;j++)tableData[z=dctZigZag[j]]=readUint16(data,offset),offset+=2}quantizationTables[15&quantizationTableSpec]=tableData}break;case 65472:case 65473:case 65474:if(frame)throw new JpegError("Only single frame JPEGs supported");offset+=2,(frame={}).extended=65473===fileMarker,frame.progressive=65474===fileMarker,frame.precision=data[offset++];var appData=readUint16(data,offset),componentsCount=(offset+=2,frame.scanLines=dnlScanLines||appData,frame.samplesPerLine=readUint16(data,offset),offset+=2,frame.components=[],frame.componentIds={},data[offset++]);let maxH=0,maxV=0;for(i=0;i<componentsCount;i++){var componentId=data[offset],h=data[offset+1]>>4,v=15&data[offset+1],qId=(maxH<h&&(maxH=h),maxV<v&&(maxV=v),data[offset+2]);l=frame.components.push({h:h,v:v,quantizationId:qId,quantizationTable:null}),frame.componentIds[componentId]=l-1,offset+=3}frame.maxH=maxH,frame.maxV=maxV,!function(frame){var mcusPerLine=Math.ceil(frame.samplesPerLine/8/frame.maxH),mcusPerColumn=Math.ceil(frame.scanLines/8/frame.maxV);for(const component of frame.components){var blocksPerLine=Math.ceil(Math.ceil(frame.samplesPerLine/8)*component.h/frame.maxH),blocksPerColumn=Math.ceil(Math.ceil(frame.scanLines/8)*component.v/frame.maxV),blocksPerLineForMcu=mcusPerLine*component.h,blocksPerColumnForMcu=mcusPerColumn*component.v;component.blockData=new Int16Array(64*blocksPerColumnForMcu*(1+blocksPerLineForMcu)),component.blocksPerLine=blocksPerLine,component.blocksPerColumn=blocksPerColumn}frame.mcusPerLine=mcusPerLine,frame.mcusPerColumn=mcusPerColumn}(frame);break;case 65476:var huffmanLength=readUint16(data,offset);for(offset+=2,i=2;i<huffmanLength;){var huffmanTableSpec=data[offset++],codeLengths=new Uint8Array(16);let codeLengthSum=0;for(j=0;j<16;j++,offset++)codeLengthSum+=codeLengths[j]=data[offset];var huffmanValues=new Uint8Array(codeLengthSum);for(j=0;j<codeLengthSum;j++,offset++)huffmanValues[j]=data[offset];i+=17+codeLengthSum,(huffmanTableSpec>>4==0?huffmanTablesDC:huffmanTablesAC)[15&huffmanTableSpec]=buildHuffmanTable(codeLengths,huffmanValues)}break;case 65501:offset+=2,resetInterval=readUint16(data,offset),offset+=2;break;case 65498:var parseDNLMarker=1==++numSOSMarkers&&!dnlScanLines,selectorsCount=(offset+=2,data[offset++]),components=[];for(i=0;i<selectorsCount;i++){var index=data[offset++],componentIndex=frame.componentIds[index],componentIndex=frame.components[componentIndex],index=(componentIndex.index=index,data[offset++]);componentIndex.huffmanTableDC=huffmanTablesDC[index>>4],componentIndex.huffmanTableAC=huffmanTablesAC[15&index],components.push(componentIndex)}var spectralStart=data[offset++],spectralEnd=data[offset++],successiveApproximation=data[offset++];try{var processed=decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successiveApproximation>>4,15&successiveApproximation,parseDNLMarker);offset+=processed}catch(ex){if(ex instanceof DNLMarkerError)return warn(ex.message+" -- attempting to re-parse the JPEG image."),this.parse(data,{dnlScanLines:ex.scanLines});if(ex instanceof EOIMarkerError){warn(ex.message+" -- ignoring the rest of the image data.");break markerLoop}throw ex}break;case 65500:offset+=4;break;case 65535:255!==data[offset]&&offset--;break;default:spectralStart=findNextFileMarker(data,offset-2,offset-3);if(spectralStart?.invalid){warn("JpegImage.parse - unexpected data, current marker is: "+spectralStart.invalid),offset=spectralStart.offset;break}if(!spectralStart||offset>=data.length-1){warn("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break markerLoop}throw new JpegError("JpegImage.parse - unknown marker: "+fileMarker.toString(16))}fileMarker=readUint16(data,offset),offset+=2}if(!frame)throw new JpegError("JpegImage.parse - no frame data found.");this.width=frame.samplesPerLine,this.height=frame.scanLines,this.jfif=jfif,this.adobe=adobe,this.components=[];for(const component of frame.components){var quantizationTable=quantizationTables[component.quantizationId];quantizationTable&&(component.quantizationTable=quantizationTable),this.components.push({index:component.index,output:buildComponentData(frame,component),scaleX:component.h/frame.maxH,scaleY:component.v/frame.maxV,blocksPerLine:component.blocksPerLine,blocksPerColumn:component.blocksPerColumn})}this.numComponents=this.components.length}_getLinearizedBlockData(width,height,isSourcePDF=!1){var component,componentScaleX,componentScaleY,blocksPerScanline,index,output,scaleX=this.width/width,scaleY=this.height/height;let x,y,i,j,k,offset=0;var numComponents=this.components.length,dataLength=width*height*numComponents,data=new Uint8ClampedArray(dataLength),xScaleBlockOffset=new Uint32Array(width);let lastComponentScaleX;for(i=0;i<numComponents;i++){if(componentScaleX=(component=this.components[i]).scaleX*scaleX,componentScaleY=component.scaleY*scaleY,offset=i,output=component.output,blocksPerScanline=component.blocksPerLine+1<<3,componentScaleX!==lastComponentScaleX){for(x=0;x<width;x++)j=0|x*componentScaleX,xScaleBlockOffset[x]=(4294967288&j)<<3|7&j;lastComponentScaleX=componentScaleX}for(y=0;y<height;y++)for(index=blocksPerScanline*(4294967288&(j=0|y*componentScaleY))|(7&j)<<3,x=0;x<width;x++)data[offset]=output[index+xScaleBlockOffset[x]],offset+=numComponents}let transform=this._decodeTransform;if(transform=isSourcePDF||4!==numComponents?transform:transform||new Int32Array([-256,255,-256,255,-256,255,-256,255]))for(i=0;i<dataLength;)for(j=0,k=0;j<numComponents;j++,i++,k+=2)data[i]=(data[i]*transform[k]>>8)+transform[k+1];return data}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(data){var Y,Cb,Cr;for(let i=0,length=data.length;i<length;i+=3)Y=data[i],Cb=data[i+1],Cr=data[i+2],data[i]=Y-179.456+1.402*Cr,data[i+1]=Y+135.459-.344*Cb-.714*Cr,data[i+2]=Y-226.816+1.772*Cb;return data}_convertYccToRgba(data,out){for(let i=0,j=0,length=data.length;i<length;i+=3,j+=4){var Y=data[i],Cb=data[i+1],Cr=data[i+2];out[j]=Y-179.456+1.402*Cr,out[j+1]=Y+135.459-.344*Cb-.714*Cr,out[j+2]=Y-226.816+1.772*Cb,out[j+3]=255}return out}_convertYcckToRgb(data){var Y,Cb,Cr,k;let offset=0;for(let i=0,length=data.length;i<length;i+=4)Y=data[i],Cb=data[i+1],Cr=data[i+2],k=data[i+3],data[offset++]=Cb*(-660635669420364e-19*Cb+.000437130475926232*Cr-54080610064599e-18*Y+.00048449797120281*k-.154362151871126)-122.67195406894+Cr*(-.000957964378445773*Cr+.000817076911346625*Y-.00477271405408747*k+1.53380253221734)+Y*(.000961250184130688*Y-.00266257332283933*k+.48357088451265)+k*(-.000336197177618394*k+.484791561490776),data[offset++]=107.268039397724+Cb*(219927104525741e-19*Cb-.000640992018297945*Cr+.000659397001245577*Y+.000426105652938837*k-.176491792462875)+Cr*(-.000778269941513683*Cr+.00130872261408275*Y+.000770482631801132*k-.151051492775562)+Y*(.00126935368114843*Y-.00265090189010898*k+.25802910206845)+k*(-.000318913117588328*k-.213742400323665),data[offset++]=Cb*(-.000570115196973677*Cb-263409051004589e-19*Cr+.0020741088115012*Y-.00288260236853442*k+.814272968359295)-20.810012546947+Cr*(-153496057440975e-19*Cr-.000132689043961446*Y+.000560833691242812*k-.195152027534049)+Y*(.00174418132927582*Y-.00255243321439347*k+.116935020465145)+k*(-.000343531996510555*k+.24165260232407);return data.subarray(0,offset)}_convertYcckToRgba(data){for(let i=0,length=data.length;i<length;i+=4){var Y=data[i],Cb=data[i+1],Cr=data[i+2],k=data[i+3];data[i]=Cb*(-660635669420364e-19*Cb+.000437130475926232*Cr-54080610064599e-18*Y+.00048449797120281*k-.154362151871126)-122.67195406894+Cr*(-.000957964378445773*Cr+.000817076911346625*Y-.00477271405408747*k+1.53380253221734)+Y*(.000961250184130688*Y-.00266257332283933*k+.48357088451265)+k*(-.000336197177618394*k+.484791561490776),data[i+1]=107.268039397724+Cb*(219927104525741e-19*Cb-.000640992018297945*Cr+.000659397001245577*Y+.000426105652938837*k-.176491792462875)+Cr*(-.000778269941513683*Cr+.00130872261408275*Y+.000770482631801132*k-.151051492775562)+Y*(.00126935368114843*Y-.00265090189010898*k+.25802910206845)+k*(-.000318913117588328*k-.213742400323665),data[i+2]=Cb*(-.000570115196973677*Cb-263409051004589e-19*Cr+.0020741088115012*Y-.00288260236853442*k+.814272968359295)-20.810012546947+Cr*(-153496057440975e-19*Cr-.000132689043961446*Y+.000560833691242812*k-.195152027534049)+Y*(.00174418132927582*Y-.00255243321439347*k+.116935020465145)+k*(-.000343531996510555*k+.24165260232407),data[i+3]=255}return data}_convertYcckToCmyk(data){var Y,Cb,Cr;for(let i=0,length=data.length;i<length;i+=4)Y=data[i],Cb=data[i+1],Cr=data[i+2],data[i]=434.456-Y-1.402*Cr,data[i+1]=119.541-Y+.344*Cb+.714*Cr,data[i+2]=481.816-Y-1.772*Cb;return data}_convertCmykToRgb(data){var c,m,y,k;let offset=0;for(let i=0,length=data.length;i<length;i+=4)c=data[i],m=data[i+1],y=data[i+2],k=data[i+3],data[offset++]=255+c*(-6747147073602441e-20*c+.0008379262121013727*m+.0002894718188643294*y+.003264231057537806*k-1.1185611867203937)+m*(26374107616089405e-21*m-8626949158638572e-20*y-.0002748769067499491*k-.02155688794978967)+y*(-3878099212869363e-20*y-.0003267808279485286*k+.0686742238595345)-k*(.0003361971776183937*k+.7430659151342254),data[offset++]=255+c*(.00013596372813588848*c+.000924537132573585*m+.00010567359618683593*y+.0004791864687436512*k-.3109689587515875)+m*(-.00023545346108370344*m+.0002702845253534714*y+.0020200308977307156*k-.7488052167015494)+y*(6834815998235662e-20*y+.00015168452363460973*k-.09751927774728933)-k*(.0003189131175883281*k+.7364883807733168),data[offset++]=255+c*(13598650411385307e-21*c+.00012423956175490851*m+.0004751985097583589*y-36729317476630422e-22*k-.05562186980264034)+m*(.00016141380598724676*m+.0009692239130725186*y+.0007782692450036253*k-.44015232367526463)+y*(5.068882914068769e-7*y+.0017778369011375071*k-.7591454649749609)-k*(.0003435319965105553*k+.7063770186160144);return data.subarray(0,offset)}_convertCmykToRgba(data){for(let i=0,length=data.length;i<length;i+=4){var c=data[i],m=data[i+1],y=data[i+2],k=data[i+3];data[i]=255+c*(-6747147073602441e-20*c+.0008379262121013727*m+.0002894718188643294*y+.003264231057537806*k-1.1185611867203937)+m*(26374107616089405e-21*m-8626949158638572e-20*y-.0002748769067499491*k-.02155688794978967)+y*(-3878099212869363e-20*y-.0003267808279485286*k+.0686742238595345)-k*(.0003361971776183937*k+.7430659151342254),data[i+1]=255+c*(.00013596372813588848*c+.000924537132573585*m+.00010567359618683593*y+.0004791864687436512*k-.3109689587515875)+m*(-.00023545346108370344*m+.0002702845253534714*y+.0020200308977307156*k-.7488052167015494)+y*(6834815998235662e-20*y+.00015168452363460973*k-.09751927774728933)-k*(.0003189131175883281*k+.7364883807733168),data[i+2]=255+c*(13598650411385307e-21*c+.00012423956175490851*m+.0004751985097583589*y-36729317476630422e-22*k-.05562186980264034)+m*(.00016141380598724676*m+.0009692239130725186*y+.0007782692450036253*k-.44015232367526463)+y*(5.068882914068769e-7*y+.0017778369011375071*k-.7591454649749609)-k*(.0003435319965105553*k+.7063770186160144),data[i+3]=255}return data}getData({width,height,forceRGBA=!1,forceRGB=!1,isSourcePDF=!1}){if(4<this.numComponents)throw new JpegError("Unsupported color mode");width=this._getLinearizedBlockData(width,height,isSourcePDF);if(1===this.numComponents&&(forceRGBA||forceRGB)){var height=width.length*(forceRGBA?4:3),rgbaData=new Uint8ClampedArray(height);let offset=0;if(forceRGBA)grayToRGBA(width,new Uint32Array(rgbaData.buffer));else for(const grayColor of width)rgbaData[offset++]=grayColor,rgbaData[offset++]=grayColor,rgbaData[offset++]=grayColor;return rgbaData}if(3===this.numComponents&&this._isColorConversionNeeded){if(forceRGBA){const rgbaData=new Uint8ClampedArray(width.length/3*4);return this._convertYccToRgba(width,rgbaData)}return this._convertYccToRgb(width)}if(4===this.numComponents){if(this._isColorConversionNeeded)return forceRGBA?this._convertYcckToRgba(width):forceRGB?this._convertYcckToRgb(width):this._convertYcckToCmyk(width);if(forceRGBA)return this._convertCmykToRgba(width);if(forceRGB)return this._convertCmykToRgb(width)}return width}}class JpegStream extends DecodeStream{constructor(stream,maybeLength,params){for(var ch;-1!==(ch=stream.getByte());)if(255===ch){stream.skip(-1);break}super(maybeLength),this.stream=stream,this.dict=stream.dict,this.maybeLength=maybeLength,this.params=params}get bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(requested){}readBlock(){if(!this.eof){var jpegOptions={decodeTransform:void 0,colorTransform:void 0},decodeArr=this.dict.getArray("D","Decode");if((this.forceRGBA||this.forceRGB)&&Array.isArray(decodeArr)){var bitsPerComponent=this.dict.get("BPC","BitsPerComponent")||8,decodeArrLength=decodeArr.length,transform=new Int32Array(decodeArrLength);let transformNeeded=!1;var maxValue=(1<<bitsPerComponent)-1;for(let i=0;i<decodeArrLength;i+=2)transform[i]=256*(decodeArr[i+1]-decodeArr[i])|0,transform[i+1]=decodeArr[i]*maxValue|0,256===transform[i]&&0===transform[i+1]||(transformNeeded=!0);transformNeeded&&(jpegOptions.decodeTransform=transform)}this.params instanceof Dict&&(bitsPerComponent=this.params.get("ColorTransform"),Number.isInteger(bitsPerComponent))&&(jpegOptions.colorTransform=bitsPerComponent);bitsPerComponent=new JpegImage(jpegOptions),jpegOptions=(bitsPerComponent.parse(this.bytes),bitsPerComponent.getData({width:this.drawWidth,height:this.drawHeight,forceRGBA:this.forceRGBA,forceRGB:this.forceRGB,isSourcePDF:!0}));this.buffer=jpegOptions,this.bufferLength=jpegOptions.length,this.eof=!0}}}var OpenJPEG=(()=>{var _scriptDir="file:///home/timvandermeij/Documenten/Ontwikkeling/pdf.js/Code/external/openjpeg/openjpeg.js";return function(moduleArg={}){var readyPromiseResolve,readyPromiseReject,readBinary,wasmBinary,wasmMemory,Module=moduleArg,moduleOverrides=(new Promise((resolve,reject)=>{readyPromiseResolve=resolve,readyPromiseReject=reject}),Module.decode=function(bytes,ignoreColorSpace){var size=bytes.length,ptr=Module._malloc(size),bytes=(Module.HEAPU8.set(bytes,ptr),Module._jp2_decode(ptr,size,ignoreColorSpace?1:0));return Module._free(ptr),bytes?(size=Module["errorMessages"],size?(delete Module.errorMessages,size):"Unknown error"):(ignoreColorSpace=Module["imageData"],Module.imageData=null,ignoreColorSpace)},Object.assign({},Module)),thisProgram="./this.program",scriptDirectory="",out=("undefined"!=typeof document&&document.currentScript&&(scriptDirectory=document.currentScript.src),scriptDirectory=(scriptDirectory=_scriptDir).startsWith("blob:")?"":scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1),Module.print||console.log.bind(console)),err=Module.printErr||console.error.bind(console);function tryParseAsDataURI(filename){if((filename=>filename.startsWith(dataURIPrefix))(filename)){for(var filename=filename.slice(dataURIPrefix.length),decoded=atob(filename),bytes=new Uint8Array(decoded.length),i=0;i<decoded.length;++i)bytes[i]=decoded.charCodeAt(i);return bytes}}Object.assign(Module,moduleOverrides),Module.arguments&&Module.arguments,Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&Module.quit,Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var HEAP8,HEAPU8,HEAPU32,ABORT=!1;function updateMemoryViews(){var b=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(b),Module.HEAP16=new Int16Array(b),Module.HEAPU8=HEAPU8=new Uint8Array(b),Module.HEAPU16=new Uint16Array(b),Module.HEAP32=new Int32Array(b),Module.HEAPU32=HEAPU32=new Uint32Array(b),Module.HEAPF32=new Float32Array(b),Module.HEAPF64=new Float64Array(b)}var __ATPRERUN__=[],__ATINIT__=[],__ATPOSTRUN__=[];function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)cb=Module.preRun.shift(),__ATPRERUN__.unshift(cb);var cb;callRuntimeCallbacks(__ATPRERUN__)}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)cb=Module.postRun.shift(),__ATPOSTRUN__.unshift(cb);var cb;callRuntimeCallbacks(__ATPOSTRUN__)}var runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;var dataURIPrefix="data:application/octet-stream;base64,";function instantiateSync(file,info){file=function(file){if(file==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);var binary=tryParseAsDataURI(file);if(binary)return binary;if(readBinary)return readBinary(file);throw'sync fetching of the wasm failed: you can preload it to Module["wasmBinary"] manually, or emcc.py will do that for you when generating HTML (but not JS)'}(file),file=new WebAssembly.Module(file);return[new WebAssembly.Instance(file,info),file]}var wasmBinaryFile="data:application/octet-stream;base64,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AkAgFSAYIA1BAnRqQRBJckUEQANAIAEgAEECdCIEaiAEIAVq/QACAP0LAgAgAEEEaiIAIBNHDQALIBMiBCAIRg0BCyAEIQAgEQRAA0AgASAAIAJsQQJ0aiAFIABBAnRqKAIANgIAIABBAWohACAGQQFqIgYgEUcNAAsLIAQgCGtBfEsNAANAIAEgACACbEECdGogBSAAQQJ0aigCADYCACABIABBAWoiBCACbEECdGogBSAEQQJ0aigCADYCACABIABBAmoiBCACbEECdGogBSAEQQJ0aigCADYCACABIABBA2oiBCACbEECdGogBSAEQQJ0aigCADYCACAAQQRqIgAgCEcNAAsLIAFBBGohASANQQFqIg0gA0cNAAsMAQsCQAJAAkAgCEEBaw4CAAECCyADQQBMDQJBACECAkAgA0EESQRAIAEhAAwBCyABIANB/P///wdxIgJBAnRqIQADQCABIAZBAnRqIgQgBP0AAgAiIf0bAEECbf0RICH9GwFBAm39HAEgIf0bAkECbf0cAiAh/RsDQQJt/RwD/QsCACAGQQRqIgYgAkcNAAsgAiADRg0DCwNAIAAgACgCAEECbTYCACAAQQRqIQAgAkEBaiICIANHDQALDAILIANBAEwNASAAKAIAIQkgAiAKbEECdCEHA0AgCSABKAIAIAEgB2oiBCgCAEEBakEBdWsiADYCBCAJIAAgBCgCAGoiADYCACABIAA2AgAgASACQQJ0aiAJKAIENgIAIAFBBGohASAGQQFqIgYgA0cNAAsMAQsgCEEDSA0AIANBAEwNACAAKAIAIgUgCCAIQQFxIhRFIgZrQQRrIglBAXYiC0ECdCIHIAEgA0ECdCIAampJIAUgC0EDdGpBDGoiBCABQQRqS3EgBUEEaiAAIAEgCkECdGoiAGogB2pBCGpJIABBCGogBElxciEVIAJBAUcgCEEESXIhFiACQQFGIAlBBUtxIRcgCEH8////B3EhECAIQQNxIREgASAFayEYIAUgCEECdGpBBGshGSAFIAhBAmsiAEECdGohGiALQQFqIhJBfHEiDEEBciETIAxBAXRBAXIhCyACIApsQQJ0IRsgACAGa0ECSSEcIAhBAXZBAWsgAmxBAnQhHQNAIAUgASgCACABIBtqIg8gAkECdGooAgAiCSAPKAIAIgBqQQJqQQJ1ayIHIABqNgIA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aCk9AAkJCSBzdGVwc2l6ZXMgKG0sZSk9AC4AKG51bGwpACglZCwlZCkgACVzfQoACQkgfQoAW0RFVl0gRHVtcCBhbiBpbWFnZV9jb21wX2hlYWRlciBzdHJ1Y3QgewoAW0RFVl0gRHVtcCBhbiBpbWFnZV9oZWFkZXIgc3RydWN0IHsKAEltYWdlIGluZm8gewoACSBkZWZhdWx0IHRpbGUgewoAJXMJIGNvbXBvbmVudCAlZCB7CgAJCSBjb21wICVkIHsKAAkgVGlsZSBpbmRleDogewoACSBNYXJrZXIgbGlzdDogewoAQ29kZXN0cmVhbSBpbmRleCBmcm9tIG1haW4gaGVhZGVyOiB7CgBDb2Rlc3RyZWFtIGluZm8gZnJvbSBtYWluIGhlYWRlcjogewoAU3RyZWFtIGVycm9yIHdoaWxlIHJlYWRpbmcgSlAyIEhlYWRlciBib3gKAEZvdW5kIGEgbWlzcGxhY2VkICclYyVjJWMlYycgYm94IG91dHNpZGUganAyaCBib3gKAE1hbGZvcm1lZCBKUDIgZmlsZSBmb3JtYXQ6IGZpcnN0IGJveCBtdXN0IGJlIEpQRUcgMjAwMCBzaWduYXR1cmUgYm94CgBNYWxmb3JtZWQgSlAyIGZpbGUgZm9ybWF0OiBzZWNvbmQgYm94IG11c3QgYmUgZmlsZSB0eXBlIGJveAoATm90IGVub3VnaCBtZW1vcnkgdG8gaGFuZGxlIGpwZWcyMDAwIGJveAoATm90IGVub3VnaCBtZW1vcnkgd2l0aCBGVFlQIEJveAoAQSBtYXJrZXIgSUQgd2FzIGV4cGVjdGVkICgweGZmLS0pIGluc3RlYWQgb2YgJS44eAoACQkgbWN0PSV4CgAJCQkgY2Jsa3N0eT0lI3gKAAkJCSBjc3R5PSUjeAoACQkgcHJnPSUjeAoASW50ZWdlciBvdmVyZmxvdwoACSB0ZHg9JXUsIHRkeT0ldQoACSB0dz0ldSwgdGg9JXUKAAkgdHgwPSV1LCB0eTA9JXUKAEludmFsaWQgY29tcG9uZW50IGluZGV4OiAldQoAU3RyZWFtIHRvbyBzaG9ydAoATWFya2VyIGhhbmRsZXIgZnVuY3Rpb24gZmFpbGVkIHRvIHJlYWQgdGhlIG1hcmtlciBzZWdtZW50CgBOb3QgZW5vdWdoIG1lbW9yeSBmb3IgY3VycmVudCBwcmVjaW5jdCBjb2RlYmxvY2sgZWxlbWVudAoARXJyb3IgcmVhZGluZyBTUENvZCBTUENvYyBlbGVtZW50CgBFcnJvciByZWFkaW5nIFNRY2Qgb3IgU1FjYyBlbGVtZW50CgBBIEJQQ0MgaGVhZGVyIGJveCBpcyBhdmFpbGFibGUgYWx0aG91Z2ggQlBDIGdpdmVuIGJ5IHRoZSBJSERSIGJveCAoJWQpIGluZGljYXRlIGNvbXBvbmVudHMgYml0IGRlcHRoIGlzIGNvbnN0YW50CgBFcnJvciB3aXRoIFNJWiBtYXJrZXI6IGlsbGVnYWwgdGlsZSBvZmZzZXQKAEludmFsaWQgcHJlY2luY3QKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIGhhbmRsZSBiYW5kIHByZWNpbnRzCgBGYWlsZWQgdG8gZGVjb2RlIGFsbCB1c2VkIGNvbXBvbmVudHMKAFNpemUgb2YgY29kZSBibG9jayBkYXRhIGV4Y2VlZHMgc3lzdGVtIGxpbWl0cwoAU2l6ZSBvZiB0aWxlIGRhdGEgZXhjZWVkcyBzeXN0ZW0gbGltaXRzCgBDYW5ub3QgdGFrZSBpbiBjaGFyZ2UgbXVsdGlwbGUgTUNUIG1hcmtlcnMKAENvcnJ1cHRlZCBQUE0gbWFya2VycwoATm90IGVub3VnaCBtZW1vcnkgZm9yIHRpbGUgcmVzb2x1dGlvbnMKAENhbm5vdCB0YWtlIGluIGNoYXJnZSBtdWx0aXBsZSBjb2xsZWN0aW9ucwoASW52YWxpZCBQQ0xSIGJveC4gUmVwb3J0cyAwIHBhbGV0dGUgY29sdW1ucwoAV2UgZG8gbm90IHN1cHBvcnQgUk9JIGluIGRlY29kaW5nIEhUIGNvZGVibG9ja3MKAENhbm5vdCBoYW5kbGUgYm94IG9mIHVuZGVmaW5lZCBzaXplcwoAQ2Fubm90IHRha2UgaW4gY2hhcmdlIGNvbGxlY3Rpb25zIHdpdGhvdXQgc2FtZSBudW1iZXIgb2YgaW5kaXhlcwoASW52YWxpZCB0aWxlYy0+d2luX3h4eCB2YWx1ZXMKAENhbm5vdCBoYW5kbGUgYm94IG9mIGxlc3MgdGhhbiA4IGJ5dGVzCgBDYW5ub3QgaGFuZGxlIFhMIGJveCBvZiBsZXNzIHRoYW4gMTYgYnl0ZXMKAENvbXBvbmVudCBpbmRleCAldSB1c2VkIHNldmVyYWwgdGltZXMKAEludmFsaWQgUENMUiBib3guIFJlcG9ydHMgJWQgZW50cmllcwoATm90IGVub3VnaCBtZW1vcnkgdG8gY3JlYXRlIFRhZy10cmVlIG5vZGVzCgBDYW5ub3QgdGFrZSBpbiBjaGFyZ2UgbWN0IGRhdGEgd2l0aGluIG11bHRpcGxlIE1DVCByZWNvcmRzCgBDYW5ub3QgZGVjb2RlIHRpbGUsIG1lbW9yeSBlcnJvcgoAb3BqX2oya19hcHBseV9uYl90aWxlX3BhcnRzX2NvcnJlY3Rpb24gZXJyb3IKAFByb2JsZW0gd2l0aCBza2lwcGluZyBKUEVHMjAwMCBib3gsIHN0cmVhbSBlcnJvcgoAUHJvYmxlbSB3aXRoIHJlYWRpbmcgSlBFRzIwMDAgYm94LCBzdHJlYW0gZXJyb3IKAFVua25vd24gbWFya2VyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBhZGQgdGwgbWFya2VyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBhZGQgbWggbWFya2VyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byB0YWtlIGluIGNoYXJnZSBTSVogbWFya2VyCgBFcnJvciByZWFkaW5nIFBQVCBtYXJrZXIKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlYWQgUFBUIG1hcmtlcgoARXJyb3IgcmVhZGluZyBTT1QgbWFya2VyCgBFcnJvciByZWFkaW5nIFBMVCBtYXJrZXIKAEVycm9yIHJlYWRpbmcgTUNUIG1hcmtlcgoATm90IGVub3VnaCBtZW1vcnkgdG8gcmVhZCBNQ1QgbWFya2VyCgBOb3QgZW5vdWdoIHNwYWNlIGZvciBleHBlY3RlZCBTT1AgbWFya2VyCgBFeHBlY3RlZCBTT1AgbWFya2VyCgBFcnJvciByZWFkaW5nIE1DTyBtYXJrZXIKAEVycm9yIHJlYWRpbmcgUkdOIG1hcmtlcgoARXJyb3IgcmVhZGluZyBQUE0gbWFya2VyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byByZWFkIFBQTSBtYXJrZXIKAEVycm9yIHJlYWRpbmcgVExNIG1hcmtlcgoARXJyb3IgcmVhZGluZyBQTE0gbWFya2VyCgBOb3QgZW5vdWdoIHNwYWNlIGZvciBleHBlY3RlZCBFUEggbWFya2VyCgBFeHBlY3RlZCBFUEggbWFya2VyCgBFcnJvciByZWFkaW5nIENSRyBtYXJrZXIKAFVua25vd24gcHJvZ3Jlc3Npb24gb3JkZXIgaW4gQ09EIG1hcmtlcgoAVW5rbm93biBTY29kIHZhbHVlIGluIENPRCBtYXJrZXIKAEVycm9yIHJlYWRpbmcgQ09EIG1hcmtlcgoARXJyb3IgcmVhZGluZyBRQ0QgbWFya2VyCgBDcnJvciByZWFkaW5nIENCRCBtYXJrZXIKAEVycm9yIHJlYWRpbmcgUE9DIG1hcmtlcgoARXJyb3IgcmVhZGluZyBDT0MgbWFya2VyCgBFcnJvciByZWFkaW5nIFFDQyBtYXJrZXIKAEVycm9yIHJlYWRpbmcgTUNDIG1hcmtlcgoATm90IGVub3VnaCBtZW1vcnkgdG8gcmVhZCBNQ0MgbWFya2VyCgByZXF1aXJlZCBTSVogbWFya2VyIG5vdCBmb3VuZCBpbiBtYWluIGhlYWRlcgoAcmVxdWlyZWQgQ09EIG1hcmtlciBub3QgZm91bmQgaW4gbWFpbiBoZWFkZXIKAHJlcXVpcmVkIFFDRCBtYXJrZXIgbm90IGZvdW5kIGluIG1haW4gaGVhZGVyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBoYW5kbGUganBlZzIwMDAgZmlsZSBoZWFkZXIKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlYWQgaGVhZGVyCgBFcnJvciB3aXRoIEpQIFNpZ25hdHVyZSA6IGJhZCBtYWdpYyBudW1iZXIKAEluIFNPVCBtYXJrZXIsIFRQU290ICglZCkgaXMgbm90IHZhbGlkIHJlZ2FyZHMgdG8gdGhlIGN1cnJlbnQgbnVtYmVyIG9mIHRpbGUtcGFydCAoJWQpLCBnaXZpbmcgdXAKAEluIFNPVCBtYXJrZXIsIFRQU290ICglZCkgaXMgbm90IHZhbGlkIHJlZ2FyZHMgdG8gdGhlIHByZXZpb3VzIG51bWJlciBvZiB0aWxlLXBhcnQgKCVkKSwgZ2l2aW5nIHVwCgBJbiBTT1QgbWFya2VyLCBUUFNvdCAoJWQpIGlzIG5vdCB2YWxpZCByZWdhcmRzIHRvIHRoZSBjdXJyZW50IG51bWJlciBvZiB0aWxlLXBhcnQgKGhlYWRlcikgKCVkKSwgZ2l2aW5nIHVwCgB0aWxlcyByZXF1aXJlIGF0IGxlYXN0IG9uZSByZXNvbHV0aW9uCgBNYXJrZXIgaXMgbm90IGNvbXBsaWFudCB3aXRoIGl0cyBwb3NpdGlvbgoAUHJvYmxlbSB3aXRoIHNlZWsgZnVuY3Rpb24KAEVycm9yIHJlYWRpbmcgU1BDb2QgU1BDb2MgZWxlbWVudCwgSW52YWxpZCBjYmxrdy9jYmxraCBjb21iaW5hdGlvbgoASW52YWxpZCBtdWx0aXBsZSBjb21wb25lbnQgdHJhbnNmb3JtYXRpb24KAENhbm5vdCB0YWtlIGluIGNoYXJnZSBjb2xsZWN0aW9ucyBvdGhlciB0aGFuIGFycmF5IGRlY29ycmVsYXRpb24KAFRvbyBsYXJnZSB2YWx1ZSBmb3IgTnBwbQoATm90IGVub3VnaCBieXRlcyB0byByZWFkIE5wcG0KAGJhZCBwbGFjZWQganBlZyBjb2Rlc3RyZWFtCgAJIE1haW4gaGVhZGVyIHN0YXJ0IHBvc2l0aW9uPSVsbGkKCSBNYWluIGhlYWRlciBlbmQgcG9zaXRpb249JWxsaQoATWFya2VyIHNpemUgaW5jb25zaXN0ZW50IHdpdGggc3RyZWFtIGxlbmd0aAoAVGlsZSBwYXJ0IGxlbmd0aCBzaXplIGluY29uc2lzdGVudCB3aXRoIHN0cmVhbSBsZW5ndGgKAENhbm5vdCB0YWtlIGluIGNoYXJnZSBtdWx0aXBsZSBkYXRhIHNwYW5uaW5nCgBXcm9uZyBmbGFnCgBFcnJvciB3aXRoIEZUWVAgc2lnbmF0dXJlIEJveCBzaXplCgBFcnJvciB3aXRoIEpQIHNpZ25hdHVyZSBCb3ggc2l6ZQoASW52YWxpZCBwcmVjaW5jdCBzaXplCgBJbmNvbnNpc3RlbnQgbWFya2VyIHNpemUKAEludmFsaWQgbWFya2VyIHNpemUKAEVycm9yIHdpdGggU0laIG1hcmtlciBzaXplCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBhZGQgYSBuZXcgdmFsaWRhdGlvbiBwcm9jZWR1cmUKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIGRlY29kZSB0aWxlCgBGYWlsZWQgdG8gZGVjb2RlIHRoZSBjb2Rlc3RyZWFtIGluIHRoZSBKUDIgZmlsZQoAQ2Fubm90IHRha2UgaW4gY2hhcmdlIGNvbGxlY3Rpb25zIHdpdGggaW5kaXggc2h1ZmZsZQoAQ2Fubm90IGFsbG9jYXRlIFRpZXIgMSBoYW5kbGUKAE5vIGRlY29kZWQgYXJlYSBwYXJhbWV0ZXJzLCBzZXQgdGhlIGRlY29kZWQgYXJlYSB0byB0aGUgd2hvbGUgaW1hZ2UKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIGNyZWF0ZSBUYWctdHJlZQoATm90IGVub3VnaCBtZW1vcnkgdG8gcmVpbml0aWFsaXplIHRoZSB0YWcgdHJlZQoARXJyb3IgcmVhZGluZyBTUENvZCBTUENvYyBlbGVtZW50LCBJbnZhbGlkIHRyYW5zZm9ybWF0aW9uIGZvdW5kCgBFcnJvciByZWFkaW5nIFNQQ29kIFNQQ29jIGVsZW1lbnQuIFVuc3VwcG9ydGVkIE1peGVkIEhUIGNvZGUtYmxvY2sgc3R5bGUgZm91bmQKAFRpbGUgWSBjb29yZGluYXRlcyBhcmUgbm90IHN1cHBvcnRlZAoAVGlsZSBYIGNvb3JkaW5hdGVzIGFyZSBub3Qgc3VwcG9ydGVkCgBJbWFnZSBjb29yZGluYXRlcyBhYm92ZSBJTlRfTUFYIGFyZSBub3Qgc3VwcG9ydGVkCgBKUEVHMjAwMCBIZWFkZXIgYm94IG5vdCByZWFkIHlldCwgJyVjJWMlYyVjJyBib3ggd2lsbCBiZSBpZ25vcmVkCgBvcGpfajJrX21lcmdlX3BwdCgpIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkCgBOb3QgZW5vdWdoIG1lbW9yeSB0byByZWFkIFNPVCBtYXJrZXIuIFRpbGUgaW5kZXggYWxsb2NhdGlvbiBmYWlsZWQKAElnbm9yaW5nIGloZHIgYm94LiBGaXJzdCBpaGRyIGJveCBhbHJlYWR5IHJlYWQKAFpwcHQgJXUgYWxyZWFkeSByZWFkCgBacHBtICV1IGFscmVhZHkgcmVhZAoAUFRFUk0gY2hlY2sgZmFpbHVyZTogJWQgc3ludGhldGl6ZWQgMHhGRiBtYXJrZXJzIHJlYWQKAAkJCSBjYmxrdz0yXiVkCgAJCQkgY2Jsa2g9Ml4lZAoACQkJIHFudHN0eT0lZAoAJXMgZHg9JWQsIGR5PSVkCgAJCQkgcm9pc2hpZnQ9JWQKAAkJCSBudW1nYml0cz0lZAoACQkgbnVtbGF5ZXJzPSVkCgAlcyBudW1jb21wcz0lZAoAb3BqX2pwMl9hcHBseV9jZGVmOiBhY249JWQsIG51bWNvbXBzPSVkCgBvcGpfanAyX2FwcGx5X2NkZWY6IGNuPSVkLCBudW1jb21wcz0lZAoACQkJIG51bXJlc29sdXRpb25zPSVkCgAJCSB0eXBlPSUjeCwgcG9zPSVsbGksIGxlbj0lZAoAJXMgc2duZD0lZAoACQkJIHFtZmJpZD0lZAoAJXMgcHJlYz0lZAoACQkgbmIgb2YgdGlsZS1wYXJ0IGluIHRpbGUgWyVkXT0lZAoAJXMgeDE9JWQsIHkxPSVkCgAlcyB4MD0lZCwgeTA9JWQKAEZhaWxlZCB0byBkZWNvZGUgdGlsZSAlZC8lZAoAU2V0dGluZyBkZWNvZGluZyBhcmVhIHRvICVkLCVkLCVkLCVkCgBGYWlsZWQgdG8gZGVjb2RlIGNvbXBvbmVudCAlZAoASW52YWxpZCB2YWx1ZSBmb3IgbnVtcmVzb2x1dGlvbnMgOiAlZCwgbWF4IHZhbHVlIGlzIHNldCBpbiBvcGVuanBlZy5oIGF0ICVkCgBJbnZhbGlkIGNvbXBvbmVudCBudW1iZXI6ICVkLCByZWdhcmRpbmcgdGhlIG51bWJlciBvZiBjb21wb25lbnRzICVkCgBUb28gbWFueSBQT0NzICVkCgBJbnZhbGlkIHRpbGUgbnVtYmVyICVkCgBJbnZhbGlkIHRpbGUgcGFydCBpbmRleCBmb3IgdGlsZSBudW1iZXIgJWQuIEdvdCAlZCwgZXhwZWN0ZWQgJWQKAEVycm9yIHdpdGggU0laIG1hcmtlcjogbnVtYmVyIG9mIGNvbXBvbmVudCBpcyBpbGxlZ2FsIC0+ICVkCgBOb3QgZW5vdWdoIG1lbW9yeSBmb3IgY2llbGFiCgBDYW5ub3QgYWxsb2NhdGUgY2Jsay0+ZGVjb2RlZF9kYXRhCgBGYWlsZWQgdG8gbWVyZ2UgUFBUIGRhdGEKAEZhaWxlZCB0byBtZXJnZSBQUE0gZGF0YQoASW52YWxpZCBudW1iZXIgb2YgbGF5ZXJzIGluIENPRCBtYXJrZXIgOiAlZCBub3QgaW4gcmFuZ2UgWzEtNjU1MzVdCgBTdHJlYW0gdG9vIHNob3J0LCBleHBlY3RlZCBTT1QKAFVuYWJsZSB0byBzZXQgdDEgaGFuZGxlIGFzIFRMUwoAU3RyZWFtIGRvZXMgbm90IGVuZCB3aXRoIEVPQwoAQ2Fubm90IGhhbmRsZSBib3ggc2l6ZXMgaGlnaGVyIHRoYW4gMl4zMgoAb3BqX3BpX25leHRfbHJjcCgpOiBpbnZhbGlkIGNvbXBubzAvY29tcG5vMQoAb3BqX3BpX25leHRfcmxjcCgpOiBpbnZhbGlkIGNvbXBubzAvY29tcG5vMQoAb3BqX3BpX25leHRfY3BybCgpOiBpbnZhbGlkIGNvbXBubzAvY29tcG5vMQoAb3BqX3BpX25leHRfcGNybCgpOiBpbnZhbGlkIGNvbXBubzAvY29tcG5vMQoAb3BqX3BpX25leHRfcnBjbCgpOiBpbnZhbGlkIGNvbXBubzAvY29tcG5vMQoAb3BqX3QxX2RlY29kZV9jYmxrKCk6IHVuc3VwcG9ydGVkIGJwbm9fcGx1c19vbmUgPSAlZCA+PSAzMQoARmFpbGVkIHRvIGRlY29kZSB0aWxlIDEvMQoASW5zdWZmaWNpZW50IGRhdGEgZm9yIENNQVAgYm94LgoATmVlZCB0byByZWFkIGEgUENMUiBib3ggYmVmb3JlIHRoZSBDTUFQIGJveC4KAEluc3VmZmljaWVudCBkYXRhIGZvciBDREVGIGJveC4KAE51bWJlciBvZiBjaGFubmVsIGRlc2NyaXB0aW9uIGlzIGVxdWFsIHRvIHplcm8gaW4gQ0RFRiBib3guCgBTdHJlYW0gZXJyb3Igd2hpbGUgcmVhZGluZyBKUDIgSGVhZGVyIGJveDogbm8gJ2loZHInIGJveC4KAE5vbiBjb25mb3JtYW50IGNvZGVzdHJlYW0gVFBzb3Q9PVROc290LgoAU3RyZWFtIGVycm9yIHdoaWxlIHJlYWRpbmcgSlAyIEhlYWRlciBib3g6IGJveCBsZW5ndGggaXMgaW5jb25zaXN0ZW50LgoAQm94IGxlbmd0aCBpcyBpbmNvbnNpc3RlbnQuCgBSZXNvbHV0aW9uIGZhY3RvciBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gcmVzb2x1dGlvbiBpbiB0aGUgY29tcG9uZW50LgoAQ29tcG9uZW50IG1hcHBpbmcgc2VlbXMgd3JvbmcuIFRyeWluZyB0byBjb3JyZWN0LgoASW5jb21wbGV0ZSBjaGFubmVsIGRlZmluaXRpb25zLgoATWFsZm9ybWVkIEhUIGNvZGVibG9jay4gSW52YWxpZCBjb2RlYmxvY2sgbGVuZ3RoIHZhbHVlcy4KAFdlIGRvIG5vdCBzdXBwb3J0IG1vcmUgdGhhbiAzIGNvZGluZyBwYXNzZXMgaW4gYW4gSFQgY29kZWJsb2NrOyBUaGlzIGNvZGVibG9ja3MgaGFzICVkIHBhc3Nlcy4KAE1hbGZvcm1lZCBIVCBjb2RlYmxvY2suIERlY29kaW5nIHRoaXMgY29kZWJsb2NrIGlzIHN0b3BwZWQuIFRoZXJlIGFyZSAlZCB6ZXJvIGJpdHBsYW5lcyBpbiAlZCBiaXRwbGFuZXMuCgBDYW5ub3QgdGFrZSBpbiBjaGFyZ2UgbXVsdGlwbGUgdHJhbnNmb3JtYXRpb24gc3RhZ2VzLgoAVW5rbm93biBtYXJrZXIgaGFzIGJlZW4gZGV0ZWN0ZWQgYW5kIGdlbmVyYXRlZCBlcnJvci4KAENvZGVjIHByb3ZpZGVkIHRvIHRoZSBvcGpfc2V0X2RlY29kZWRfY29tcG9uZW50cyBmdW5jdGlvbiBpcyBub3QgYSBkZWNvbXByZXNzb3IgaGFuZGxlci4KAENvZGVjIHByb3ZpZGVkIHRvIHRoZSBvcGpfc2V0dXBfZGVjb2RlciBmdW5jdGlvbiBpcyBub3QgYSBkZWNvbXByZXNzb3IgaGFuZGxlci4KAENvZGVjIHByb3ZpZGVkIHRvIHRoZSBvcGpfcmVhZF9oZWFkZXIgZnVuY3Rpb24gaXMgbm90IGEgZGVjb21wcmVzc29yIGhhbmRsZXIuCgBUaWxlcyBkb24ndCBhbGwgaGF2ZSB0aGUgc2FtZSBkaW1lbnNpb24uIFNraXAgdGhlIE1DVCBzdGVwLgoATnVtYmVyIG9mIGNvbXBvbmVudHMgKCVkKSBpcyBpbmNvbnNpc3RlbnQgd2l0aCBhIE1DVC4gU2tpcCB0aGUgTUNUIHN0ZXAuCgBKUDIgYm94IHdoaWNoIGFyZSBhZnRlciB0aGUgY29kZXN0cmVhbSB3aWxsIG5vdCBiZSByZWFkIGJ5IHRoaXMgZnVuY3Rpb24uCgBNYWxmb3JtZWQgSFQgY29kZWJsb2NrLiBXaGVuIHRoZSBudW1iZXIgb2YgemVybyBwbGFuZXMgYml0cGxhbmVzIGlzIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YgYml0cGxhbmVzLCBvbmx5IHRoZSBjbGVhbnVwIHBhc3MgbWFrZXMgc2Vuc2UsIGJ1dCB3ZSBoYXZlICVkIHBhc3NlcyBpbiB0aGlzIGNvZGVibG9jay4gVGhlcmVmb3JlLCBvbmx5IHRoZSBjbGVhbnVwIHBhc3Mgd2lsbCBiZSBkZWNvZGVkLiBUaGlzIG1lc3NhZ2Ugd2lsbCBub3QgYmUgZGlzcGxheWVkIGFnYWluLgoASW1hZ2UgaGFzIGxlc3MgY29tcG9uZW50cyB0aGFuIGNvZGVzdHJlYW0uCgBOZWVkIHRvIGRlY29kZSB0aGUgbWFpbiBoZWFkZXIgYmVmb3JlIGJlZ2luIHRvIGRlY29kZSB0aGUgcmVtYWluaW5nIGNvZGVzdHJlYW0uCgBQc290IHZhbHVlIG9mIHRoZSBjdXJyZW50IHRpbGUtcGFydCBpcyBlcXVhbCB0byB6ZXJvLCB3ZSBhc3N1bWluZyBpdCBpcyB0aGUgbGFzdCB0aWxlLXBhcnQgb2YgdGhlIGNvZGVzdHJlYW0uCgBBIG1hbGZvcm1lZCBjb2RlYmxvY2sgdGhhdCBoYXMgbW9yZSB0aGFuIG9uZSBjb2RpbmcgcGFzcywgYnV0IHplcm8gbGVuZ3RoIGZvciAybmQgYW5kIHBvdGVudGlhbGx5IHRoZSAzcmQgcGFzcyBpbiBhbiBIVCBjb2RlYmxvY2suCgAJCQkgdGlsZS1wYXJ0WyVkXTogc3Rhcl9wb3M9JWxsaSwgZW5kX2hlYWRlcj0lbGxpLCBlbmRfcG9zPSVsbGkuCgBUaWxlICV1IGhhcyBUUHNvdCA9PSAwIGFuZCBUTnNvdCA9PSAwLCBidXQgbm8gb3RoZXIgdGlsZS1wYXJ0cyB3ZXJlIGZvdW5kLiBFT0MgaXMgYWxzbyBtaXNzaW5nLgoAQ29tcG9uZW50ICVkIGRvZXNuJ3QgaGF2ZSBhIG1hcHBpbmcuCgBBIGNvbmZvcm1pbmcgSlAyIHJlYWRlciBzaGFsbCBpZ25vcmUgYWxsIENvbG91ciBTcGVjaWZpY2F0aW9uIGJveGVzIGFmdGVyIHRoZSBmaXJzdCwgc28gd2UgaWdub3JlIHRoaXMgb25lLgoAVGhlIHNpZ25hdHVyZSBib3ggbXVzdCBiZSB0aGUgZmlyc3QgYm94IGluIHRoZSBmaWxlLgoAVGhlICBib3ggbXVzdCBiZSB0aGUgZmlyc3QgYm94IGluIHRoZSBmaWxlLgoAVGhlIGZ0eXAgYm94IG11c3QgYmUgdGhlIHNlY29uZCBib3ggaW4gdGhlIGZpbGUuCgBGYWlsZWQgdG8gZGVjb2RlLgoATWFsZm9ybWVkIEhUIGNvZGVibG9jay4gSW5jb3JyZWN0IE1FTCBzZWdtZW50IHNlcXVlbmNlLgoAQ29tcG9uZW50ICVkIGlzIG1hcHBlZCB0d2ljZS4KAE9ubHkgb25lIENNQVAgYm94IGlzIGFsbG93ZWQuCgBhcHBseV9jb2xvcl90cmFuc2Zvcm1zID0gT1BKX1RSVUUgaXMgbm90IHN1cHBvcnRlZC4KAFdlIG5lZWQgYW4gaW1hZ2UgcHJldmlvdXNseSBjcmVhdGVkLgoASUhEUiBib3hfbWlzc2luZy4gUmVxdWlyZWQuCgBKUDJIIGJveCBtaXNzaW5nLiBSZXF1aXJlZC4KAE5vdCBzdXJlIGhvdyB0aGF0IGhhcHBlbmVkLgoATWFpbiBoZWFkZXIgaGFzIGJlZW4gY29ycmVjdGx5IGRlY29kZWQuCgBUaWxlICVkLyVkIGhhcyBiZWVuIGRlY29kZWQuCgBIZWFkZXIgb2YgdGlsZSAlZCAvICVkIGhhcyBiZWVuIHJlYWQuCgBFbXB0eSBTT1QgbWFya2VyIGRldGVjdGVkOiBQc290PSVkLgoARGlyZWN0IHVzZSBhdCAjJWQgaG93ZXZlciBwY29sPSVkLgoASW1wbGVtZW50YXRpb24gbGltaXRhdGlvbjogZm9yIHBhbGV0dGUgbWFwcGluZywgcGNvbFslZF0gc2hvdWxkIGJlIGVxdWFsIHRvICVkLCBidXQgaXMgZXF1YWwgdG8gJWQuCgBJbnZhbGlkIGNvbXBvbmVudC9wYWxldHRlIGluZGV4IGZvciBkaXJlY3QgbWFwcGluZyAlZC4KAEludmFsaWQgdmFsdWUgZm9yIGNtYXBbJWRdLm10eXAgPSAlZC4KAFBzb3QgdmFsdWUgaXMgbm90IGNvcnJlY3QgcmVnYXJkcyB0byB0aGUgSlBFRzIwMDAgbm9ybTogJWQuCgBNYWxmb3JtZWQgSFQgY29kZWJsb2NrLiBWTEMgY29kZSBwcm9kdWNlcyBzaWduaWZpY2FudCBzYW1wbGVzIG91dHNpZGUgdGhlIGNvZGVibG9jayBhcmVhLgoAVW5leHBlY3RlZCBPT00uCgAzMiBiaXRzIGFyZSBub3QgZW5vdWdoIHRvIGRlY29kZSB0aGlzIGNvZGVibG9jaywgc2luY2UgdGhlIG51bWJlciBvZiBiaXRwbGFuZSwgJWQsIGlzIGxhcmdlciB0aGFuIDMwLgoAQm90dG9tIHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl95MT0lZCkgc2hvdWxkIGJlID4gMC4KAFJpZ2h0IHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl94MT0lZCkgc2hvdWxkIGJlID4gMC4KAFVwIHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl95MD0lZCkgc2hvdWxkIGJlID49IDAuCgBMZWZ0IHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl94MD0lZCkgc2hvdWxkIGJlID49IDAuCgBFcnJvciByZWFkaW5nIFBQVCBtYXJrZXI6IHBhY2tldCBoZWFkZXIgaGF2ZSBiZWVuIHByZXZpb3VzbHkgZm91bmQgaW4gdGhlIG1haW4gaGVhZGVyIChQUE0gbWFya2VyKS4KAFN0YXJ0IHRvIHJlYWQgajJrIG1haW4gaGVhZGVyICglbGxkKS4KAEJvdHRvbSBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feTE9JWQpIGlzIG91dHNpZGUgdGhlIGltYWdlIGFyZWEgKFlzaXo9JWQpLgoAVXAgcG9zaXRpb24gb2YgdGhlIGRlY29kZWQgYXJlYSAocmVnaW9uX3kwPSVkKSBpcyBvdXRzaWRlIHRoZSBpbWFnZSBhcmVhIChZc2l6PSVkKS4KAFJpZ2h0IHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl94MT0lZCkgaXMgb3V0c2lkZSB0aGUgaW1hZ2UgYXJlYSAoWHNpej0lZCkuCgBMZWZ0IHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl94MD0lZCkgaXMgb3V0c2lkZSB0aGUgaW1hZ2UgYXJlYSAoWHNpej0lZCkuCgBCb3R0b20gcG9zaXRpb24gb2YgdGhlIGRlY29kZWQgYXJlYSAocmVnaW9uX3kxPSVkKSBpcyBvdXRzaWRlIHRoZSBpbWFnZSBhcmVhIChZT3Npej0lZCkuCgBVcCBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feTA9JWQpIGlzIG91dHNpZGUgdGhlIGltYWdlIGFyZWEgKFlPc2l6PSVkKS4KAFJpZ2h0IHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl94MT0lZCkgaXMgb3V0c2lkZSB0aGUgaW1hZ2UgYXJlYSAoWE9zaXo9JWQpLgoATGVmdCBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feDA9JWQpIGlzIG91dHNpZGUgdGhlIGltYWdlIGFyZWEgKFhPc2l6PSVkKS4KAFNpemUgeCBvZiB0aGUgZGVjb2RlZCBjb21wb25lbnQgaW1hZ2UgaXMgaW5jb3JyZWN0IChjb21wWyVkXS53PSVkKS4KAFNpemUgeSBvZiB0aGUgZGVjb2RlZCBjb21wb25lbnQgaW1hZ2UgaXMgaW5jb3JyZWN0IChjb21wWyVkXS5oPSVkKS4KAFRpbGUgcmVhZCwgZGVjb2RlZCBhbmQgdXBkYXRlZCBpcyBub3QgdGhlIGRlc2lyZWQgb25lICglZCB2cyAlZCkuCgBJbnZhbGlkIGNvbXBvbmVudCBpbmRleCAlZCAoPj0gJWQpLgoAb3BqX3JlYWRfaGVhZGVyKCkgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgb3BqX3NldF9kZWNvZGVkX2NvbXBvbmVudHMoKS4KAE1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUgaW4gb3BqX2pwMl9hcHBseV9wY2xyKCkuCgBpbWFnZS0+Y29tcHNbJWRdLmRhdGEgPT0gTlVMTCBpbiBvcGpfanAyX2FwcGx5X3BjbHIoKS4KAGludmFsaWQgYm94IHNpemUgJWQgKCV4KQoARmFpbCB0byByZWFkIHRoZSBjdXJyZW50IG1hcmtlciBzZWdtZW50ICglI3gpCgBFcnJvciB3aXRoIFNJWiBtYXJrZXI6IElIRFIgdygldSkgaCgldSkgdnMuIFNJWiB3KCV1KSBoKCV1KQoARXJyb3IgcmVhZGluZyBDT0MgbWFya2VyIChiYWQgbnVtYmVyIG9mIGNvbXBvbmVudHMpCgBJbnZhbGlkIG51bWJlciBvZiB0aWxlcyA6ICV1IHggJXUgKG1heGltdW0gZml4ZWQgYnkganBlZzIwMDAgbm9ybSBpcyA2NTUzNSB0aWxlcykKAEludmFsaWQgbnVtYmVyIG9mIGNvbXBvbmVudHMgKGloZHIpCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBoYW5kbGUgaW1hZ2UgaGVhZGVyIChpaGRyKQoAV3JvbmcgdmFsdWVzIGZvcjogdyglZCkgaCglZCkgbnVtY29tcHMoJWQpIChpaGRyKQoASW52YWxpZCB2YWx1ZXMgZm9yIGNvbXAgPSAlZCA6IGR4PSV1IGR5PSV1IChzaG91bGQgYmUgYmV0d2VlbiAxIGFuZCAyNTUgYWNjb3JkaW5nIHRvIHRoZSBKUEVHMjAwMCBub3JtKQoAQmFkIGltYWdlIGhlYWRlciBib3ggKGJhZCBzaXplKQoAQmFkIENPTFIgaGVhZGVyIGJveCAoYmFkIHNpemUpCgBCYWQgQlBDQyBoZWFkZXIgYm94IChiYWQgc2l6ZSkKAEVycm9yIHdpdGggU0laIG1hcmtlcjogbmVnYXRpdmUgb3IgemVybyBpbWFnZSBzaXplICglbGxkIHggJWxsZCkKAHNraXA6IHNlZ21lbnQgdG9vIGxvbmcgKCVkKSB3aXRoIG1heCAoJWQpIGZvciBjb2RlYmxvY2sgJWQgKHA9JWQsIGI9JWQsIHI9JWQsIGM9JWQpCgByZWFkOiBzZWdtZW50IHRvbyBsb25nICglZCkgd2l0aCBtYXggKCVkKSBmb3IgY29kZWJsb2NrICVkIChwPSVkLCBiPSVkLCByPSVkLCBjPSVkKQoARGVzcGl0ZSBKUDIgQlBDIT0yNTUsIHByZWNpc2lvbiBhbmQvb3Igc2duZCB2YWx1ZXMgZm9yIGNvbXBbJWRdIGlzIGRpZmZlcmVudCB0aGFuIGNvbXBbMF06CiAgICAgICAgWzBdIHByZWMoJWQpIHNnbmQoJWQpIFslZF0gcHJlYyglZCkgc2duZCglZCkKAGJhZCBjb21wb25lbnQgbnVtYmVyIGluIFJHTiAoJWQgd2hlbiB0aGVyZSBhcmUgb25seSAlZCkKAEVycm9yIHdpdGggU0laIG1hcmtlcjogbnVtYmVyIG9mIGNvbXBvbmVudCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSByZW1haW5pbmcgbnVtYmVyIG9mIHBhcmFtZXRlcnMgKCAlZCB2cyAlZCkKAEVycm9yIHdpdGggU0laIG1hcmtlcjogaW52YWxpZCB0aWxlIHNpemUgKHRkeDogJWQsIHRkeTogJWQpCgBCYWQgQ09MUiBoZWFkZXIgYm94IChiYWQgc2l6ZTogJWQpCgBCYWQgQ09MUiBoZWFkZXIgYm94IChDSUVMYWIsIGJhZCBzaXplOiAlZCkKAFBURVJNIGNoZWNrIGZhaWx1cmU6ICVkIHJlbWFpbmluZyBieXRlcyBpbiBjb2RlIGJsb2NrICglZCB1c2VkIC8gJWQpCgBNYWxmb3JtZWQgSFQgY29kZWJsb2NrLiBPbmUgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb24gaXMgbm90IG1ldDogMiA8PSBTY3VwIDw9IG1pbihMY3VwLCA0MDc5KQoASW52YWxpZCB2YWx1ZXMgZm9yIGNvbXAgPSAlZCA6IHByZWM9JXUgKHNob3VsZCBiZSBiZXR3ZWVuIDEgYW5kIDM4IGFjY29yZGluZyB0byB0aGUgSlBFRzIwMDAgbm9ybS4gT3BlbkpwZWcgb25seSBzdXBwb3J0cyB1cCB0byAzMSkKAEludmFsaWQgYml0IG51bWJlciAlZCBpbiBvcGpfdDJfcmVhZF9wYWNrZXRfaGVhZGVyKCkKAFN0cmVhbSBlcnJvciEKAEVycm9yIG9uIHdyaXRpbmcgc3RyZWFtIQoAU3RyZWFtIHJlYWNoZWQgaXRzIGVuZCAhCgBFeHBlY3RlZCBhIFNPQyBtYXJrZXIgCgBJbnZhbGlkIGJveCBzaXplICVkIGZvciBib3ggJyVjJWMlYyVjJy4gTmVlZCAlZCBieXRlcywgJWQgYnl0ZXMgcmVtYWluaW5nIAoATWFsZm9ybWVkIEhUIGNvZGVibG9jay4gRGVjb2RpbmcgdGhpcyBjb2RlYmxvY2sgaXMgc3RvcHBlZC4gVV9xIGlzIGxhcmdlciB0aGFuIHplcm8gYml0cGxhbmVzICsgMSAKAE1hbGZvcm1lZCBIVCBjb2RlYmxvY2suIERlY29kaW5nIHRoaXMgY29kZWJsb2NrIGlzIHN0b3BwZWQuIFVfcSBpc2xhcmdlciB0aGFuIGJpdHBsYW5lcyArIDEgCgBDT0xSIEJPWCBtZXRoIHZhbHVlIGlzIG5vdCBhIHJlZ3VsYXIgdmFsdWUgKCVkKSwgc28gd2Ugd2lsbCBpZ25vcmUgdGhlIGVudGlyZSBDb2xvdXIgU3BlY2lmaWNhdGlvbiBib3guIAoAV2hpbGUgcmVhZGluZyBDQ1BfUU5UU1RZIGVsZW1lbnQgaW5zaWRlIFFDRCBvciBRQ0MgbWFya2VyIHNlZ21lbnQsIG51bWJlciBvZiBzdWJiYW5kcyAoJWQpIGlzIGdyZWF0ZXIgdG8gT1BKX0oyS19NQVhCQU5EUyAoJWQpLiBTbyB3ZSBsaW1pdCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHN0b3JlZCB0byBPUEpfSjJLX01BWEJBTkRTICglZCkgYW5kIHNraXAgdGhlIHJlc3QuIAoASlAyIElIRFIgYm94OiBjb21wcmVzc2lvbiB0eXBlIGluZGljYXRlIHRoYXQgdGhlIGZpbGUgaXMgbm90IGEgY29uZm9ybWluZyBKUDIgZmlsZSAoJWQpIAoAVGlsZSBpbmRleCBwcm92aWRlZCBieSB0aGUgdXNlciBpcyBpbmNvcnJlY3QgJWQgKG1heCA9ICVkKSAKAEVycm9yIGRlY29kaW5nIGNvbXBvbmVudCAlZC4KVGhlIG51bWJlciBvZiByZXNvbHV0aW9ucyB0byByZW1vdmUgKCVkKSBpcyBncmVhdGVyIG9yIGVxdWFsIHRoYW4gdGhlIG51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4E8AANBPAAABVgAAAQAAAPBPAADATwAAAVQAAAAAAAAAUAAAwFAAAAFUAAABAAAAEFAAANBQAAABSAAAAAAAACBQAADAUAAAAUgAAAEAAAAwUAAA0FAAAAE4AAAAAAAAQFAAAMBQAAABOAAAAQAAAFBQAADQUAAAATAAAAAAAABgUAAAIFEAAAEwAAABAAAAcFAAADBRAAABJAAAAAAAAIBQAABAUQAAASQAAAEAAACQUAAAUFEAAAEcAAAAAAAAoFAAAIBRAAABHAAAAQAAALBQAACQUQAAARYAAAAAAACgUgAAoFEAAAEWAAABAAAAsFIAALBRAAABVgAAAAAAAOBQAADQUAAAAVYAAAEAAADwUAAAwFAAAAFUAAAAAAAAAFEAAMBQAAABVAAAAQAAABBRAADQUAAAAVEAAAAAAAAgUQAA4FAAAAFRAAABAAAAMFEAAPBQAAABSAAAAAAAAEBRAAAAUQAAAUgAAAEAAABQUQAAEFEAAAE4AAAAAAAAYFEAACBRAAABOAAAAQAAAHBRAAAwUQAAATQAAAAAAACAUQAAQFEAAAE0AAABAAAAkFEAAFBRAAABMAAAAAAAAKBRAABgUQAAATAAAAEAAACwUQAAcFEAAAEoAAAAAAAAwFEAAGBRAAABKAAAAQAAANBRAABwUQAAASQAAAAAAADgUQAAgFEAAAEkAAABAAAA8FEAAJBRAAABIgAAAAAAAABSAACgUQAAASIAAAEAAAAQUgAAsFEAAAEcAAAAAAAAIFIAAMBRAAABHAAAAQAAADBSAADQUQAAARgAAAAAAABAUgAA4FEAAAEYAAABAAAAUFIAAPBRAAABFgAAAAAAAGBSAAAAUgAAARYAAAEAAABwUgAAEFIAAAEUAAAAAAAAgFIAACBSAAABFAAAAQAAAJBSAAAwUgAAARIAAAAAAACgUgAAQFIAAAESAAABAAAAsFIAAFBSAAABEQAAAAAAAMBSAABgUgAAAREAAAEAAADQUgAAcFIAAMEKAAAAAAAA4FIAAIBSAADBCgAAAQAAAPBSAACQUgAAwQkAAAAAAAAAUwAAoFIAAMEJAAABAAAAEFMAALBSAAChCAAAAAAAACBTAADAUgAAoQgAAAEAAAAwUwAA0FIAACEFAAAAAAAAQFMAAOBSAAAhBQAAAQAAAFBTAADwUgAAQQQAAAAAAABgUwAAAFMAAEEEAAABAAAAcFMAABBTAAChAgAAAAAAAIBTAAAgUwAAoQIAAAEAAACQUwAAMFMAACECAAAAAAAAoFMAAEBTAAAhAgAAAQAAALBTAABQUwAAQQEAAAAAAADAUwAAYFMAAEEBAAABAAAA0FMAAHBTAAARAQAAAAAAAOBTAACAUwAAEQEAAAEAAADwUwAAkFMAAIUAAAAAAAAAAFQAAKBTAACFAAAAAQAAABBUAACwUwAASQAAAAAAAAAgVAAAwFMAAEkAAAABAAAAMFQAANBTAAAlAAAAAAAAAEBUAADgUwAAJQAAAAEAAABQVAAA8FMAABUAAAAAAAAAYFQAAABUAAAVAAAAAQAAAHBUAAAQVAAACQAAAAAAAACAVAAAIFQAAAkAAAABAAAAkFQAADBUAAAFAAAAAAAAAKBUAABAVAAABQAAAAEAAACwVAAAUFQAAAEAAAAAAAAAoFQAAGBUAAABAAAAAQAAALBUAABwVAAAAVYAAAAAAADAVAAAwFQAAAFWAAABAAAA0FQAANBUAAAAAQMDAQIDAwUGBwcGBgcHAAEDAwECAwMFBgcHBgYHBwUGBwcGBgcHCAgICAgICAgFBgcHBgYHBwgICAgICAgIAQIDAwICAwMGBgcHBgYHBwECAwMCAgMDBgYHBwYGBwcGBgcHBgYHBwgICAgICAgIBgYHBwYGBwcICAgICAgICAMDBAQDAwQEBwcHBwcHBwcDAwQEAwMEBAcHBwcHBwcHBwcHBwcHBwcICAgICAgICAcHBwcHBwcHCAgICAgICAgDAwQEAwMEBAcHBwcHBwcHAwMEBAMDBAQHBwcHBwcHBwcHBwcHBwcHCAgICAgICAgHBwcHBwcHBwgICAgICAgIAQIDAwICAwMGBgcHBgYHBwECAwMCAgMDBgYHBwYGBwcGBgcHBgYHBwgICAgICAgIBgYHBwYGBwcICAgICAgICAICAwMCAgMDBgYHBwYGBwcCAgMDAgIDAwYGBwcGBgcHBgYHBwYGBwcICAgICAgICAYGBwcGBgcHCAgICAgICAgDAwQEAwMEBAcHBwcHBwcHAwMEBAMDBAQHBwcHBwcHBwcHBwcHBwcHCAgICAgICAgHBwcHBwcHBwgICAgICAgIAwMEBAMDBAQHBwcHBwcHBwMDBAQDAwQEBwcHBwcHBwcHBwcHBwcHBwgICAgICAgIBwcHBwcHBwcICAgICAgICAABBQYBAgYGAwMHBwMDBwcAAQUGAQIGBgMDBwcDAwcHAwMHBwMDBwcEBAcHBAQHBwMDBwcDAwcHBAQHBwQEBwcBAgYGAgIGBgMDBwcDAwcHAQIGBgICBgYDAwcHAwMHBwMDBwcDAwcHBAQHBwQEBwcDAwcHAwMHBwQEBwcEBAcHBQYICAYGCAgHBwgIBwcICAUGCAgGBggIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAYGCAgGBggIBwcICAcHCAgGBggIBgYICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgBAgYGAgIGBgMDBwcDAwcHAQIGBgICBgYDAwcHAwMHBwMDBwcDAwcHBAQHBwQEBwcDAwcHAwMHBwQEBwcEBAcHAgIGBgICBgYDAwcHAwMHBwICBgYCAgYGAwMHBwMDBwcDAwcHAwMHBwQEBwcEBAcHAwMHBwMDBwcEBAcHBAQHBwYGCAgGBggIBwcICAcHCAgGBggIBgYICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgGBggIBgYICAcHCAgHBwgIBgYICAYGCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIAAEDAwECAwMFBgcHBgYHBwABAwMBAgMDBQYHBwYGBwcFBgcHBgYHBwgICAgICAgIBQYHBwYGBwcICAgICAgICAECAwMCAgMDBgYHBwYGBwcBAgMDAgIDAwYGBwcGBgcHBgYHBwYGBwcICAgICAgICAYGBwcGBgcHCAgICAgICAgDAwQEAwMEBAcHBwcHBwcHAwMEBAMDBAQHBwcHBwcHBwcHBwcHBwcHCAgICAgICAgHBwcHBwcHBwgICAgICAgIAwMEBAMDBAQHBwcHBwcHBwMDBAQDAwQEBwcHBwcHBwcHBwcHBwcHBwgICAgICAgIBwcHBwcHBwcICAgICAgICAECAwMCAgMDBgYHBwYGBwcBAgMDAgIDAwYGBwcGBgcHBgYHBwYGBwcICAgICAgICAYGBwcGBgcHCAgICAgICAgCAgMDAgIDAwYGBwcGBgcHAgIDAwICAwMGBgcHBgYHBwYGBwcGBgcHCAgICAgICAgGBgcHBgYHBwgICAgICAgIAwMEBAMDBAQHBwcHBwcHBwMDBAQDAwQEBwcHBwcHBwcHBwcHBwcHBwgICAgICAgIBwcHBwcHBwcICAgICAgICAMDBAQDAwQEBwcHBwcHBwcDAwQEAwMEBAcHBwcHBwcHBwcHBwcHBwcICAgICAgICAcHBwcHBwcHCAgICAgICAgAAwEEAwYEBwEEAgUEBwUHAAMBBAMGBAcBBAIFBAcFBwEEAgUEBwUHAgUCBQUHBQcBBAIFBAcFBwIFAgUFBwUHAwYEBwYIBwgEBwUHBwgHCAMGBAcGCAcIBAcFBwcIBwgEBwUHBwgHCAUHBQcHCAcIBAcFBwcIBwgFBwUHBwgHCAEEAgUEBwUHAgUCBQUHBQcBBAIFBAcFBwIFAgUFBwUHAgUCBQUHBQcCBQIFBQcFBwIFAgUFBwUHAgUCBQUHBQcEBwUHBwgHCAUHBQcHCAcIBAcFBwcIBwgFBwUHBwgHCAUHBQcHCAcIBQcFBwcIBwgFBwUHBwgHCAUHBQcHCAcIAwYEBwYIBwgEBwUHBwgHCAMGBAcGCAcIBAcFBwcIBwgEBwUHBwgHCAUHBQcHCAcIBAcFBwcIBwgFBwUHBwgHCAYIBwgICAgIBwgHCAgICAgGCAcICAgICAcIBwgICAgIBwgHCAgICAgHCAcICAgICAcIBwgICAgIBwgHCAgICAgEBwUHBwgHCAUHBQcHCAcIBAcFBwcIBwgFBwUHBwgHCAUHBQcHCAcIBQcFBwcIBwgFBwUHBwgHCAUHBQcHCAcIBwgHCAgICAgHCAcICAgICAcIBwgICAgIBwgHCAgICAgHCAcICAgICAcIBwgICAgIBwgHCAgICAgHCAcICAgICAkJCgoJCQoKDAwNCwwMDQsJCQoKCQkKCgwMCw0MDAsNDAwNDQwMCwsMCQ0KCQwKCwwMCwsMDA0NDAkLCgkMCg0JCQoKCQkKCgwMDQsMDA0LCQkKCgkJCgoMDAsNDAwLDQwMDQ0MDAsLDAkNCgkMCgsMDAsLDAwNDQwJCwoJDAoNCgoKCgoKCgoNCw0LDQsNCwoKCQkKCgkJDQsMDA0LDAwNDQ0NCwsLCw0KDQoKCwoLDQ0MDAsLDAwNCgwJCgsJDAoKCQkKCgkJCw0MDAsNDAwKCgoKCgoKCgsNCw0LDQsNCwsMDA0NDAwLCgwJCg0JDAsLCwsNDQ0NCwoLCgoNCg0AQem7AQs3AQABAAEAAQAAAQEAAAEBAAEAAQABAAEAAAAAAQEBAQAAAAAAAQABAAAAAAEBAQEAAAABAAEBAQBBqbwBCzcBAAEAAQABAAABAQAAAQEAAQABAAEAAQAAAAABAQEBAAAAAAABAAEAAAAAAQEBAQAAAAEAAQEBAEHpvAELBwEAAQABAAEAQfm8AQuVAgEAAQABAAEAAAAAAQEBAQAAAAAAAQABAAAAAAEBAQEAAAAAAAEAAQEBAAABAQAAAAEAAQABAAEBAQEBAQEBAQABAAEAAQABAAAAAAEBAQEAAQAAAQEAAQAAAAABAQEBAAEAAQEBAQECAAAABAAAAAQAAAAIAAAAkP8AAAwAAAAYAAAAUv8AABQAAAAZAAAAU/8AABQAAAAaAAAAXv8AABQAAAAbAAAAXP8AABQAAAAcAAAAXf8AABQAAAAdAAAAX/8AABQAAAAeAAAAUf8AAAIAAAAfAAAAVf8AAAQAAAAgAAAAV/8AAAQAAAAhAAAAWP8AABAAAAAiAAAAYP8AAAQAAAAjAAAAYf8AABAAAAAkAAAAkf8AQZi/AQtlY/8AAAQAAAAlAAAAZP8AABQAAAAmAAAAdP8AABQAAAAnAAAAeP8AAAQAAAAoAAAAUP8AAAQAAAApAAAAWf8AAAQAAAAqAAAAdf8AABQAAAArAAAAd/8AABQAAAAsAAAAAAAAABQAQZDAAQs1LQAAAC4AAAAvAAAAMAAAADEAAAAyAAAAMwAAADQAAAAgIFBqNgAAAHB5dGY3AAAAaDJwajgAQdDAAQsycmRoaTkAAABybG9jOgAAAGNjcGI7AAAAcmxjcDwAAABwYW1jPQAAAGZlZGM+AAAAeGIAQZDBAQtBGQALABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZAAoKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRkAQeHBAQshDgAAAAAAAAAAGQALDRkZGQANAAACAAkOAAAACQAOAAAOAEGbwgELAQwAQafCAQsVEwAAAAATAAAAAAkMAAAAAAAMAAAMAEHVwgELARAAQeHCAQsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEGPwwELARIAQZvDAQseEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAEHSwwELDhoAAAAaGhoAAAAAAAAJAEGDxAELARQAQY/EAQsVFwAAAAAXAAAAAAkUAAAAAAAUAAAUAEG9xAELARYAQcnEAQsnFQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGAEHxxAELCGwBAAAAAAAFAEGExQELAWkAQZzFAQsOagAAAGsAAAD4ZwAAAAQAQbTFAQsBAQBBxMUBCwX/////Cg==",callRuntimeCallbacks=callbacks=>{for(;0<callbacks.length;)callbacks.shift()(Module)},ENV=(Module.noExitRuntime,{}),getExecutableName=()=>thisProgram||"./this.program",getEnvStrings=()=>{if(!getEnvStrings.strings){var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:getExecutableName()};for(x in ENV)void 0===ENV[x]?delete env[x]:env[x]=ENV[x];var x,strings=[];for(x in env)strings.push(x+"="+env[x]);getEnvStrings.strings=strings}return getEnvStrings.strings},printCharBuffers=[null,[],[]],UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{for(var endIdx=idx+maxBytesToRead,endPtr=idx;heapOrArray[endPtr]&&!(endIdx<=endPtr);)++endPtr;if(16<endPtr-idx&&heapOrArray.buffer&&UTF8Decoder)return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr));for(var str="";idx<endPtr;){var u2,u1,u0=heapOrArray[idx++];128&u0?(u1=63&heapOrArray[idx++],192==(224&u0)?str+=String.fromCharCode((31&u0)<<6|u1):(u2=63&heapOrArray[idx++],(u0=224==(240&u0)?(15&u0)<<12|u1<<6|u2:(7&u0)<<18|u1<<12|u2<<6|63&heapOrArray[idx++])<65536?str+=String.fromCharCode(u0):(u1=u0-65536,str+=String.fromCharCode(55296|u1>>10,56320|1023&u1)))):str+=String.fromCharCode(u0)}return str},UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var calledRun,wasmImports={f:(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num),b:requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;if(!(2147483648<requestedSize))for(var multiple,cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown),overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);if((size=>{size=(size-wasmMemory.buffer.byteLength+65535)/65536;try{return wasmMemory.grow(size),updateMemoryViews(),1}catch(e){}})(Math.min(2147483648,(overGrownHeapSize=Math.max(requestedSize,overGrownHeapSize))+((multiple=65536)-overGrownHeapSize%multiple)%multiple)))return!0}return!1},c:(__environ,environ_buf)=>{var bufSize=0;return getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;((str,buffer)=>{for(var i=0;i<str.length;++i)HEAP8[buffer++]=str.charCodeAt(i);HEAP8[buffer]=0})(string,HEAPU32[__environ+4*i>>2]=ptr),bufSize+=string.length+1}),0},d:(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings(),bufSize=(HEAPU32[penviron_count>>2]=strings.length,0);return strings.forEach(string=>bufSize+=string.length+1),HEAPU32[penviron_buf_size>>2]=bufSize,0},e:(fd,iov,iovcnt,pnum)=>{for(var stream,curr,buffer,num=0,i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2],len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j<len;j++)stream=fd,curr=HEAPU8[ptr+j],buffer=void 0,buffer=printCharBuffers[stream],0===curr||10===curr?((1===stream?out:err)(UTF8ArrayToString(buffer,0)),buffer.length=0):buffer.push(curr);num+=len}return HEAPU32[pnum>>2]=num,0},g:function(message_ptr){message_ptr=UTF8ToString(message_ptr),(Module.warn||console.warn)("OpenJPEG: "+message_ptr)},h:function(array_ptr,array_size){Module.imageData=new Uint8ClampedArray(Module.HEAPU8.subarray(array_ptr,array_ptr+array_size))},a:function(message_ptr){message_ptr=UTF8ToString(message_ptr),Module.errorMessages?Module.errorMessages+="\n"+message_ptr:Module.errorMessages=message_ptr}},wasmExports=function(){var info={a:wasmImports};function receiveInstance(instance,module){return wasmExports=instance.exports,wasmMemory=wasmExports.i,updateMemoryViews(),instance=wasmExports.j,__ATINIT__.unshift(instance),runDependencies--,Module.monitorRunDependencies?.(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)&&(instance=dependenciesFulfilled,dependenciesFulfilled=null,instance()),wasmExports}if(runDependencies++,Module.monitorRunDependencies?.(runDependencies),Module.instantiateWasm)try{return Module.instantiateWasm(info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e),readyPromiseReject(e)}return receiveInstance(instantiateSync(wasmBinaryFile,info)[0])}();wasmExports.j,Module._malloc=wasmExports.k,Module._free=wasmExports.l,Module._jp2_decode=wasmExports.n,wasmExports._emscripten_stack_restore,wasmExports._emscripten_stack_alloc,wasmExports.emscripten_stack_get_current;function run(){function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT)||(callRuntimeCallbacks(__ATINIT__),readyPromiseResolve(Module),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun())}0<runDependencies||(preRun(),0<runDependencies)||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun())}if(dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)},Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);0<Module.preInit.length;)Module.preInit.pop()();return run(),moduleArg}})();const openjpeg=OpenJPEG;class JpxError extends BaseException{constructor(msg){super(msg,"JpxError")}}class JpxImage{static#module=null;static decode(data,ignoreColorSpace=!1){this.#module||=openjpeg({warn:warn});data=this.#module.decode(data,ignoreColorSpace);if("string"==typeof data)throw new JpxError(data);return data}static cleanup(){this.#module=null}static parseImageProperties(stream){let newByte=stream.getByte();for(;0<=newByte;){var Xsiz,Ysiz,XOsiz,YOsiz;if(65361==(newByte<<8|(newByte=stream.getByte())))return stream.skip(4),Xsiz=stream.getInt32()>>>0,Ysiz=stream.getInt32()>>>0,XOsiz=stream.getInt32()>>>0,YOsiz=stream.getInt32()>>>0,stream.skip(16),{width:Xsiz-XOsiz,height:Ysiz-YOsiz,bitsPerComponent:8,componentsCount:stream.getUint16()}}throw new JpxError("No size marker found in JPX stream")}}class JpxStream extends DecodeStream{constructor(stream,maybeLength,params){super(maybeLength),this.stream=stream,this.dict=stream.dict,this.maybeLength=maybeLength,this.params=params}get bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(requested){}readBlock(ignoreColorSpace){this.eof||(this.buffer=JpxImage.decode(this.bytes,ignoreColorSpace),this.bufferLength=this.buffer.length,this.eof=!0)}}class LZWStream extends DecodeStream{constructor(str,maybeLength,earlyChange){super(maybeLength),this.str=str,this.dict=str.dict,this.cachedData=0,this.bitsCached=0;var lzwState={earlyChange:earlyChange,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(4096),dictionaryLengths:new Uint16Array(4096),dictionaryPrevCodes:new Uint16Array(4096),currentSequence:new Uint8Array(4096),currentSequenceLength:0};for(let i=0;i<256;++i)lzwState.dictionaryValues[i]=i,lzwState.dictionaryLengths[i]=1;this.lzwState=lzwState}readBits(n){let bitsCached=this.bitsCached,cachedData=this.cachedData;for(;bitsCached<n;){var c=this.str.getByte();if(-1===c)return this.eof=!0,null;cachedData=cachedData<<8|c,bitsCached+=8}return this.bitsCached=bitsCached-=n,this.cachedData=cachedData,this.lastCode=null,cachedData>>>bitsCached&(1<<n)-1}readBlock(){let estimatedDecodedSize=1024,i,j,q;var lzwState=this.lzwState;if(lzwState){var earlyChange=lzwState.earlyChange;let nextCode=lzwState.nextCode;var dictionaryValues=lzwState.dictionaryValues,dictionaryLengths=lzwState.dictionaryLengths,dictionaryPrevCodes=lzwState.dictionaryPrevCodes;let codeLength=lzwState.codeLength,prevCode=lzwState.prevCode;var currentSequence=lzwState.currentSequence;let currentSequenceLength=lzwState.currentSequenceLength,decodedLength=0,currentBufferLength=this.bufferLength,buffer=this.ensureBuffer(this.bufferLength+estimatedDecodedSize);for(i=0;i<512;i++){var code=this.readBits(codeLength),hasPrev=0<currentSequenceLength;if(code<256)currentSequence[0]=code,currentSequenceLength=1;else{if(!(258<=code)){if(256===code){codeLength=9,nextCode=258,currentSequenceLength=0;continue}this.eof=!0,delete this.lzwState;break}if(code<nextCode)for(currentSequenceLength=dictionaryLengths[code],j=currentSequenceLength-1,q=code;0<=j;j--)currentSequence[j]=dictionaryValues[q],q=dictionaryPrevCodes[q];else currentSequence[currentSequenceLength++]=currentSequence[0]}if(hasPrev&&(dictionaryPrevCodes[nextCode]=prevCode,dictionaryLengths[nextCode]=dictionaryLengths[prevCode]+1,dictionaryValues[nextCode]=currentSequence[0],nextCode++,codeLength=nextCode+earlyChange&nextCode+earlyChange-1?codeLength:0|Math.min(Math.log(nextCode+earlyChange)/.6931471805599453+1,12)),prevCode=code,decodedLength+=currentSequenceLength,estimatedDecodedSize<decodedLength){for(;(estimatedDecodedSize+=512)<decodedLength;);buffer=this.ensureBuffer(this.bufferLength+estimatedDecodedSize)}for(j=0;j<currentSequenceLength;j++)buffer[currentBufferLength++]=currentSequence[j]}lzwState.nextCode=nextCode,lzwState.codeLength=codeLength,lzwState.prevCode=prevCode,lzwState.currentSequenceLength=currentSequenceLength,this.bufferLength=currentBufferLength}}}class PredictorStream extends DecodeStream{constructor(str,maybeLength,params){if(super(maybeLength),!(params instanceof Dict))return str;maybeLength=this.predictor=params.get("Predictor")||1;if(maybeLength<=1)return str;if(2!==maybeLength&&(maybeLength<10||15<maybeLength))throw new FormatError("Unsupported predictor: "+maybeLength);this.readBlock=2===maybeLength?this.readBlockTiff:this.readBlockPng,this.str=str,this.dict=str.dict;maybeLength=this.colors=params.get("Colors")||1,str=this.bits=params.get("BPC","BitsPerComponent")||8,params=this.columns=params.get("Columns")||1;return this.pixBytes=maybeLength*str+7>>3,this.rowBytes=params*maybeLength*str+7>>3,this}readBlockTiff(){var rowBytes=this.rowBytes,bufferLength=this.bufferLength,buffer=this.ensureBuffer(bufferLength+rowBytes),bits=this.bits,colors=this.colors,rawBytes=this.str.getBytes(rowBytes);if(this.eof=!rawBytes.length,!this.eof){let inbuf=0,outbuf=0,inbits=0,outbits=0,pos=bufferLength,i;if(1===bits&&1===colors)for(i=0;i<rowBytes;++i){var c=rawBytes[i]^inbuf,c=(c=(c^=c>>1)^c>>2)^c>>4;inbuf=(1&c)<<7,buffer[pos++]=c}else if(8===bits){for(i=0;i<colors;++i)buffer[pos++]=rawBytes[i];for(;i<rowBytes;++i)buffer[pos]=buffer[pos-colors]+rawBytes[i],pos++}else if(16===bits){var bytesPerPixel=2*colors;for(i=0;i<bytesPerPixel;++i)buffer[pos++]=rawBytes[i];for(;i<rowBytes;i+=2){var sum=((255&rawBytes[i])<<8)+(255&rawBytes[i+1])+((255&buffer[pos-bytesPerPixel])<<8)+(255&buffer[pos-bytesPerPixel+1]);buffer[pos++]=sum>>8&255,buffer[pos++]=255&sum}}else{var compArray=new Uint8Array(colors+1),bitMask=(1<<bits)-1;let j=0,k=bufferLength;var columns=this.columns;for(i=0;i<columns;++i)for(let kk=0;kk<colors;++kk)inbits<bits&&(inbuf=inbuf<<8|255&rawBytes[j++],inbits+=8),compArray[kk]=compArray[kk]+(inbuf>>inbits-bits)&bitMask,inbits-=bits,outbuf=outbuf<<bits|compArray[kk],8<=(outbits+=bits)&&(buffer[k++]=outbuf>>outbits-8&255,outbits-=8);0<outbits&&(buffer[k++]=(outbuf<<8-outbits)+(inbuf&(1<<8-outbits)-1))}this.bufferLength+=rowBytes}}readBlockPng(){var rowBytes=this.rowBytes,pixBytes=this.pixBytes,predictor=this.str.getByte(),rawBytes=this.str.getBytes(rowBytes);if(this.eof=!rawBytes.length,!this.eof){var bufferLength=this.bufferLength,buffer=this.ensureBuffer(bufferLength+rowBytes);let prevRow=buffer.subarray(bufferLength-rowBytes,bufferLength);0===prevRow.length&&(prevRow=new Uint8Array(rowBytes));let i,j=bufferLength,up,c;switch(predictor){case 0:for(i=0;i<rowBytes;++i)buffer[j++]=rawBytes[i];break;case 1:for(i=0;i<pixBytes;++i)buffer[j++]=rawBytes[i];for(;i<rowBytes;++i)buffer[j]=buffer[j-pixBytes]+rawBytes[i]&255,j++;break;case 2:for(i=0;i<rowBytes;++i)buffer[j++]=prevRow[i]+rawBytes[i]&255;break;case 3:for(i=0;i<pixBytes;++i)buffer[j++]=(prevRow[i]>>1)+rawBytes[i];for(;i<rowBytes;++i)buffer[j]=(prevRow[i]+buffer[j-pixBytes]>>1)+rawBytes[i]&255,j++;break;case 4:for(i=0;i<pixBytes;++i)up=prevRow[i],c=rawBytes[i],buffer[j++]=up+c;for(;i<rowBytes;++i){up=prevRow[i];var upLeft=prevRow[i-pixBytes],left=buffer[j-pixBytes],p=left+up-upLeft;let pa=p-left,pb=(pa<0&&(pa=-pa),p-up),pc=(pb<0&&(pb=-pb),p-upLeft);pc<0&&(pc=-pc),c=rawBytes[i],pa<=pb&&pa<=pc?buffer[j++]=left+c:pb<=pc?buffer[j++]=up+c:buffer[j++]=upLeft+c}break;default:throw new FormatError("Unsupported predictor: "+predictor)}this.bufferLength+=rowBytes}}}class RunLengthStream extends DecodeStream{constructor(str,maybeLength){super(maybeLength),this.str=str,this.dict=str.dict}readBlock(){var source,repeatHeader=this.str.getBytes(2);if(!repeatHeader||repeatHeader.length<2||128===repeatHeader[0])this.eof=!0;else{let buffer,bufferLength=this.bufferLength;if((n=repeatHeader[0])<128)(buffer=this.ensureBuffer(bufferLength+n+1))[bufferLength++]=repeatHeader[1],0<n&&(source=this.str.getBytes(n),buffer.set(source,bufferLength),bufferLength+=n);else{var n=257-n,b=repeatHeader[1];buffer=this.ensureBuffer(bufferLength+n+1);for(let i=0;i<n;i++)buffer[bufferLength++]=b}this.bufferLength=bufferLength}}}const MAX_LENGTH_TO_CACHE=1e3;function getInlineImageCacheKey(bytes){var strBuf=[],ii=bytes.length;let i=0;for(;i<ii-1;)strBuf.push(bytes[i++]<<8|bytes[i++]);return i<ii&&strBuf.push(bytes[i]),ii+"_"+String.fromCharCode.apply(null,strBuf)}class Parser{constructor({lexer,xref,allowStreams=!1,recoveryMode=!1}){this.lexer=lexer,this.xref=xref,this.allowStreams=allowStreams,this.recoveryMode=recoveryMode,this.imageCache=Object.create(null),this._imageId=0,this.refill()}refill(){this.buf1=this.lexer.getObj(),this.buf2=this.lexer.getObj()}shift(){this.buf2 instanceof Cmd&&"ID"===this.buf2.cmd?(this.buf1=this.buf2,this.buf2=null):(this.buf1=this.buf2,this.buf2=this.lexer.getObj())}tryShift(){try{return this.shift(),!0}catch(e){if(e instanceof MissingDataException)throw e;return!1}}getObj(cipherTransform=null){var ref,buf1=this.buf1;if(this.shift(),buf1 instanceof Cmd)switch(buf1.cmd){case"BI":return this.makeInlineImage(cipherTransform);case"[":for(var array=[];!isCmd(this.buf1,"]")&&this.buf1!==EOF;)array.push(this.getObj(cipherTransform));if(this.buf1!==EOF)return this.shift(),array;if(this.recoveryMode)return array;throw new ParserEOFException("End of file inside array.");case"<<":for(var dict=new Dict(this.xref);!isCmd(this.buf1,">>")&&this.buf1!==EOF;)if(this.buf1 instanceof Name){var key=this.buf1.name;if(this.shift(),this.buf1===EOF)break;dict.set(key,this.getObj(cipherTransform))}else info("Malformed dictionary: key must be a name object"),this.shift();if(this.buf1!==EOF)return isCmd(this.buf2,"stream")?this.allowStreams?this.makeStream(dict,cipherTransform):dict:(this.shift(),dict);if(this.recoveryMode)return dict;throw new ParserEOFException("End of file inside dictionary.");default:return buf1}return Number.isInteger(buf1)?Number.isInteger(this.buf1)&&isCmd(this.buf2,"R")?(ref=Ref.get(buf1,this.buf1),this.shift(),this.shift(),ref):buf1:"string"==typeof buf1&&cipherTransform?cipherTransform.decryptString(buf1):buf1}findDefaultInlineStreamEnd(stream){var knownCommands=this.lexer["knownCommands"],startPos=stream.pos;let state=0,ch,maybeEIPos;for(;-1!==(ch=stream.getByte());)if(0===state)state=69===ch?1:0;else if(1===state)state=73===ch?2:0;else if(32===ch||10===ch||13===ch){maybeEIPos=stream.pos;var followingBytes=stream.peekBytes(15),ii=followingBytes.length;if(0===ii)break;for(let i=0;i<ii;i++)if((0!==(ch=followingBytes[i])||0===followingBytes[i+1])&&10!==ch&&13!==ch&&(ch<32||127<ch)){state=0;break}if(2===state)if(knownCommands){var tmpLexer=new Lexer(new Stream(followingBytes.slice()),knownCommands);tmpLexer._hexStringWarn=()=>{};let numArgs=0;for(;;){var nextObj=tmpLexer.getObj();if(nextObj===EOF){state=0;break}if(nextObj instanceof Cmd){nextObj=knownCommands[nextObj.cmd];if(!nextObj){state=0;break}if(nextObj.variableArgs?numArgs<=nextObj.numArgs:numArgs===nextObj.numArgs)break;numArgs=0}else numArgs++}if(2===state)break}else warn("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.")}else state=0;-1===ch&&(warn("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker"),maybeEIPos)&&(warn('... trying to recover by using the last "EI" occurrence.'),stream.skip(-(stream.pos-maybeEIPos)));let endOffset=4;return stream.skip(-endOffset),ch=stream.peekByte(),stream.skip(endOffset),isWhiteSpace(ch)||endOffset--,stream.pos-endOffset-startPos}findDCTDecodeInlineStreamEnd(stream){var startPos=stream.pos;let foundEOI=!1,b,markerLength;for(;-1!==(b=stream.getByte());)if(255===b){switch(stream.getByte()){case 0:break;case 255:stream.skip(-1);break;case 217:foundEOI=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:2<(markerLength=stream.getUint16())?stream.skip(markerLength-2):stream.skip(-2)}if(foundEOI)break}startPos=stream.pos-startPos;return-1===b?(warn("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}findASCII85DecodeInlineStreamEnd(stream){var startPos=stream.pos;let ch;for(;-1!==(ch=stream.getByte());)if(126===ch){var tildePos=stream.pos;for(ch=stream.peekByte();isWhiteSpace(ch);)stream.skip(),ch=stream.peekByte();if(62===ch){stream.skip();break}if(stream.pos>tildePos){tildePos=stream.peekBytes(2);if(69===tildePos[0]&&73===tildePos[1])break}}startPos=stream.pos-startPos;return-1===ch?(warn("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}findASCIIHexDecodeInlineStreamEnd(stream){var startPos=stream.pos;let ch;for(;-1!==(ch=stream.getByte())&&62!==ch;);startPos=stream.pos-startPos;return-1===ch?(warn("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}inlineStreamSkipEI(stream){let state=0,ch;for(;-1!==(ch=stream.getByte());)if(0===state)state=69===ch?1:0;else if(1===state)state=73===ch?2:0;else if(2===state)break}makeInlineImage(cipherTransform){var lexer=this.lexer,stream=lexer.stream,dictMap=Object.create(null);let dictLength;for(;!isCmd(this.buf1,"ID")&&this.buf1!==EOF;){if(!(this.buf1 instanceof Name))throw new FormatError("Dictionary key must be a name object");var key=this.buf1.name;if(this.shift(),this.buf1===EOF)break;dictMap[key]=this.getObj(cipherTransform)}-1!==lexer.beginInlineImagePos&&(dictLength=stream.pos-lexer.beginInlineImagePos);var filter=this.xref.fetchIfRef(dictMap.F||dictMap.Filter);let filterName;filter instanceof Name?filterName=filter.name:Array.isArray(filter)&&(filter=this.xref.fetchIfRef(filter[0]))instanceof Name&&(filterName=filter.name);filter=stream.pos;let length;switch(filterName){case"DCT":case"DCTDecode":length=this.findDCTDecodeInlineStreamEnd(stream);break;case"A85":case"ASCII85Decode":length=this.findASCII85DecodeInlineStreamEnd(stream);break;case"AHx":case"ASCIIHexDecode":length=this.findASCIIHexDecodeInlineStreamEnd(stream);break;default:length=this.findDefaultInlineStreamEnd(stream)}let cacheKey;if(length<MAX_LENGTH_TO_CACHE&&0<dictLength){var initialStreamPos=stream.pos,lexer=(stream.pos=lexer.beginInlineImagePos,cacheKey=getInlineImageCacheKey(stream.getBytes(dictLength+length)),stream.pos=initialStreamPos,this.imageCache[cacheKey]);if(void 0!==lexer)return this.buf2=Cmd.get("EI"),this.shift(),lexer.reset(),lexer}var dict=new Dict(this.xref);for(const key in dictMap)dict.set(key,dictMap[key]);let imageStream=stream.makeSubStream(filter,length,dict);return cipherTransform&&(imageStream=cipherTransform.createStream(imageStream,length)),(imageStream=this.filter(imageStream,dict,length)).dict=dict,void 0!==cacheKey&&(imageStream.cacheKey="inline_img_"+ ++this._imageId,this.imageCache[cacheKey]=imageStream),this.buf2=Cmd.get("EI"),this.shift(),imageStream}_findStreamLength(startPos,signature){for(var stream=this.lexer["stream"],signatureLength=(stream.pos=startPos,signature.length);stream.pos<stream.end;){var scanBytes=stream.peekBytes(2048),scanLength=scanBytes.length-signatureLength;if(scanLength<=0)break;let pos=0;for(;pos<scanLength;){let j=0;for(;j<signatureLength&&scanBytes[pos+j]===signature[j];)j++;if(j>=signatureLength)return stream.pos+=pos,stream.pos-startPos;pos++}stream.pos+=scanLength}return-1}makeStream(dict,cipherTransform){var lexer=this.lexer;let stream=lexer.stream;lexer.skipToNextLine();var startPos=stream.pos-1;let length=dict.get("Length");if(Number.isInteger(length)||(info(`Bad length "${length&&length.toString()}" in stream.`),length=0),stream.pos=startPos+length,lexer.nextChar(),!this.tryShift()||!isCmd(this.buf2,"endstream")){var ENDSTREAM_SIGNATURE=new Uint8Array([101,110,100,115,116,114,101,97,109]);let actualLength=this._findStreamLength(startPos,ENDSTREAM_SIGNATURE);if(actualLength<0){for(let i=1;i<=1;i++){var end=ENDSTREAM_SIGNATURE.length-i,TRUNCATED_SIGNATURE=ENDSTREAM_SIGNATURE.slice(0,end),maybeLength=this._findStreamLength(startPos,TRUNCATED_SIGNATURE);if(0<=maybeLength){if(!isWhiteSpace(stream.peekBytes(1+end)[end]))break;info(`Found "${bytesToString(TRUNCATED_SIGNATURE)}" when `+"searching for endstream command."),actualLength=maybeLength;break}}if(actualLength<0)throw new FormatError("Missing endstream command.")}length=actualLength,lexer.nextChar(),this.shift()}return this.shift(),this.shift(),stream=stream.makeSubStream(startPos,length,dict),cipherTransform&&(stream=cipherTransform.createStream(stream,length)),(stream=this.filter(stream,dict,length)).dict=dict,stream}filter(stream,dict,length){let filter=dict.get("F","Filter"),params=dict.get("DP","DecodeParms");if(filter instanceof Name)return Array.isArray(params)&&warn("/DecodeParms should not be an Array, when /Filter is a Name."),this.makeFilter(stream,filter.name,length,params);let maybeLength=length;if(Array.isArray(filter)){var filterArray=filter,paramsArray=params;for(let i=0,ii=filterArray.length;i<ii;++i){if(!((filter=this.xref.fetchIfRef(filterArray[i]))instanceof Name))throw new FormatError(`Bad filter name "${filter}"`);params=null,Array.isArray(paramsArray)&&i in paramsArray&&(params=this.xref.fetchIfRef(paramsArray[i])),stream=this.makeFilter(stream,filter.name,maybeLength,params),maybeLength=null}}return stream}makeFilter(stream,name,maybeLength,params){if(0===maybeLength)return warn(`Empty "${name}" stream.`),new NullStream;try{switch(name){case"Fl":case"FlateDecode":return params?new PredictorStream(new FlateStream(stream,maybeLength),maybeLength,params):new FlateStream(stream,maybeLength);case"LZW":case"LZWDecode":let earlyChange=1;return params?(params.has("EarlyChange")&&(earlyChange=params.get("EarlyChange")),new PredictorStream(new LZWStream(stream,maybeLength,earlyChange),maybeLength,params)):new LZWStream(stream,maybeLength,earlyChange);case"DCT":case"DCTDecode":return new JpegStream(stream,maybeLength,params);case"JPX":case"JPXDecode":return new JpxStream(stream,maybeLength,params);case"A85":case"ASCII85Decode":return new Ascii85Stream(stream,maybeLength);case"AHx":case"ASCIIHexDecode":return new AsciiHexStream(stream,maybeLength);case"CCF":case"CCITTFaxDecode":return new CCITTFaxStream(stream,maybeLength,params);case"RL":case"RunLengthDecode":return new RunLengthStream(stream,maybeLength);case"JBIG2Decode":return new Jbig2Stream(stream,maybeLength,params)}return warn(`Filter "${name}" is not supported.`),stream}catch(ex){if(ex instanceof MissingDataException)throw ex;return warn(`Invalid stream: "${ex}"`),new NullStream}}}const specialChars=[1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function toHexDigit(ch){return 48<=ch&&ch<=57?15&ch:65<=ch&&ch<=70||97<=ch&&ch<=102?9+(15&ch):-1}class Lexer{constructor(stream,knownCommands=null){this.stream=stream,this.nextChar(),this.strBuf=[],this.knownCommands=knownCommands,this._hexStringNumWarn=0,this.beginInlineImagePos=-1}nextChar(){return this.currentChar=this.stream.getByte()}peekChar(){return this.stream.peekByte()}getNumber(){let ch=this.currentChar,eNotation=!1,divideBy=0,sign=1;if(45===ch?(sign=-1,45===(ch=this.nextChar())&&(ch=this.nextChar())):43===ch&&(ch=this.nextChar()),10===ch||13===ch)for(;10===(ch=this.nextChar())||13===ch;);if(46===ch&&(divideBy=10,ch=this.nextChar()),ch<48||57<ch){var msg=`Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`;if(isWhiteSpace(ch)||-1===ch)return info(`Lexer.getNumber - "${msg}".`),0;throw new FormatError(msg)}let baseValue=ch-48,powerValue=0,powerValueSign=1;for(;0<=(ch=this.nextChar());)if(48<=ch&&ch<=57){var currentDigit=ch-48;eNotation?powerValue=10*powerValue+currentDigit:(0!==divideBy&&(divideBy*=10),baseValue=10*baseValue+currentDigit)}else if(46===ch){if(0!==divideBy)break;divideBy=1}else if(45===ch)warn("Badly formatted number: minus sign in the middle");else{if(69!==ch&&101!==ch)break;if(43===(ch=this.peekChar())||45===ch)powerValueSign=45===ch?-1:1,this.nextChar();else if(ch<48||57<ch)break;eNotation=!0}return 0!==divideBy&&(baseValue/=divideBy),eNotation&&(baseValue*=10**(powerValueSign*powerValue)),sign*baseValue}getString(){let numParen=1,done=!1;var strBuf=this.strBuf;strBuf.length=0;let ch=this.nextChar();for(;;){let charBuffered=!1;switch(0|ch){case-1:warn("Unterminated string"),done=!0;break;case 40:++numParen,strBuf.push("(");break;case 41:0==--numParen?(this.nextChar(),done=!0):strBuf.push(")");break;case 92:switch(ch=this.nextChar()){case-1:warn("Unterminated string"),done=!0;break;case 110:strBuf.push("\n");break;case 114:strBuf.push("\r");break;case 116:strBuf.push("\t");break;case 98:strBuf.push("\b");break;case 102:strBuf.push("\f");break;case 92:case 40:case 41:strBuf.push(String.fromCharCode(ch));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let x=15&ch;ch=this.nextChar(),charBuffered=!0,48<=ch&&ch<=55&&(x=(x<<3)+(15&ch),48<=(ch=this.nextChar()))&&ch<=55&&(charBuffered=!1,x=(x<<3)+(15&ch)),strBuf.push(String.fromCharCode(x));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:strBuf.push(String.fromCharCode(ch))}break;default:strBuf.push(String.fromCharCode(ch))}if(done)break;charBuffered||(ch=this.nextChar())}return strBuf.join("")}getName(){let ch,previousCh;var strBuf=this.strBuf;for(strBuf.length=0;0<=(ch=this.nextChar())&&!specialChars[ch];)if(35===ch){if(ch=this.nextChar(),specialChars[ch]){warn("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number."),strBuf.push("#");break}var x=toHexDigit(ch);if(-1!==x){previousCh=ch;var x2=toHexDigit(ch=this.nextChar());if(-1===x2){if(warn(`Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) `+"in hexadecimal number."),strBuf.push("#",String.fromCharCode(previousCh)),specialChars[ch])break;strBuf.push(String.fromCharCode(ch))}else strBuf.push(String.fromCharCode(x<<4|x2))}else strBuf.push("#",String.fromCharCode(ch))}else strBuf.push(String.fromCharCode(ch));return 127<strBuf.length&&warn("Name token is longer than allowed by the spec: "+strBuf.length),Name.get(strBuf.join(""))}_hexStringWarn(ch){5==this._hexStringNumWarn++?warn("getHexString - ignoring additional invalid characters."):5<this._hexStringNumWarn||warn("getHexString - ignoring invalid character: "+ch)}getHexString(){var strBuf=this.strBuf;strBuf.length=0;let ch=this.currentChar,isFirstHex=!0,firstDigit,secondDigit;for(this._hexStringNumWarn=0;;){if(ch<0){warn("Unterminated hex string");break}if(62===ch){this.nextChar();break}if(1!==specialChars[ch]){if(isFirstHex){if(-1===(firstDigit=toHexDigit(ch))){this._hexStringWarn(ch),ch=this.nextChar();continue}}else{if(-1===(secondDigit=toHexDigit(ch))){this._hexStringWarn(ch),ch=this.nextChar();continue}strBuf.push(String.fromCharCode(firstDigit<<4|secondDigit))}isFirstHex=!isFirstHex}ch=this.nextChar()}return strBuf.join("")}getObj(){let comment=!1,ch=this.currentChar;for(;;){if(ch<0)return EOF;if(comment)10!==ch&&13!==ch||(comment=!1);else if(37===ch)comment=!0;else if(1!==specialChars[ch])break;ch=this.nextChar()}switch(0|ch){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:return this.nextChar(),Cmd.get("[");case 93:return this.nextChar(),Cmd.get("]");case 60:return 60===(ch=this.nextChar())?(this.nextChar(),Cmd.get("<<")):this.getHexString();case 62:return 62===(ch=this.nextChar())?(this.nextChar(),Cmd.get(">>")):Cmd.get(">");case 123:return this.nextChar(),Cmd.get("{");case 125:return this.nextChar(),Cmd.get("}");case 41:throw this.nextChar(),new FormatError("Illegal character: "+ch)}let str=String.fromCharCode(ch);if(ch<32||127<ch){var nextCh=this.peekChar();if(32<=nextCh&&nextCh<=127)return this.nextChar(),Cmd.get(str)}var knownCommands=this.knownCommands;let knownCommandFound=void 0!==knownCommands?.[str];for(;0<=(ch=this.nextChar())&&!specialChars[ch];){var possibleCommand=str+String.fromCharCode(ch);if(knownCommandFound&&void 0===knownCommands[possibleCommand])break;if(128===str.length)throw new FormatError("Command token too long: "+str.length);str=possibleCommand,knownCommandFound=void 0!==knownCommands?.[str]}return"true"===str||"false"!==str&&("null"===str?null:("BI"===str&&(this.beginInlineImagePos=this.stream.pos),Cmd.get(str)))}skipToNextLine(){let ch=this.currentChar;for(;0<=ch;){if(13===ch){10===(ch=this.nextChar())&&this.nextChar();break}if(10===ch){this.nextChar();break}ch=this.nextChar()}}}class Linearization{static create(stream){function getInt(linDict,name,allowZeroValue=!1){linDict=linDict.get(name);if(Number.isInteger(linDict)&&(allowZeroValue?0<=linDict:0<linDict))return linDict;throw new Error(`The "${name}" parameter in the linearization `+"dictionary is invalid.")}var parser=new Parser({lexer:new Lexer(stream),xref:null}),obj1=parser.getObj(),obj2=parser.getObj(),obj3=parser.getObj(),parser=parser.getObj();let obj,length;if(!(Number.isInteger(obj1)&&Number.isInteger(obj2)&&isCmd(obj3,"obj")&&parser instanceof Dict&&"number"==typeof(obj=parser.get("Linearized"))&&0<obj))return null;if((length=getInt(parser,"L"))!==stream.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:length,hints:function(linDict){var hints=linDict.get("H");let hintsLength;if(!Array.isArray(hints)||2!==(hintsLength=hints.length)&&4!==hintsLength)throw new Error("Hint array in the linearization dictionary is invalid.");for(let index=0;index<hintsLength;index++){var hint=hints[index];if(!(Number.isInteger(hint)&&0<hint))throw new Error(`Hint (${index}) in the linearization dictionary is invalid.`)}return hints}(parser),objectNumberFirst:getInt(parser,"O"),endFirst:getInt(parser,"E"),numPages:getInt(parser,"N"),mainXRefEntriesOffset:getInt(parser,"T"),pageFirst:parser.has("P")?getInt(parser,"P",!0):0}}}const BUILT_IN_CMAPS=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],MAX_MAP_RANGE=2**24-1;class CMap{constructor(builtInCMap=!1){this.codespaceRanges=[[],[],[],[]],this.numCodespaceRanges=0,this._map=[],this.name="",this.vertical=!1,this.useCMap=null,this.builtInCMap=builtInCMap}addCodespaceRange(n,low,high){this.codespaceRanges[n-1].push(low,high),this.numCodespaceRanges++}mapCidRange(low,high,dstLow){if(high-low>MAX_MAP_RANGE)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;low<=high;)this._map[low++]=dstLow++}mapBfRange(low,high,dstLow){if(high-low>MAX_MAP_RANGE)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");for(var lastByte=dstLow.length-1;low<=high;){var nextCharCode=(this._map[low++]=dstLow).charCodeAt(lastByte)+1;255<nextCharCode?dstLow=dstLow.substring(0,lastByte-1)+String.fromCharCode(dstLow.charCodeAt(lastByte-1)+1)+"\0":dstLow=dstLow.substring(0,lastByte)+String.fromCharCode(nextCharCode)}}mapBfRangeToArray(low,high,array){if(high-low>MAX_MAP_RANGE)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");var ii=array.length;let i=0;for(;low<=high&&i<ii;)this._map[low]=array[i++],++low}mapOne(src,dst){this._map[src]=dst}lookup(code){return this._map[code]}contains(code){return void 0!==this._map[code]}forEach(callback){var map=this._map,length=map.length;if(length<=65536)for(let i=0;i<length;i++)void 0!==map[i]&&callback(i,map[i]);else for(const i in map)callback(i,map[i])}charCodeOf(value){var map=this._map;if(map.length<=65536)return map.indexOf(value);for(const charCode in map)if(map[charCode]===value)return 0|charCode;return-1}getMap(){return this._map}readCharCode(str,offset,out){let c=0;var codespaceRanges=this.codespaceRanges;for(let n=0,nn=codespaceRanges.length;n<nn;n++){c=(c<<8|str.charCodeAt(offset+n))>>>0;var codespaceRange=codespaceRanges[n];for(let k=0,kk=codespaceRange.length;k<kk;){var low=codespaceRange[k++],high=codespaceRange[k++];if(c>=low&&c<=high)return out.charcode=c,void(out.length=n+1)}}out.charcode=0,out.length=1}getCharCodeLength(charCode){var codespaceRanges=this.codespaceRanges;for(let n=0,nn=codespaceRanges.length;n<nn;n++){var codespaceRange=codespaceRanges[n];for(let k=0,kk=codespaceRange.length;k<kk;){var low=codespaceRange[k++],high=codespaceRange[k++];if(low<=charCode&&charCode<=high)return n+1}}return 1}get length(){return this._map.length}get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(let i=0;i<65536;i++)if(this._map[i]!==i)return!1;return!0}}class IdentityCMap extends CMap{constructor(vertical,n){super(),this.vertical=vertical,this.addCodespaceRange(n,0,65535)}mapCidRange(low,high,dstLow){unreachable("should not call mapCidRange")}mapBfRange(low,high,dstLow){unreachable("should not call mapBfRange")}mapBfRangeToArray(low,high,array){unreachable("should not call mapBfRangeToArray")}mapOne(src,dst){unreachable("should not call mapCidOne")}lookup(code){return Number.isInteger(code)&&code<=65535?code:void 0}contains(code){return Number.isInteger(code)&&code<=65535}forEach(callback){for(let i=0;i<=65535;i++)callback(i,i)}charCodeOf(value){return Number.isInteger(value)&&value<=65535?value:-1}getMap(){var map=new Array(65536);for(let i=0;i<=65535;i++)map[i]=i;return map}get length(){return 65536}get isIdentityCMap(){unreachable("should not access .isIdentityCMap")}}function strToInt(str){let a=0;for(let i=0;i<str.length;i++)a=a<<8|str.charCodeAt(i);return a>>>0}function expectString(obj){if("string"!=typeof obj)throw new FormatError("Malformed CMap: expected string.")}function expectInt(obj){if(!Number.isInteger(obj))throw new FormatError("Malformed CMap: expected int.")}function parseBfChar(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endbfchar"))return;expectString(obj);var src=strToInt(obj);expectString(obj=lexer.getObj()),cMap.mapOne(src,obj)}}function parseBfRange(cMap,lexer){for(;;){let obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endbfrange"))return;expectString(obj);var low=strToInt(obj),high=(expectString(obj=lexer.getObj()),strToInt(obj));if(obj=lexer.getObj(),Number.isInteger(obj)||"string"==typeof obj){var dstLow=Number.isInteger(obj)?String.fromCharCode(obj):obj;cMap.mapBfRange(low,high,dstLow)}else{if(!isCmd(obj,"["))break;obj=lexer.getObj();for(var array=[];!isCmd(obj,"]")&&obj!==EOF;)array.push(obj),obj=lexer.getObj();cMap.mapBfRangeToArray(low,high,array)}}throw new FormatError("Invalid bf range.")}function parseCidChar(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcidchar"))return;expectString(obj);var src=strToInt(obj);expectInt(obj=lexer.getObj()),cMap.mapOne(src,obj)}}function parseCidRange(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcidrange"))return;expectString(obj);var low=strToInt(obj),high=(expectString(obj=lexer.getObj()),strToInt(obj));expectInt(obj=lexer.getObj());cMap.mapCidRange(low,high,obj)}}function parseCodespaceRange(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcodespacerange"))return;if("string"!=typeof obj)break;var low=strToInt(obj);if("string"!=typeof(obj=lexer.getObj()))break;var high=strToInt(obj);cMap.addCodespaceRange(obj.length,low,high)}throw new FormatError("Invalid codespace range.")}function parseWMode(cMap,lexer){lexer=lexer.getObj();Number.isInteger(lexer)&&(cMap.vertical=!!lexer)}function parseCMapName(cMap,lexer){lexer=lexer.getObj();lexer instanceof Name&&(cMap.name=lexer.name)}async function parseCMap(cMap,lexer,fetchBuiltInCMap,useCMap){let previous,embeddedUseCMap;objLoop:for(;;)try{var obj=lexer.getObj();if(obj===EOF)break;if(obj instanceof Name)"WMode"===obj.name?parseWMode(cMap,lexer):"CMapName"===obj.name&&parseCMapName(cMap,lexer),previous=obj;else if(obj instanceof Cmd)switch(obj.cmd){case"endcmap":break objLoop;case"usecmap":previous instanceof Name&&(embeddedUseCMap=previous.name);break;case"begincodespacerange":parseCodespaceRange(cMap,lexer);break;case"beginbfchar":parseBfChar(cMap,lexer);break;case"begincidchar":parseCidChar(cMap,lexer);break;case"beginbfrange":parseBfRange(cMap,lexer);break;case"begincidrange":parseCidRange(cMap,lexer)}}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Invalid cMap data: "+ex);continue}return(useCMap=!useCMap&&embeddedUseCMap?embeddedUseCMap:useCMap)?extendCMap(cMap,fetchBuiltInCMap,useCMap):cMap}async function extendCMap(cMap,fetchBuiltInCMap,useCMap){if(cMap.useCMap=await createBuiltInCMap(useCMap,fetchBuiltInCMap),0===cMap.numCodespaceRanges){var useCodespaceRanges=cMap.useCMap.codespaceRanges;for(let i=0;i<useCodespaceRanges.length;i++)cMap.codespaceRanges[i]=useCodespaceRanges[i].slice();cMap.numCodespaceRanges=cMap.useCMap.numCodespaceRanges}return cMap.useCMap.forEach(function(key,value){cMap.contains(key)||cMap.mapOne(key,cMap.useCMap.lookup(key))}),cMap}async function createBuiltInCMap(name,fetchBuiltInCMap){if("Identity-H"===name)return new IdentityCMap(!1,2);if("Identity-V"===name)return new IdentityCMap(!0,2);if(!BUILT_IN_CMAPS.includes(name))throw new Error("Unknown CMap name: "+name);if(!fetchBuiltInCMap)throw new Error("Built-in CMap parameters are not provided.");var{cMapData:name,compressionType}=await fetchBuiltInCMap(name);const cMap=new CMap(!0);if(compressionType===CMapCompressionType.BINARY)return(new BinaryCMapReader).process(name,cMap,useCMap=>extendCMap(cMap,fetchBuiltInCMap,useCMap));if(compressionType===CMapCompressionType.NONE)return name=new Lexer(new Stream(name)),parseCMap(cMap,name,fetchBuiltInCMap,null);throw new Error('Invalid CMap "compressionType" value: '+compressionType)}class CMapFactory{static async create({encoding,fetchBuiltInCMap,useCMap}){if(encoding instanceof Name)return createBuiltInCMap(encoding.name,fetchBuiltInCMap);if(encoding instanceof BaseStream)return(encoding=await parseCMap(new CMap,new Lexer(encoding),fetchBuiltInCMap,useCMap)).isIdentityCMap?createBuiltInCMap(encoding.name,fetchBuiltInCMap):encoding;throw new Error("Encoding required.")}}const ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"],ExpertEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],MacExpertEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],MacRomanEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"],StandardEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""],WinAnsiEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"],SymbolSetEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""],ZapfDingbatsEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];function getEncoding(encodingName){switch(encodingName){case"WinAnsiEncoding":return WinAnsiEncoding;case"StandardEncoding":return StandardEncoding;case"MacRomanEncoding":return MacRomanEncoding;case"SymbolSetEncoding":return SymbolSetEncoding;case"ZapfDingbatsEncoding":return ZapfDingbatsEncoding;case"ExpertEncoding":return ExpertEncoding;case"MacExpertEncoding":return MacExpertEncoding;default:return null}}const MAX_SUBR_NESTING=10,CFFStandardStrings=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],NUM_STANDARD_CFF_STRINGS=391,CharstringValidationData=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],CharstringValidationData12=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]+stack[index-1]}},{id:"sub",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]-stack[index-1]}},{id:"div",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]/stack[index-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn(stack,index){stack[index-1]=-stack[index-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]*stack[index-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];class CFFParser{constructor(file,properties,seacAnalysisEnabled){this.bytes=file.getBytes(),this.properties=properties,this.seacAnalysisEnabled=!!seacAnalysisEnabled}parse(){var properties=this.properties,cff=new CFF,header=(this.cff=cff,this.parseHeader()),nameIndex=this.parseIndex(header.endPos),topDictIndex=this.parseIndex(nameIndex.endPos),stringIndex=this.parseIndex(topDictIndex.endPos),globalSubrIndex=this.parseIndex(stringIndex.endPos),topDictIndex=this.parseDict(topDictIndex.obj.get(0)),topDictIndex=this.createDict(CFFTopDict,topDictIndex,cff.strings),header=(cff.header=header.obj,cff.names=this.parseNameIndex(nameIndex.obj),cff.strings=this.parseStringIndex(stringIndex.obj),cff.topDict=topDictIndex,cff.globalSubrIndex=globalSubrIndex.obj,this.parsePrivateDict(cff.topDict),cff.isCIDFont=topDictIndex.hasName("ROS"),topDictIndex.getByName("CharStrings")),nameIndex=this.parseIndex(header).obj,stringIndex=topDictIndex.getByName("FontMatrix"),header=(stringIndex&&(properties.fontMatrix=stringIndex),topDictIndex.getByName("FontBBox"));header&&(properties.ascent=Math.max(header[3],header[1]),properties.descent=Math.min(header[1],header[3]),properties.ascentScaled=!0);let charset,encoding;if(cff.isCIDFont){var fdArrayIndex=this.parseIndex(topDictIndex.getByName("FDArray")).obj;for(let i=0,ii=fdArrayIndex.count;i<ii;++i){var dictRaw=fdArrayIndex.get(i),dictRaw=this.createDict(CFFTopDict,this.parseDict(dictRaw),cff.strings);this.parsePrivateDict(dictRaw),cff.fdArray.push(dictRaw)}encoding=null,charset=this.parseCharsets(topDictIndex.getByName("charset"),nameIndex.count,cff.strings,!0),cff.fdSelect=this.parseFDSelect(topDictIndex.getByName("FDSelect"),nameIndex.count)}else charset=this.parseCharsets(topDictIndex.getByName("charset"),nameIndex.count,cff.strings,!1),encoding=this.parseEncoding(topDictIndex.getByName("Encoding"),properties,cff.strings,charset.charset);cff.charset=charset,cff.encoding=encoding;stringIndex=this.parseCharStrings({charStrings:nameIndex,localSubrIndex:topDictIndex.privateDict.subrsIndex,globalSubrIndex:globalSubrIndex.obj,fdSelect:cff.fdSelect,fdArray:cff.fdArray,privateDict:topDictIndex.privateDict});return cff.charStrings=stringIndex.charStrings,cff.seacs=stringIndex.seacs,cff.widths=stringIndex.widths,cff}parseHeader(){let bytes=this.bytes;var bytesLength=bytes.length;let offset=0;for(;offset<bytesLength&&1!==bytes[offset];)++offset;if(offset>=bytesLength)throw new FormatError("Invalid CFF header");0!==offset&&(info("cff data is shifted"),bytes=bytes.subarray(offset),this.bytes=bytes);var major=bytes[0],minor=bytes[1],hdrSize=bytes[2],offSize=bytes[3];return{obj:new CFFHeader(major,minor,hdrSize,offSize),endPos:hdrSize}}parseDict(dict){let pos=0;function parseOperand(){let value=dict[pos++];if(30!==value)return 28===value?value=((value=dict[pos++])<<24|dict[pos++]<<16)>>16:29===value?value=(value=(value=(value=dict[pos++])<<8|dict[pos++])<<8|dict[pos++])<<8|dict[pos++]:32<=value&&value<=246?value-139:247<=value&&value<=250?256*(value-247)+dict[pos++]+108:251<=value&&value<=254?-256*(value-251)-dict[pos++]-108:(warn('CFFParser_parseDict: "'+value+'" is a reserved command.'),NaN);{let str="";var lookup=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],length=dict.length;for(;pos<length;){var b=dict[pos++],b1=b>>4,b=15&b;if(15==b1)break;if(str+=lookup[b1],15==b)break;str+=lookup[b]}return parseFloat(str)}}let operands=[];for(var entries=[],end=(pos=0,dict.length);pos<end;){let b=dict[pos];b<=21?(12===b&&(b=b<<8|dict[++pos]),entries.push([b,operands]),operands=[],++pos):operands.push(parseOperand())}return entries}parseIndex(pos){var cffIndex=new CFFIndex,bytes=this.bytes,count=bytes[pos++]<<8|bytes[pos++],offsets=[];let end=pos,i,ii;if(0!=count){var offsetSize=bytes[pos++],startPos=pos+(1+count)*offsetSize-1;for(i=0,ii=1+count;i<ii;++i){let offset=0;for(let j=0;j<offsetSize;++j)offset=(offset<<=8)+bytes[pos++];offsets.push(startPos+offset)}end=offsets[count]}for(i=0,ii=offsets.length-1;i<ii;++i){var offsetStart=offsets[i],offsetEnd=offsets[i+1];cffIndex.add(bytes.subarray(offsetStart,offsetEnd))}return{obj:cffIndex,endPos:end}}parseNameIndex(index){var names=[];for(let i=0,ii=index.count;i<ii;++i){var name=index.get(i);names.push(bytesToString(name))}return names}parseStringIndex(index){var strings=new CFFStrings;for(let i=0,ii=index.count;i<ii;++i){var data=index.get(i);strings.add(bytesToString(data))}return strings}createDict(Type,dict,strings){var key,value,cffDict=new Type(strings);for([key,value]of dict)cffDict.setByKey(key,value);return cffDict}parseCharString(state,data,localSubrIndex,globalSubrIndex){if(!data||state.callDepth>MAX_SUBR_NESTING)return!1;let stackSize=state.stackSize;var stack=state.stack;let length=data.length;for(let j=0;j<length;){var value=data[j++];let validationCommand=null;if(12===value){var q=data[j++];0===q?(data[j-2]=139,data[j-1]=22,stackSize=0):validationCommand=CharstringValidationData12[q]}else if(28===value)stack[stackSize]=(data[j]<<24|data[j+1]<<16)>>16,j+=2,stackSize++;else if(14===value){if(4<=stackSize&&(stackSize-=4,this.seacAnalysisEnabled))return state.seac=stack.slice(stackSize,stackSize+4),!1;validationCommand=CharstringValidationData[value]}else if(32<=value&&value<=246)stack[stackSize]=value-139,stackSize++;else if(247<=value&&value<=254)stack[stackSize]=value<251?(value-247<<8)+data[j]+108:-(value-251<<8)-data[j]-108,j++,stackSize++;else if(255===value)stack[stackSize]=(data[j]<<24|data[j+1]<<16|data[j+2]<<8|data[j+3])/65536,j+=4,stackSize++;else if(19===value||20===value){if(state.hints+=stackSize>>1,0===state.hints){data.copyWithin(j-1,j,-1),--j,--length;continue}j+=state.hints+7>>3,stackSize%=2,validationCommand=CharstringValidationData[value]}else{if(10===value||29===value){q=10===value?localSubrIndex:globalSubrIndex;if(!q)return warn("Missing subrsIndex for "+(validationCommand=CharstringValidationData[value]).id),!1;let bias=32768;q.count<1240?bias=107:q.count<33900&&(bias=1131);var subrNumber=stack[--stackSize]+bias;if(subrNumber<0||subrNumber>=q.count||isNaN(subrNumber))return warn("Out of bounds subrIndex for "+(validationCommand=CharstringValidationData[value]).id),!1;if(state.stackSize=stackSize,state.callDepth++,!this.parseCharString(state,q.get(subrNumber),localSubrIndex,globalSubrIndex))return!1;state.callDepth--,stackSize=state.stackSize;continue}if(11===value)return state.stackSize=stackSize,!0;if(0===value&&j===data.length)data[j-1]=14,validationCommand=CharstringValidationData[14];else{if(9===value){data.copyWithin(j-1,j,-1),--j,--length;continue}validationCommand=CharstringValidationData[value]}}if(validationCommand){if(validationCommand.stem&&(state.hints+=stackSize>>1,3===value||23===value?state.hasVStems=!0:!state.hasVStems||1!==value&&18!==value||(warn("CFF stem hints are in wrong order"),data[j-1]=1===value?3:23)),"min"in validationCommand&&!state.undefStack&&stackSize<validationCommand.min)return warn("Not enough parameters for "+validationCommand.id+"; actual: "+stackSize+", expected: "+validationCommand.min),0===stackSize&&(data[j-1]=14,!0);state.firstStackClearing&&validationCommand.stackClearing&&(state.firstStackClearing=!1,2<=(stackSize-=validationCommand.min)&&validationCommand.stem?stackSize%=2:1<stackSize&&warn("Found too many parameters for stack-clearing command"),0<stackSize)&&(state.width=stack[stackSize-1]),"stackDelta"in validationCommand?("stackFn"in validationCommand&&validationCommand.stackFn(stack,stackSize),stackSize+=validationCommand.stackDelta):validationCommand.stackClearing?stackSize=0:validationCommand.resetStack?(stackSize=0,state.undefStack=!1):validationCommand.undefStack&&(stackSize=0,state.undefStack=!0,state.firstStackClearing=!1)}}return length<data.length&&data.fill(14,length),state.stackSize=stackSize,!0}parseCharStrings({charStrings,localSubrIndex,globalSubrIndex,fdSelect,fdArray,privateDict}){var seacs=[],widths=[],count=charStrings.count;for(let i=0;i<count;i++){var fdIndex,charstring=charStrings.get(i),state={callDepth:0,stackSize:0,stack:[],undefStack:!0,hints:0,firstStackClearing:!0,seac:null,width:null,hasVStems:!1};let valid=!0,localSubrToUse=null,privateDictToUse=privateDict;fdSelect&&fdArray.length?(-1===(fdIndex=fdSelect.getFDIndex(i))&&(warn("Glyph index is not in fd select."),valid=!1),fdIndex>=fdArray.length&&(warn("Invalid fd index for glyph index."),valid=!1),valid&&(privateDictToUse=fdArray[fdIndex].privateDict,localSubrToUse=privateDictToUse.subrsIndex)):localSubrIndex&&(localSubrToUse=localSubrIndex),valid=valid&&this.parseCharString(state,charstring,localSubrToUse,globalSubrIndex),null!==state.width?(fdIndex=privateDictToUse.getByName("nominalWidthX"),widths[i]=fdIndex+state.width):(charstring=privateDictToUse.getByName("defaultWidthX"),widths[i]=charstring),null!==state.seac&&(seacs[i]=state.seac),valid||charStrings.set(i,new Uint8Array([14]))}return{charStrings:charStrings,seacs:seacs,widths:widths}}emptyPrivateDictionary(parentDict){var privateDict=this.createDict(CFFPrivateDict,[],parentDict.strings);parentDict.setByKey(18,[0,0]),parentDict.privateDict=privateDict}parsePrivateDict(parentDict){var size,relativeOffset,privateOffset;parentDict.hasName("Private")?(privateOffset=parentDict.getByName("Private"),Array.isArray(privateOffset)&&2===privateOffset.length?(size=privateOffset[0],privateOffset=privateOffset[1],0===size||privateOffset>=this.bytes.length?this.emptyPrivateDictionary(parentDict):(size=this.bytes.subarray(privateOffset,privateOffset+size),size=this.parseDict(size),size=this.createDict(CFFPrivateDict,size,parentDict.strings),0===(parentDict.privateDict=size).getByName("ExpansionFactor")&&size.setByName("ExpansionFactor",.06),size.getByName("Subrs")&&(relativeOffset=privateOffset+(privateOffset=size.getByName("Subrs")),0===privateOffset||relativeOffset>=this.bytes.length?this.emptyPrivateDictionary(parentDict):(privateOffset=this.parseIndex(relativeOffset),size.subrsIndex=privateOffset.obj)))):parentDict.removeByName("Private")):this.emptyPrivateDictionary(parentDict)}parseCharsets(pos,length,strings,cid){if(0===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.ISO_ADOBE,ISOAdobeCharset);if(1===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.EXPERT,ExpertCharset);if(2===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.EXPERT_SUBSET,ExpertSubsetCharset);var bytes=this.bytes,start=pos,format=bytes[pos++],charset=[cid?0:".notdef"];let id,count,i;switch(--length,format){case 0:for(i=0;i<length;i++)id=bytes[pos++]<<8|bytes[pos++],charset.push(cid?id:strings.get(id));break;case 1:for(;charset.length<=length;)for(id=bytes[pos++]<<8|bytes[pos++],count=bytes[pos++],i=0;i<=count;i++)charset.push(cid?id++:strings.get(id++));break;case 2:for(;charset.length<=length;)for(id=bytes[pos++]<<8|bytes[pos++],count=bytes[pos++]<<8|bytes[pos++],i=0;i<=count;i++)charset.push(cid?id++:strings.get(id++));break;default:throw new FormatError("Unknown charset format")}var end=pos,start=bytes.subarray(start,end);return new CFFCharset(!1,format,charset,start)}parseEncoding(pos,properties,strings,charset){const encoding=Object.create(null),bytes=this.bytes;let predefined=!1,format,i,ii,raw=null;if(0===pos||1===pos){predefined=!0;var baseEncoding=(format=pos)?ExpertEncoding:StandardEncoding;for(i=0,ii=charset.length;i<ii;i++){var index=baseEncoding.indexOf(charset[i]);-1!==index&&(encoding[index]=i)}}else{var dataStart=pos;switch(127&(format=bytes[pos++])){case 0:var glyphsCount=bytes[pos++];for(i=1;i<=glyphsCount;i++)encoding[bytes[pos++]]=i;break;case 1:var rangesCount=bytes[pos++];let gid=1;for(i=0;i<rangesCount;i++){var start=bytes[pos++],left=bytes[pos++];for(let j=start;j<=start+left;j++)encoding[j]=gid++}break;default:throw new FormatError(`Unknown encoding format: ${format} in CFF`)}var dataEnd=pos;if(128&format){bytes[dataStart]&=127;var supplementsCount=bytes[pos++];for(i=0;i<supplementsCount;i++){var code=bytes[pos++],sid=(bytes[pos++]<<8)+(255&bytes[pos++]);encoding[code]=charset.indexOf(strings.get(sid))}}raw=bytes.subarray(dataStart,dataEnd)}return format&=127,new CFFEncoding(predefined,format,encoding,raw)}parseFDSelect(pos,length){var bytes=this.bytes,format=bytes[pos++],fdSelect=[];let i;switch(format){case 0:for(i=0;i<length;++i){var id=bytes[pos++];fdSelect.push(id)}break;case 3:var rangesCount=bytes[pos++]<<8|bytes[pos++];for(i=0;i<rangesCount;++i){let first=bytes[pos++]<<8|bytes[pos++];0===i&&0!==first&&(warn("parseFDSelect: The first range must have a first GID of 0 -- trying to recover."),first=0);var fdIndex=bytes[pos++],next=bytes[pos]<<8|bytes[pos+1];for(let j=first;j<next;++j)fdSelect.push(fdIndex)}pos+=2;break;default:throw new FormatError(`parseFDSelect: Unknown format "${format}".`)}if(fdSelect.length!==length)throw new FormatError("parseFDSelect: Invalid font data.");return new CFFFDSelect(format,fdSelect)}}class CFF{constructor(){this.header=null,this.names=[],this.topDict=null,this.strings=new CFFStrings,this.globalSubrIndex=null,this.encoding=null,this.charset=null,this.charStrings=null,this.fdArray=[],this.fdSelect=null,this.isCIDFont=!1}duplicateFirstGlyph(){var glyphZero;65535<=this.charStrings.count?warn("Not enough space in charstrings to duplicate first glyph."):(glyphZero=this.charStrings.get(0),this.charStrings.add(glyphZero),this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]))}hasGlyphId(id){return!(id<0||id>=this.charStrings.count)&&0<this.charStrings.get(id).length}}class CFFHeader{constructor(major,minor,hdrSize,offSize){this.major=major,this.minor=minor,this.hdrSize=hdrSize,this.offSize=offSize}}class CFFStrings{constructor(){this.strings=[]}get(index){return 0<=index&&index<=NUM_STANDARD_CFF_STRINGS-1?CFFStandardStrings[index]:index-NUM_STANDARD_CFF_STRINGS<=this.strings.length?this.strings[index-NUM_STANDARD_CFF_STRINGS]:CFFStandardStrings[0]}getSID(str){var index=CFFStandardStrings.indexOf(str);return-1!==index?index:-1!==(index=this.strings.indexOf(str))?index+NUM_STANDARD_CFF_STRINGS:-1}add(value){this.strings.push(value)}get count(){return this.strings.length}}class CFFIndex{constructor(){this.objects=[],this.length=0}add(data){this.length+=data.length,this.objects.push(data)}set(index,data){this.length+=data.length-this.objects[index].length,this.objects[index]=data}get(index){return this.objects[index]}get count(){return this.objects.length}}class CFFDict{constructor(tables,strings){this.keyToNameMap=tables.keyToNameMap,this.nameToKeyMap=tables.nameToKeyMap,this.defaults=tables.defaults,this.types=tables.types,this.opcodes=tables.opcodes,this.order=tables.order,this.strings=strings,this.values=Object.create(null)}setByKey(key,value){if(!(key in this.keyToNameMap))return!1;if(0!==value.length){for(const val of value)if(isNaN(val))return warn(`Invalid CFFDict value: "${value}" for key "${key}".`),!0;var type=this.types[key];"num"!==type&&"sid"!==type&&"offset"!==type||(value=value[0]),this.values[key]=value}return!0}setByName(name,value){if(!(name in this.nameToKeyMap))throw new FormatError(`Invalid dictionary name "${name}"`);this.values[this.nameToKeyMap[name]]=value}hasName(name){return this.nameToKeyMap[name]in this.values}getByName(name){var key;if(name in this.nameToKeyMap)return((key=this.nameToKeyMap[name])in this.values?this.values:this.defaults)[key];throw new FormatError(`Invalid dictionary name ${name}"`)}removeByName(name){delete this.values[this.nameToKeyMap[name]]}static createTables(layout){var tables={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]};for(const entry of layout){var key=Array.isArray(entry[0])?(entry[0][0]<<8)+entry[0][1]:entry[0];tables.keyToNameMap[key]=entry[1],tables.nameToKeyMap[entry[1]]=key,tables.types[key]=entry[2],tables.defaults[key]=entry[3],tables.opcodes[key]=Array.isArray(entry[0])?entry[0]:[entry[0]],tables.order.push(key)}return tables}}const CFFTopDictLayout=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]];class CFFTopDict extends CFFDict{static get tables(){return shadow(this,"tables",this.createTables(CFFTopDictLayout))}constructor(strings){super(CFFTopDict.tables,strings),this.privateDict=null}}const CFFPrivateDictLayout=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]];class CFFPrivateDict extends CFFDict{static get tables(){return shadow(this,"tables",this.createTables(CFFPrivateDictLayout))}constructor(strings){super(CFFPrivateDict.tables,strings),this.subrsIndex=null}}const CFFCharsetPredefinedTypes={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2};class CFFCharset{constructor(predefined,format,charset,raw){this.predefined=predefined,this.format=format,this.charset=charset,this.raw=raw}}class CFFEncoding{constructor(predefined,format,encoding,raw){this.predefined=predefined,this.format=format,this.encoding=encoding,this.raw=raw}}class CFFFDSelect{constructor(format,fdSelect){this.format=format,this.fdSelect=fdSelect}getFDIndex(glyphIndex){return glyphIndex<0||glyphIndex>=this.fdSelect.length?-1:this.fdSelect[glyphIndex]}}class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(key){return key in this.offsets}track(key,location){if(key in this.offsets)throw new FormatError("Already tracking location of "+key);this.offsets[key]=location}offset(value){for(const key in this.offsets)this.offsets[key]+=value}setEntryLocation(key,values,output){if(!(key in this.offsets))throw new FormatError("Not tracking location of "+key);var data=output.data,dataOffset=this.offsets[key];for(let i=0,ii=values.length;i<ii;++i){var offset0=5*i+dataOffset,offset1=offset0+1,offset2=offset0+2,offset3=offset0+3,offset4=offset0+4;if(29!==data[offset0]||0!==data[offset1]||0!==data[offset2]||0!==data[offset3]||0!==data[offset4])throw new FormatError("writing to an offset that is not empty");var value=values[i];data[offset0]=29,data[offset1]=value>>24&255,data[offset2]=value>>16&255,data[offset3]=value>>8&255,data[offset4]=255&value}}}class CFFCompiler{constructor(cff){this.cff=cff}compile(){var cff=this.cff,output={data:[],length:0,add(data){try{this.data.push(...data)}catch{this.data=this.data.concat(data)}this.length=this.data.length}},header=this.compileHeader(cff.header),header=(output.add(header),this.compileNameIndex(cff.names));if(output.add(header),cff.isCIDFont&&cff.topDict.hasName("FontMatrix")){var base=cff.topDict.getByName("FontMatrix");cff.topDict.removeByName("FontMatrix");for(const subDict of cff.fdArray){let matrix=base.slice(0);subDict.hasName("FontMatrix")&&(matrix=Util.transform(matrix,subDict.getByName("FontMatrix"))),subDict.setByName("FontMatrix",matrix)}}16<cff.topDict.getByName("XUID")?.length&&cff.topDict.removeByName("XUID"),cff.topDict.setByName("charset",0);var header=this.compileTopDicts([cff.topDict],output.length,cff.isCIDFont),topDictTracker=(output.add(header.output),header.trackers[0]),stringIndex=this.compileStringIndex(cff.strings.strings),stringIndex=(output.add(stringIndex),this.compileIndex(cff.globalSubrIndex)),stringIndex=(output.add(stringIndex),cff.encoding&&cff.topDict.hasName("Encoding")&&(cff.encoding.predefined?topDictTracker.setEntryLocation("Encoding",[cff.encoding.format],output):(stringIndex=this.compileEncoding(cff.encoding),topDictTracker.setEntryLocation("Encoding",[output.length],output),output.add(stringIndex))),this.compileCharset(cff.charset,cff.charStrings.count,cff.strings,cff.isCIDFont)),stringIndex=(topDictTracker.setEntryLocation("charset",[output.length],output),output.add(stringIndex),this.compileCharStrings(cff.charStrings));return topDictTracker.setEntryLocation("CharStrings",[output.length],output),output.add(stringIndex),cff.isCIDFont&&(topDictTracker.setEntryLocation("FDSelect",[output.length],output),stringIndex=this.compileFDSelect(cff.fdSelect),output.add(stringIndex),header=this.compileTopDicts(cff.fdArray,output.length,!0),topDictTracker.setEntryLocation("FDArray",[output.length],output),output.add(header.output),stringIndex=header.trackers,this.compilePrivateDicts(cff.fdArray,stringIndex,output)),this.compilePrivateDicts([cff.topDict],[topDictTracker],output),output.add([0]),output.data}encodeNumber(value){return Number.isInteger(value)?this.encodeInteger(value):this.encodeFloat(value)}static get EncodeFloatRegExp(){return shadow(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/)}encodeFloat(num){let value=num.toString();var m=CFFCompiler.EncodeFloatRegExp.exec(value);m&&(m=parseFloat("1e"+((m[2]?+m[2]:0)+m[1].length)),value=(Math.round(num*m)/m).toString());let nibbles="",i,ii;for(i=0,ii=value.length;i<ii;++i){var a=value[i];nibbles+="e"===a?"-"===value[++i]?"c":"b":"."===a?"a":"-"===a?"e":a}nibbles+=1&nibbles.length?"f":"ff";var out=[30];for(i=0,ii=nibbles.length;i<ii;i+=2)out.push(parseInt(nibbles.substring(i,i+2),16));return out}encodeInteger(value){let code;return code=-107<=value&&value<=107?[value+139]:108<=value&&value<=1131?[247+((value-=108)>>8),255&value]:-1131<=value&&value<=-108?[251+((value=-value-108)>>8),255&value]:-32768<=value&&value<=32767?[28,value>>8&255,255&value]:[29,value>>24&255,value>>16&255,value>>8&255,255&value]}compileHeader(header){return[header.major,header.minor,4,header.offSize]}compileNameIndex(names){var nameIndex=new CFFIndex;for(const name of names){var length=Math.min(name.length,127);let sanitizedName=new Array(length);for(let j=0;j<length;j++){let char=name[j];(char<"!"||"~"<char||"["===char||"]"===char||"("===char||")"===char||"{"===char||"}"===char||"<"===char||">"===char||"/"===char||"%"===char)&&(char="_"),sanitizedName[j]=char}""===(sanitizedName=sanitizedName.join(""))&&(sanitizedName="Bad_Font_Name"),nameIndex.add(stringToBytes(sanitizedName))}return this.compileIndex(nameIndex)}compileTopDicts(dicts,length,removeCidKeys){var fontDictTrackers=[];let fdArrayIndex=new CFFIndex;for(const fontDict of dicts){removeCidKeys&&(fontDict.removeByName("CIDFontVersion"),fontDict.removeByName("CIDFontRevision"),fontDict.removeByName("CIDFontType"),fontDict.removeByName("CIDCount"),fontDict.removeByName("UIDBase"));var fontDictTracker=new CFFOffsetTracker,fontDictData=this.compileDict(fontDict,fontDictTracker);fontDictTrackers.push(fontDictTracker),fdArrayIndex.add(fontDictData),fontDictTracker.offset(length)}return{trackers:fontDictTrackers,output:fdArrayIndex=this.compileIndex(fdArrayIndex,fontDictTrackers)}}compilePrivateDicts(dicts,trackers,output){for(let i=0,ii=dicts.length;i<ii;++i){var fontDict=dicts[i],privateDict=fontDict.privateDict;if(!privateDict||!fontDict.hasName("Private"))throw new FormatError("There must be a private dictionary.");var fontDict=new CFFOffsetTracker,privateDictData=this.compileDict(privateDict,fontDict);let outputLength=output.length;fontDict.offset(outputLength),privateDictData.length||(outputLength=0),trackers[i].setEntryLocation("Private",[privateDictData.length,outputLength],output),output.add(privateDictData),privateDict.subrsIndex&&privateDict.hasName("Subrs")&&(privateDict=this.compileIndex(privateDict.subrsIndex),fontDict.setEntryLocation("Subrs",[privateDictData.length],output),output.add(privateDict))}}compileDict(dict,offsetTracker){var out=[];for(const key of dict.order)if(key in dict.values){let values=dict.values[key],types=dict.types[key];if(Array.isArray(types)||(types=[types]),0!==(values=Array.isArray(values)?values:[values]).length){for(let j=0,jj=types.length;j<jj;++j){var type=types[j],value=values[j];switch(type){case"num":case"sid":out.push(...this.encodeNumber(value));break;case"offset":var name=dict.keyToNameMap[key];offsetTracker.isTracking(name)||offsetTracker.track(name,out.length),out.push(29,0,0,0,0);break;case"array":case"delta":out.push(...this.encodeNumber(value));for(let k=1,kk=values.length;k<kk;++k)out.push(...this.encodeNumber(values[k]));break;default:throw new FormatError("Unknown data type of "+type)}}out.push(...dict.opcodes[key])}}return out}compileStringIndex(strings){var stringIndex=new CFFIndex;for(const string of strings)stringIndex.add(stringToBytes(string));return this.compileIndex(stringIndex)}compileCharStrings(charStrings){var charStringsIndex=new CFFIndex;for(let i=0;i<charStrings.count;i++){var glyph=charStrings.get(i);0===glyph.length?charStringsIndex.add(new Uint8Array([139,14])):charStringsIndex.add(glyph)}return this.compileIndex(charStringsIndex)}compileCharset(charset,numGlyphs,strings,isCIDFont){let out;numGlyphs-=1;if(isCIDFont)out=new Uint8Array([2,0,0,numGlyphs>>8&255,255&numGlyphs]);else{let charsetIndex=(out=new Uint8Array(1+2*numGlyphs))[0]=0;var name,numCharsets=charset.charset.length;let warned=!1;for(let i=1;i<out.length;i+=2){let sid=0;charsetIndex<numCharsets&&(name=charset.charset[charsetIndex++],-1===(sid=strings.getSID(name)))&&(sid=0,warned||(warned=!0,warn(`Couldn't find ${name} in CFF strings`))),out[i]=sid>>8&255,out[i+1]=255&sid}}return this.compileTypedArray(out)}compileEncoding(encoding){return this.compileTypedArray(encoding.raw)}compileFDSelect(fdSelect){var format=fdSelect.format;let out,i;switch(format){case 0:for((out=new Uint8Array(1+fdSelect.fdSelect.length))[0]=format,i=0;i<fdSelect.fdSelect.length;i++)out[i+1]=fdSelect.fdSelect[i];break;case 3:let lastFD=fdSelect.fdSelect[0];var ranges=[format,0,0,0,0,lastFD];for(i=1;i<fdSelect.fdSelect.length;i++){var currentFD=fdSelect.fdSelect[i];currentFD!==lastFD&&(ranges.push(i>>8&255,255&i,currentFD),lastFD=currentFD)}var numRanges=(ranges.length-3)/3;ranges[1]=numRanges>>8&255,ranges[2]=255&numRanges,ranges.push(i>>8&255,255&i),out=new Uint8Array(ranges)}return this.compileTypedArray(out)}compileTypedArray(data){return Array.from(data)}compileIndex(index,trackers=[]){var objects=index.objects,count=objects.length;if(0===count)return[0,0];var data=[count>>8&255,255&count];let lastOffset=1,i;for(i=0;i<count;++i)lastOffset+=objects[i].length;let offsetSize,relativeOffset=(offsetSize=lastOffset<256?1:lastOffset<65536?2:lastOffset<16777216?3:4,data.push(offsetSize),1);for(i=0;i<count+1;i++)1===offsetSize?data.push(255&relativeOffset):2===offsetSize?data.push(relativeOffset>>8&255,255&relativeOffset):3===offsetSize?data.push(relativeOffset>>16&255,relativeOffset>>8&255,255&relativeOffset):data.push(relativeOffset>>>24&255,relativeOffset>>16&255,relativeOffset>>8&255,255&relativeOffset),objects[i]&&(relativeOffset+=objects[i].length);for(i=0;i<count;i++)trackers[i]&&trackers[i].offset(data.length),data.push(...objects[i]);return data}}const getGlyphsUnicode=getLookupTableFactory(function(t){t.A=65,t.AE=198,t.AEacute=508,t.AEmacron=482,t.AEsmall=63462,t.Aacute=193,t.Aacutesmall=63457,t.Abreve=258,t.Abreveacute=7854,t.Abrevecyrillic=1232,t.Abrevedotbelow=7862,t.Abrevegrave=7856,t.Abrevehookabove=7858,t.Abrevetilde=7860,t.Acaron=461,t.Acircle=9398,t.Acircumflex=194,t.Acircumflexacute=7844,t.Acircumflexdotbelow=7852,t.Acircumflexgrave=7846,t.Acircumflexhookabove=7848,t.Acircumflexsmall=63458,t.Acircumflextilde=7850,t.Acute=63177,t.Acutesmall=63412,t.Acyrillic=1040,t.Adblgrave=512,t.Adieresis=196,t.Adieresiscyrillic=1234,t.Adieresismacron=478,t.Adieresissmall=63460,t.Adotbelow=7840,t.Adotmacron=480,t.Agrave=192,t.Agravesmall=63456,t.Ahookabove=7842,t.Aiecyrillic=1236,t.Ainvertedbreve=514,t.Alpha=913,t.Alphatonos=902,t.Amacron=256,t.Amonospace=65313,t.Aogonek=260,t.Aring=197,t.Aringacute=506,t.Aringbelow=7680,t.Aringsmall=63461,t.Asmall=63329,t.Atilde=195,t.Atildesmall=63459,t.Aybarmenian=1329,t.B=66,t.Bcircle=9399,t.Bdotaccent=7682,t.Bdotbelow=7684,t.Becyrillic=1041,t.Benarmenian=1330,t.Beta=914,t.Bhook=385,t.Blinebelow=7686,t.Bmonospace=65314,t.Brevesmall=63220,t.Bsmall=63330,t.Btopbar=386,t.C=67,t.Caarmenian=1342,t.Cacute=262,t.Caron=63178,t.Caronsmall=63221,t.Ccaron=268,t.Ccedilla=199,t.Ccedillaacute=7688,t.Ccedillasmall=63463,t.Ccircle=9400,t.Ccircumflex=264,t.Cdot=266,t.Cdotaccent=266,t.Cedillasmall=63416,t.Chaarmenian=1353,t.Cheabkhasiancyrillic=1212,t.Checyrillic=1063,t.Chedescenderabkhasiancyrillic=1214,t.Chedescendercyrillic=1206,t.Chedieresiscyrillic=1268,t.Cheharmenian=1347,t.Chekhakassiancyrillic=1227,t.Cheverticalstrokecyrillic=1208,t.Chi=935,t.Chook=391,t.Circumflexsmall=63222,t.Cmonospace=65315,t.Coarmenian=1361,t.Csmall=63331,t.D=68,t.DZ=497,t.DZcaron=452,t.Daarmenian=1332,t.Dafrican=393,t.Dcaron=270,t.Dcedilla=7696,t.Dcircle=9401,t.Dcircumflexbelow=7698,t.Dcroat=272,t.Ddotaccent=7690,t.Ddotbelow=7692,t.Decyrillic=1044,t.Deicoptic=1006,t.Delta=8710,t.Deltagreek=916,t.Dhook=394,t.Dieresis=63179,t.DieresisAcute=63180,t.DieresisGrave=63181,t.Dieresissmall=63400,t.Digammagreek=988,t.Djecyrillic=1026,t.Dlinebelow=7694,t.Dmonospace=65316,t.Dotaccentsmall=63223,t.Dslash=272,t.Dsmall=63332,t.Dtopbar=395,t.Dz=498,t.Dzcaron=453,t.Dzeabkhasiancyrillic=1248,t.Dzecyrillic=1029,t.Dzhecyrillic=1039,t.E=69,t.Eacute=201,t.Eacutesmall=63465,t.Ebreve=276,t.Ecaron=282,t.Ecedillabreve=7708,t.Echarmenian=1333,t.Ecircle=9402,t.Ecircumflex=202,t.Ecircumflexacute=7870,t.Ecircumflexbelow=7704,t.Ecircumflexdotbelow=7878,t.Ecircumflexgrave=7872,t.Ecircumflexhookabove=7874,t.Ecircumflexsmall=63466,t.Ecircumflextilde=7876,t.Ecyrillic=1028,t.Edblgrave=516,t.Edieresis=203,t.Edieresissmall=63467,t.Edot=278,t.Edotaccent=278,t.Edotbelow=7864,t.Efcyrillic=1060,t.Egrave=200,t.Egravesmall=63464,t.Eharmenian=1335,t.Ehookabove=7866,t.Eightroman=8551,t.Einvertedbreve=518,t.Eiotifiedcyrillic=1124,t.Elcyrillic=1051,t.Elevenroman=8554,t.Emacron=274,t.Emacronacute=7702,t.Emacrongrave=7700,t.Emcyrillic=1052,t.Emonospace=65317,t.Encyrillic=1053,t.Endescendercyrillic=1186,t.Eng=330,t.Enghecyrillic=1188,t.Enhookcyrillic=1223,t.Eogonek=280,t.Eopen=400,t.Epsilon=917,t.Epsilontonos=904,t.Ercyrillic=1056,t.Ereversed=398,t.Ereversedcyrillic=1069,t.Escyrillic=1057,t.Esdescendercyrillic=1194,t.Esh=425,t.Esmall=63333,t.Eta=919,t.Etarmenian=1336,t.Etatonos=905,t.Eth=208,t.Ethsmall=63472,t.Etilde=7868,t.Etildebelow=7706,t.Euro=8364,t.Ezh=439,t.Ezhcaron=494,t.Ezhreversed=440,t.F=70,t.Fcircle=9403,t.Fdotaccent=7710,t.Feharmenian=1366,t.Feicoptic=996,t.Fhook=401,t.Fitacyrillic=1138,t.Fiveroman=8548,t.Fmonospace=65318,t.Fourroman=8547,t.Fsmall=63334,t.G=71,t.GBsquare=13191,t.Gacute=500,t.Gamma=915,t.Gammaafrican=404,t.Gangiacoptic=1002,t.Gbreve=286,t.Gcaron=486,t.Gcedilla=290,t.Gcircle=9404,t.Gcircumflex=284,t.Gcommaaccent=290,t.Gdot=288,t.Gdotaccent=288,t.Gecyrillic=1043,t.Ghadarmenian=1346,t.Ghemiddlehookcyrillic=1172,t.Ghestrokecyrillic=1170,t.Gheupturncyrillic=1168,t.Ghook=403,t.Gimarmenian=1331,t.Gjecyrillic=1027,t.Gmacron=7712,t.Gmonospace=65319,t.Grave=63182,t.Gravesmall=63328,t.Gsmall=63335,t.Gsmallhook=667,t.Gstroke=484,t.H=72,t.H18533=9679,t.H18543=9642,t.H18551=9643,t.H22073=9633,t.HPsquare=13259,t.Haabkhasiancyrillic=1192,t.Hadescendercyrillic=1202,t.Hardsigncyrillic=1066,t.Hbar=294,t.Hbrevebelow=7722,t.Hcedilla=7720,t.Hcircle=9405,t.Hcircumflex=292,t.Hdieresis=7718,t.Hdotaccent=7714,t.Hdotbelow=7716,t.Hmonospace=65320,t.Hoarmenian=1344,t.Horicoptic=1e3,t.Hsmall=63336,t.Hungarumlaut=63183,t.Hungarumlautsmall=63224,t.Hzsquare=13200,t.I=73,t.IAcyrillic=1071,t.IJ=306,t.IUcyrillic=1070,t.Iacute=205,t.Iacutesmall=63469,t.Ibreve=300,t.Icaron=463,t.Icircle=9406,t.Icircumflex=206,t.Icircumflexsmall=63470,t.Icyrillic=1030,t.Idblgrave=520,t.Idieresis=207,t.Idieresisacute=7726,t.Idieresiscyrillic=1252,t.Idieresissmall=63471,t.Idot=304,t.Idotaccent=304,t.Idotbelow=7882,t.Iebrevecyrillic=1238,t.Iecyrillic=1045,t.Ifraktur=8465,t.Igrave=204,t.Igravesmall=63468,t.Ihookabove=7880,t.Iicyrillic=1048,t.Iinvertedbreve=522,t.Iishortcyrillic=1049,t.Imacron=298,t.Imacroncyrillic=1250,t.Imonospace=65321,t.Iniarmenian=1339,t.Iocyrillic=1025,t.Iogonek=302,t.Iota=921,t.Iotaafrican=406,t.Iotadieresis=938,t.Iotatonos=906,t.Ismall=63337,t.Istroke=407,t.Itilde=296,t.Itildebelow=7724,t.Izhitsacyrillic=1140,t.Izhitsadblgravecyrillic=1142,t.J=74,t.Jaarmenian=1345,t.Jcircle=9407,t.Jcircumflex=308,t.Jecyrillic=1032,t.Jheharmenian=1355,t.Jmonospace=65322,t.Jsmall=63338,t.K=75,t.KBsquare=13189,t.KKsquare=13261,t.Kabashkircyrillic=1184,t.Kacute=7728,t.Kacyrillic=1050,t.Kadescendercyrillic=1178,t.Kahookcyrillic=1219,t.Kappa=922,t.Kastrokecyrillic=1182,t.Kaverticalstrokecyrillic=1180,t.Kcaron=488,t.Kcedilla=310,t.Kcircle=9408,t.Kcommaaccent=310,t.Kdotbelow=7730,t.Keharmenian=1364,t.Kenarmenian=1343,t.Khacyrillic=1061,t.Kheicoptic=998,t.Khook=408,t.Kjecyrillic=1036,t.Klinebelow=7732,t.Kmonospace=65323,t.Koppacyrillic=1152,t.Koppagreek=990,t.Ksicyrillic=1134,t.Ksmall=63339,t.L=76,t.LJ=455,t.LL=63167,t.Lacute=313,t.Lambda=923,t.Lcaron=317,t.Lcedilla=315,t.Lcircle=9409,t.Lcircumflexbelow=7740,t.Lcommaaccent=315,t.Ldot=319,t.Ldotaccent=319,t.Ldotbelow=7734,t.Ldotbelowmacron=7736,t.Liwnarmenian=1340,t.Lj=456,t.Ljecyrillic=1033,t.Llinebelow=7738,t.Lmonospace=65324,t.Lslash=321,t.Lslashsmall=63225,t.Lsmall=63340,t.M=77,t.MBsquare=13190,t.Macron=63184,t.Macronsmall=63407,t.Macute=7742,t.Mcircle=9410,t.Mdotaccent=7744,t.Mdotbelow=7746,t.Menarmenian=1348,t.Mmonospace=65325,t.Msmall=63341,t.Mturned=412,t.Mu=924,t.N=78,t.NJ=458,t.Nacute=323,t.Ncaron=327,t.Ncedilla=325,t.Ncircle=9411,t.Ncircumflexbelow=7754,t.Ncommaaccent=325,t.Ndotaccent=7748,t.Ndotbelow=7750,t.Nhookleft=413,t.Nineroman=8552,t.Nj=459,t.Njecyrillic=1034,t.Nlinebelow=7752,t.Nmonospace=65326,t.Nowarmenian=1350,t.Nsmall=63342,t.Ntilde=209,t.Ntildesmall=63473,t.Nu=925,t.O=79,t.OE=338,t.OEsmall=63226,t.Oacute=211,t.Oacutesmall=63475,t.Obarredcyrillic=1256,t.Obarreddieresiscyrillic=1258,t.Obreve=334,t.Ocaron=465,t.Ocenteredtilde=415,t.Ocircle=9412,t.Ocircumflex=212,t.Ocircumflexacute=7888,t.Ocircumflexdotbelow=7896,t.Ocircumflexgrave=7890,t.Ocircumflexhookabove=7892,t.Ocircumflexsmall=63476,t.Ocircumflextilde=7894,t.Ocyrillic=1054,t.Odblacute=336,t.Odblgrave=524,t.Odieresis=214,t.Odieresiscyrillic=1254,t.Odieresissmall=63478,t.Odotbelow=7884,t.Ogoneksmall=63227,t.Ograve=210,t.Ogravesmall=63474,t.Oharmenian=1365,t.Ohm=8486,t.Ohookabove=7886,t.Ohorn=416,t.Ohornacute=7898,t.Ohorndotbelow=7906,t.Ohorngrave=7900,t.Ohornhookabove=7902,t.Ohorntilde=7904,t.Ohungarumlaut=336,t.Oi=418,t.Oinvertedbreve=526,t.Omacron=332,t.Omacronacute=7762,t.Omacrongrave=7760,t.Omega=8486,t.Omegacyrillic=1120,t.Omegagreek=937,t.Omegaroundcyrillic=1146,t.Omegatitlocyrillic=1148,t.Omegatonos=911,t.Omicron=927,t.Omicrontonos=908,t.Omonospace=65327,t.Oneroman=8544,t.Oogonek=490,t.Oogonekmacron=492,t.Oopen=390,t.Oslash=216,t.Oslashacute=510,t.Oslashsmall=63480,t.Osmall=63343,t.Ostrokeacute=510,t.Otcyrillic=1150,t.Otilde=213,t.Otildeacute=7756,t.Otildedieresis=7758,t.Otildesmall=63477,t.P=80,t.Pacute=7764,t.Pcircle=9413,t.Pdotaccent=7766,t.Pecyrillic=1055,t.Peharmenian=1354,t.Pemiddlehookcyrillic=1190,t.Phi=934,t.Phook=420,t.Pi=928,t.Piwrarmenian=1363,t.Pmonospace=65328,t.Psi=936,t.Psicyrillic=1136,t.Psmall=63344,t.Q=81,t.Qcircle=9414,t.Qmonospace=65329,t.Qsmall=63345,t.R=82,t.Raarmenian=1356,t.Racute=340,t.Rcaron=344,t.Rcedilla=342,t.Rcircle=9415,t.Rcommaaccent=342,t.Rdblgrave=528,t.Rdotaccent=7768,t.Rdotbelow=7770,t.Rdotbelowmacron=7772,t.Reharmenian=1360,t.Rfraktur=8476,t.Rho=929,t.Ringsmall=63228,t.Rinvertedbreve=530,t.Rlinebelow=7774,t.Rmonospace=65330,t.Rsmall=63346,t.Rsmallinverted=641,t.Rsmallinvertedsuperior=694,t.S=83,t.SF010000=9484,t.SF020000=9492,t.SF030000=9488,t.SF040000=9496,t.SF050000=9532,t.SF060000=9516,t.SF070000=9524,t.SF080000=9500,t.SF090000=9508,t.SF100000=9472,t.SF110000=9474,t.SF190000=9569,t.SF200000=9570,t.SF210000=9558,t.SF220000=9557,t.SF230000=9571,t.SF240000=9553,t.SF250000=9559,t.SF260000=9565,t.SF270000=9564,t.SF280000=9563,t.SF360000=9566,t.SF370000=9567,t.SF380000=9562,t.SF390000=9556,t.SF400000=9577,t.SF410000=9574,t.SF420000=9568,t.SF430000=9552,t.SF440000=9580,t.SF450000=9575,t.SF460000=9576,t.SF470000=9572,t.SF480000=9573,t.SF490000=9561,t.SF500000=9560,t.SF510000=9554,t.SF520000=9555,t.SF530000=9579,t.SF540000=9578,t.Sacute=346,t.Sacutedotaccent=7780,t.Sampigreek=992,t.Scaron=352,t.Scarondotaccent=7782,t.Scaronsmall=63229,t.Scedilla=350,t.Schwa=399,t.Schwacyrillic=1240,t.Schwadieresiscyrillic=1242,t.Scircle=9416,t.Scircumflex=348,t.Scommaaccent=536,t.Sdotaccent=7776,t.Sdotbelow=7778,t.Sdotbelowdotaccent=7784,t.Seharmenian=1357,t.Sevenroman=8550,t.Shaarmenian=1351,t.Shacyrillic=1064,t.Shchacyrillic=1065,t.Sheicoptic=994,t.Shhacyrillic=1210,t.Shimacoptic=1004,t.Sigma=931,t.Sixroman=8549,t.Smonospace=65331,t.Softsigncyrillic=1068,t.Ssmall=63347,t.Stigmagreek=986,t.T=84,t.Tau=932,t.Tbar=358,t.Tcaron=356,t.Tcedilla=354,t.Tcircle=9417,t.Tcircumflexbelow=7792,t.Tcommaaccent=354,t.Tdotaccent=7786,t.Tdotbelow=7788,t.Tecyrillic=1058,t.Tedescendercyrillic=1196,t.Tenroman=8553,t.Tetsecyrillic=1204,t.Theta=920,t.Thook=428,t.Thorn=222,t.Thornsmall=63486,t.Threeroman=8546,t.Tildesmall=63230,t.Tiwnarmenian=1359,t.Tlinebelow=7790,t.Tmonospace=65332,t.Toarmenian=1337,t.Tonefive=444,t.Tonesix=388,t.Tonetwo=423,t.Tretroflexhook=430,t.Tsecyrillic=1062,t.Tshecyrillic=1035,t.Tsmall=63348,t.Twelveroman=8555,t.Tworoman=8545,t.U=85,t.Uacute=218,t.Uacutesmall=63482,t.Ubreve=364,t.Ucaron=467,t.Ucircle=9418,t.Ucircumflex=219,t.Ucircumflexbelow=7798,t.Ucircumflexsmall=63483,t.Ucyrillic=1059,t.Udblacute=368,t.Udblgrave=532,t.Udieresis=220,t.Udieresisacute=471,t.Udieresisbelow=7794,t.Udieresiscaron=473,t.Udieresiscyrillic=1264,t.Udieresisgrave=475,t.Udieresismacron=469,t.Udieresissmall=63484,t.Udotbelow=7908,t.Ugrave=217,t.Ugravesmall=63481,t.Uhookabove=7910,t.Uhorn=431,t.Uhornacute=7912,t.Uhorndotbelow=7920,t.Uhorngrave=7914,t.Uhornhookabove=7916,t.Uhorntilde=7918,t.Uhungarumlaut=368,t.Uhungarumlautcyrillic=1266,t.Uinvertedbreve=534,t.Ukcyrillic=1144,t.Umacron=362,t.Umacroncyrillic=1262,t.Umacrondieresis=7802,t.Umonospace=65333,t.Uogonek=370,t.Upsilon=933,t.Upsilon1=978,t.Upsilonacutehooksymbolgreek=979,t.Upsilonafrican=433,t.Upsilondieresis=939,t.Upsilondieresishooksymbolgreek=980,t.Upsilonhooksymbol=978,t.Upsilontonos=910,t.Uring=366,t.Ushortcyrillic=1038,t.Usmall=63349,t.Ustraightcyrillic=1198,t.Ustraightstrokecyrillic=1200,t.Utilde=360,t.Utildeacute=7800,t.Utildebelow=7796,t.V=86,t.Vcircle=9419,t.Vdotbelow=7806,t.Vecyrillic=1042,t.Vewarmenian=1358,t.Vhook=434,t.Vmonospace=65334,t.Voarmenian=1352,t.Vsmall=63350,t.Vtilde=7804,t.W=87,t.Wacute=7810,t.Wcircle=9420,t.Wcircumflex=372,t.Wdieresis=7812,t.Wdotaccent=7814,t.Wdotbelow=7816,t.Wgrave=7808,t.Wmonospace=65335,t.Wsmall=63351,t.X=88,t.Xcircle=9421,t.Xdieresis=7820,t.Xdotaccent=7818,t.Xeharmenian=1341,t.Xi=926,t.Xmonospace=65336,t.Xsmall=63352,t.Y=89,t.Yacute=221,t.Yacutesmall=63485,t.Yatcyrillic=1122,t.Ycircle=9422,t.Ycircumflex=374,t.Ydieresis=376,t.Ydieresissmall=63487,t.Ydotaccent=7822,t.Ydotbelow=7924,t.Yericyrillic=1067,t.Yerudieresiscyrillic=1272,t.Ygrave=7922,t.Yhook=435,t.Yhookabove=7926,t.Yiarmenian=1349,t.Yicyrillic=1031,t.Yiwnarmenian=1362,t.Ymonospace=65337,t.Ysmall=63353,t.Ytilde=7928,t.Yusbigcyrillic=1130,t.Yusbigiotifiedcyrillic=1132,t.Yuslittlecyrillic=1126,t.Yuslittleiotifiedcyrillic=1128,t.Z=90,t.Zaarmenian=1334,t.Zacute=377,t.Zcaron=381,t.Zcaronsmall=63231,t.Zcircle=9423,t.Zcircumflex=7824,t.Zdot=379,t.Zdotaccent=379,t.Zdotbelow=7826,t.Zecyrillic=1047,t.Zedescendercyrillic=1176,t.Zedieresiscyrillic=1246,t.Zeta=918,t.Zhearmenian=1338,t.Zhebrevecyrillic=1217,t.Zhecyrillic=1046,t.Zhedescendercyrillic=1174,t.Zhedieresiscyrillic=1244,t.Zlinebelow=7828,t.Zmonospace=65338,t.Zsmall=63354,t.Zstroke=437,t.a=97,t.aabengali=2438,t.aacute=225,t.aadeva=2310,t.aagujarati=2694,t.aagurmukhi=2566,t.aamatragurmukhi=2622,t.aarusquare=13059,t.aavowelsignbengali=2494,t.aavowelsigndeva=2366,t.aavowelsigngujarati=2750,t.abbreviationmarkarmenian=1375,t.abbreviationsigndeva=2416,t.abengali=2437,t.abopomofo=12570,t.abreve=259,t.abreveacute=7855,t.abrevecyrillic=1233,t.abrevedotbelow=7863,t.abrevegrave=7857,t.abrevehookabove=7859,t.abrevetilde=7861,t.acaron=462,t.acircle=9424,t.acircumflex=226,t.acircumflexacute=7845,t.acircumflexdotbelow=7853,t.acircumflexgrave=7847,t.acircumflexhookabove=7849,t.acircumflextilde=7851,t.acute=180,t.acutebelowcmb=791,t.acutecmb=769,t.acutecomb=769,t.acutedeva=2388,t.acutelowmod=719,t.acutetonecmb=833,t.acyrillic=1072,t.adblgrave=513,t.addakgurmukhi=2673,t.adeva=2309,t.adieresis=228,t.adieresiscyrillic=1235,t.adieresismacron=479,t.adotbelow=7841,t.adotmacron=481,t.ae=230,t.aeacute=509,t.aekorean=12624,t.aemacron=483,t.afii00208=8213,t.afii08941=8356,t.afii10017=1040,t.afii10018=1041,t.afii10019=1042,t.afii10020=1043,t.afii10021=1044,t.afii10022=1045,t.afii10023=1025,t.afii10024=1046,t.afii10025=1047,t.afii10026=1048,t.afii10027=1049,t.afii10028=1050,t.afii10029=1051,t.afii10030=1052;t.afii10031=1053,t.afii10032=1054,t.afii10033=1055,t.afii10034=1056,t.afii10035=1057,t.afii10036=1058,t.afii10037=1059,t.afii10038=1060,t.afii10039=1061,t.afii10040=1062,t.afii10041=1063,t.afii10042=1064,t.afii10043=1065,t.afii10044=1066,t.afii10045=1067,t.afii10046=1068,t.afii10047=1069,t.afii10048=1070,t.afii10049=1071,t.afii10050=1168,t.afii10051=1026,t.afii10052=1027,t.afii10053=1028,t.afii10054=1029,t.afii10055=1030,t.afii10056=1031,t.afii10057=1032,t.afii10058=1033,t.afii10059=1034,t.afii10060=1035,t.afii10061=1036,t.afii10062=1038,t.afii10063=63172,t.afii10064=63173,t.afii10065=1072,t.afii10066=1073,t.afii10067=1074,t.afii10068=1075,t.afii10069=1076,t.afii10070=1077,t.afii10071=1105,t.afii10072=1078,t.afii10073=1079,t.afii10074=1080,t.afii10075=1081,t.afii10076=1082,t.afii10077=1083,t.afii10078=1084,t.afii10079=1085,t.afii10080=1086,t.afii10081=1087,t.afii10082=1088,t.afii10083=1089,t.afii10084=1090,t.afii10085=1091,t.afii10086=1092,t.afii10087=1093,t.afii10088=1094,t.afii10089=1095,t.afii10090=1096,t.afii10091=1097,t.afii10092=1098,t.afii10093=1099,t.afii10094=1100,t.afii10095=1101,t.afii10096=1102,t.afii10097=1103,t.afii10098=1169,t.afii10099=1106,t.afii10100=1107,t.afii10101=1108,t.afii10102=1109,t.afii10103=1110,t.afii10104=1111,t.afii10105=1112,t.afii10106=1113,t.afii10107=1114,t.afii10108=1115,t.afii10109=1116,t.afii10110=1118,t.afii10145=1039,t.afii10146=1122,t.afii10147=1138,t.afii10148=1140,t.afii10192=63174,t.afii10193=1119,t.afii10194=1123,t.afii10195=1139,t.afii10196=1141,t.afii10831=63175,t.afii10832=63176,t.afii10846=1241,t.afii299=8206,t.afii300=8207,t.afii301=8205,t.afii57381=1642,t.afii57388=1548,t.afii57392=1632,t.afii57393=1633,t.afii57394=1634,t.afii57395=1635,t.afii57396=1636,t.afii57397=1637,t.afii57398=1638,t.afii57399=1639,t.afii57400=1640,t.afii57401=1641,t.afii57403=1563,t.afii57407=1567,t.afii57409=1569,t.afii57410=1570,t.afii57411=1571,t.afii57412=1572,t.afii57413=1573,t.afii57414=1574,t.afii57415=1575,t.afii57416=1576,t.afii57417=1577,t.afii57418=1578,t.afii57419=1579,t.afii57420=1580,t.afii57421=1581,t.afii57422=1582,t.afii57423=1583,t.afii57424=1584,t.afii57425=1585,t.afii57426=1586,t.afii57427=1587,t.afii57428=1588,t.afii57429=1589,t.afii57430=1590,t.afii57431=1591,t.afii57432=1592,t.afii57433=1593,t.afii57434=1594,t.afii57440=1600,t.afii57441=1601,t.afii57442=1602,t.afii57443=1603,t.afii57444=1604,t.afii57445=1605,t.afii57446=1606,t.afii57448=1608,t.afii57449=1609,t.afii57450=1610,t.afii57451=1611,t.afii57452=1612,t.afii57453=1613,t.afii57454=1614,t.afii57455=1615,t.afii57456=1616,t.afii57457=1617,t.afii57458=1618,t.afii57470=1607,t.afii57505=1700,t.afii57506=1662,t.afii57507=1670,t.afii57508=1688,t.afii57509=1711,t.afii57511=1657,t.afii57512=1672,t.afii57513=1681,t.afii57514=1722,t.afii57519=1746,t.afii57534=1749,t.afii57636=8362,t.afii57645=1470,t.afii57658=1475,t.afii57664=1488,t.afii57665=1489,t.afii57666=1490,t.afii57667=1491,t.afii57668=1492,t.afii57669=1493,t.afii57670=1494,t.afii57671=1495,t.afii57672=1496,t.afii57673=1497,t.afii57674=1498,t.afii57675=1499,t.afii57676=1500,t.afii57677=1501,t.afii57678=1502,t.afii57679=1503,t.afii57680=1504,t.afii57681=1505,t.afii57682=1506,t.afii57683=1507,t.afii57684=1508,t.afii57685=1509,t.afii57686=1510,t.afii57687=1511,t.afii57688=1512,t.afii57689=1513,t.afii57690=1514,t.afii57694=64298,t.afii57695=64299,t.afii57700=64331,t.afii57705=64287,t.afii57716=1520,t.afii57717=1521,t.afii57718=1522,t.afii57723=64309,t.afii57793=1460,t.afii57794=1461,t.afii57795=1462,t.afii57796=1467,t.afii57797=1464,t.afii57798=1463,t.afii57799=1456,t.afii57800=1458,t.afii57801=1457,t.afii57802=1459,t.afii57803=1474,t.afii57804=1473,t.afii57806=1465,t.afii57807=1468,t.afii57839=1469,t.afii57841=1471,t.afii57842=1472,t.afii57929=700,t.afii61248=8453,t.afii61289=8467,t.afii61352=8470,t.afii61573=8236,t.afii61574=8237,t.afii61575=8238,t.afii61664=8204,t.afii63167=1645,t.afii64937=701,t.agrave=224,t.agujarati=2693,t.agurmukhi=2565,t.ahiragana=12354,t.ahookabove=7843,t.aibengali=2448,t.aibopomofo=12574,t.aideva=2320,t.aiecyrillic=1237,t.aigujarati=2704,t.aigurmukhi=2576,t.aimatragurmukhi=2632,t.ainarabic=1593,t.ainfinalarabic=65226,t.aininitialarabic=65227,t.ainmedialarabic=65228,t.ainvertedbreve=515,t.aivowelsignbengali=2504,t.aivowelsigndeva=2376,t.aivowelsigngujarati=2760,t.akatakana=12450,t.akatakanahalfwidth=65393,t.akorean=12623,t.alef=1488,t.alefarabic=1575,t.alefdageshhebrew=64304,t.aleffinalarabic=65166,t.alefhamzaabovearabic=1571,t.alefhamzaabovefinalarabic=65156,t.alefhamzabelowarabic=1573,t.alefhamzabelowfinalarabic=65160,t.alefhebrew=1488,t.aleflamedhebrew=64335,t.alefmaddaabovearabic=1570,t.alefmaddaabovefinalarabic=65154,t.alefmaksuraarabic=1609,t.alefmaksurafinalarabic=65264,t.alefmaksurainitialarabic=65267,t.alefmaksuramedialarabic=65268,t.alefpatahhebrew=64302,t.alefqamatshebrew=64303,t.aleph=8501,t.allequal=8780,t.alpha=945,t.alphatonos=940,t.amacron=257,t.amonospace=65345,t.ampersand=38,t.ampersandmonospace=65286,t.ampersandsmall=63270,t.amsquare=13250,t.anbopomofo=12578,t.angbopomofo=12580,t.angbracketleft=12296,t.angbracketright=12297,t.angkhankhuthai=3674,t.angle=8736,t.anglebracketleft=12296,t.anglebracketleftvertical=65087,t.anglebracketright=12297,t.anglebracketrightvertical=65088,t.angleleft=9001,t.angleright=9002,t.angstrom=8491,t.anoteleia=903,t.anudattadeva=2386,t.anusvarabengali=2434,t.anusvaradeva=2306,t.anusvaragujarati=2690,t.aogonek=261,t.apaatosquare=13056,t.aparen=9372,t.apostrophearmenian=1370,t.apostrophemod=700,t.apple=63743,t.approaches=8784,t.approxequal=8776,t.approxequalorimage=8786,t.approximatelyequal=8773,t.araeaekorean=12686,t.araeakorean=12685,t.arc=8978,t.arighthalfring=7834,t.aring=229,t.aringacute=507,t.aringbelow=7681,t.arrowboth=8596,t.arrowdashdown=8675,t.arrowdashleft=8672,t.arrowdashright=8674,t.arrowdashup=8673,t.arrowdblboth=8660,t.arrowdbldown=8659,t.arrowdblleft=8656,t.arrowdblright=8658,t.arrowdblup=8657,t.arrowdown=8595,t.arrowdownleft=8601,t.arrowdownright=8600,t.arrowdownwhite=8681,t.arrowheaddownmod=709,t.arrowheadleftmod=706,t.arrowheadrightmod=707,t.arrowheadupmod=708,t.arrowhorizex=63719,t.arrowleft=8592,t.arrowleftdbl=8656,t.arrowleftdblstroke=8653,t.arrowleftoverright=8646,t.arrowleftwhite=8678,t.arrowright=8594,t.arrowrightdblstroke=8655,t.arrowrightheavy=10142,t.arrowrightoverleft=8644,t.arrowrightwhite=8680,t.arrowtableft=8676,t.arrowtabright=8677,t.arrowup=8593,t.arrowupdn=8597,t.arrowupdnbse=8616,t.arrowupdownbase=8616,t.arrowupleft=8598,t.arrowupleftofdown=8645,t.arrowupright=8599,t.arrowupwhite=8679,t.arrowvertex=63718,t.asciicircum=94,t.asciicircummonospace=65342,t.asciitilde=126,t.asciitildemonospace=65374,t.ascript=593,t.ascriptturned=594,t.asmallhiragana=12353,t.asmallkatakana=12449,t.asmallkatakanahalfwidth=65383,t.asterisk=42,t.asteriskaltonearabic=1645,t.asteriskarabic=1645,t.asteriskmath=8727,t.asteriskmonospace=65290,t.asterisksmall=65121,t.asterism=8258,t.asuperior=63209,t.asymptoticallyequal=8771,t.at=64,t.atilde=227,t.atmonospace=65312,t.atsmall=65131,t.aturned=592,t.aubengali=2452,t.aubopomofo=12576,t.audeva=2324,t.augujarati=2708,t.augurmukhi=2580,t.aulengthmarkbengali=2519,t.aumatragurmukhi=2636,t.auvowelsignbengali=2508,t.auvowelsigndeva=2380,t.auvowelsigngujarati=2764,t.avagrahadeva=2365,t.aybarmenian=1377,t.ayin=1506,t.ayinaltonehebrew=64288,t.ayinhebrew=1506,t.b=98,t.babengali=2476,t.backslash=92,t.backslashmonospace=65340,t.badeva=2348,t.bagujarati=2732,t.bagurmukhi=2604,t.bahiragana=12400,t.bahtthai=3647,t.bakatakana=12496,t.bar=124,t.barmonospace=65372,t.bbopomofo=12549,t.bcircle=9425,t.bdotaccent=7683,t.bdotbelow=7685,t.beamedsixteenthnotes=9836,t.because=8757,t.becyrillic=1073,t.beharabic=1576,t.behfinalarabic=65168,t.behinitialarabic=65169,t.behiragana=12409,t.behmedialarabic=65170,t.behmeeminitialarabic=64671,t.behmeemisolatedarabic=64520,t.behnoonfinalarabic=64621,t.bekatakana=12505,t.benarmenian=1378,t.bet=1489,t.beta=946,t.betasymbolgreek=976,t.betdagesh=64305,t.betdageshhebrew=64305,t.bethebrew=1489,t.betrafehebrew=64332,t.bhabengali=2477,t.bhadeva=2349,t.bhagujarati=2733,t.bhagurmukhi=2605,t.bhook=595,t.bihiragana=12403,t.bikatakana=12499,t.bilabialclick=664,t.bindigurmukhi=2562,t.birusquare=13105,t.blackcircle=9679,t.blackdiamond=9670,t.blackdownpointingtriangle=9660,t.blackleftpointingpointer=9668,t.blackleftpointingtriangle=9664,t.blacklenticularbracketleft=12304,t.blacklenticularbracketleftvertical=65083,t.blacklenticularbracketright=12305,t.blacklenticularbracketrightvertical=65084,t.blacklowerlefttriangle=9699,t.blacklowerrighttriangle=9698,t.blackrectangle=9644,t.blackrightpointingpointer=9658,t.blackrightpointingtriangle=9654,t.blacksmallsquare=9642,t.blacksmilingface=9787,t.blacksquare=9632,t.blackstar=9733,t.blackupperlefttriangle=9700,t.blackupperrighttriangle=9701,t.blackuppointingsmalltriangle=9652,t.blackuppointingtriangle=9650,t.blank=9251,t.blinebelow=7687,t.block=9608,t.bmonospace=65346,t.bobaimaithai=3610,t.bohiragana=12412,t.bokatakana=12508,t.bparen=9373,t.bqsquare=13251,t.braceex=63732,t.braceleft=123,t.braceleftbt=63731,t.braceleftmid=63730,t.braceleftmonospace=65371,t.braceleftsmall=65115,t.bracelefttp=63729,t.braceleftvertical=65079,t.braceright=125,t.bracerightbt=63742,t.bracerightmid=63741,t.bracerightmonospace=65373,t.bracerightsmall=65116,t.bracerighttp=63740,t.bracerightvertical=65080,t.bracketleft=91,t.bracketleftbt=63728,t.bracketleftex=63727,t.bracketleftmonospace=65339,t.bracketlefttp=63726,t.bracketright=93,t.bracketrightbt=63739,t.bracketrightex=63738,t.bracketrightmonospace=65341,t.bracketrighttp=63737,t.breve=728,t.brevebelowcmb=814,t.brevecmb=774,t.breveinvertedbelowcmb=815,t.breveinvertedcmb=785,t.breveinverteddoublecmb=865,t.bridgebelowcmb=810,t.bridgeinvertedbelowcmb=826,t.brokenbar=166,t.bstroke=384,t.bsuperior=63210,t.btopbar=387,t.buhiragana=12406,t.bukatakana=12502,t.bullet=8226,t.bulletinverse=9688,t.bulletoperator=8729,t.bullseye=9678,t.c=99,t.caarmenian=1390,t.cabengali=2458,t.cacute=263,t.cadeva=2330,t.cagujarati=2714,t.cagurmukhi=2586,t.calsquare=13192,t.candrabindubengali=2433,t.candrabinducmb=784,t.candrabindudeva=2305,t.candrabindugujarati=2689,t.capslock=8682,t.careof=8453,t.caron=711,t.caronbelowcmb=812,t.caroncmb=780,t.carriagereturn=8629,t.cbopomofo=12568,t.ccaron=269,t.ccedilla=231,t.ccedillaacute=7689,t.ccircle=9426,t.ccircumflex=265,t.ccurl=597,t.cdot=267,t.cdotaccent=267,t.cdsquare=13253,t.cedilla=184,t.cedillacmb=807,t.cent=162,t.centigrade=8451,t.centinferior=63199,t.centmonospace=65504,t.centoldstyle=63394,t.centsuperior=63200,t.chaarmenian=1401,t.chabengali=2459,t.chadeva=2331,t.chagujarati=2715,t.chagurmukhi=2587,t.chbopomofo=12564,t.cheabkhasiancyrillic=1213,t.checkmark=10003,t.checyrillic=1095,t.chedescenderabkhasiancyrillic=1215,t.chedescendercyrillic=1207,t.chedieresiscyrillic=1269,t.cheharmenian=1395,t.chekhakassiancyrillic=1228,t.cheverticalstrokecyrillic=1209,t.chi=967,t.chieuchacirclekorean=12919,t.chieuchaparenkorean=12823,t.chieuchcirclekorean=12905,t.chieuchkorean=12618,t.chieuchparenkorean=12809,t.chochangthai=3594,t.chochanthai=3592,t.chochingthai=3593,t.chochoethai=3596,t.chook=392,t.cieucacirclekorean=12918,t.cieucaparenkorean=12822,t.cieuccirclekorean=12904,t.cieuckorean=12616,t.cieucparenkorean=12808,t.cieucuparenkorean=12828,t.circle=9675,t.circlecopyrt=169,t.circlemultiply=8855,t.circleot=8857,t.circleplus=8853,t.circlepostalmark=12342,t.circlewithlefthalfblack=9680,t.circlewithrighthalfblack=9681,t.circumflex=710,t.circumflexbelowcmb=813,t.circumflexcmb=770,t.clear=8999,t.clickalveolar=450,t.clickdental=448,t.clicklateral=449,t.clickretroflex=451,t.club=9827,t.clubsuitblack=9827,t.clubsuitwhite=9831,t.cmcubedsquare=13220,t.cmonospace=65347,t.cmsquaredsquare=13216,t.coarmenian=1409,t.colon=58,t.colonmonetary=8353,t.colonmonospace=65306,t.colonsign=8353,t.colonsmall=65109,t.colontriangularhalfmod=721,t.colontriangularmod=720,t.comma=44,t.commaabovecmb=787,t.commaaboverightcmb=789,t.commaaccent=63171,t.commaarabic=1548,t.commaarmenian=1373,t.commainferior=63201,t.commamonospace=65292,t.commareversedabovecmb=788,t.commareversedmod=701,t.commasmall=65104,t.commasuperior=63202,t.commaturnedabovecmb=786,t.commaturnedmod=699,t.compass=9788,t.congruent=8773,t.contourintegral=8750,t.control=8963,t.controlACK=6,t.controlBEL=7,t.controlBS=8,t.controlCAN=24,t.controlCR=13,t.controlDC1=17,t.controlDC2=18,t.controlDC3=19,t.controlDC4=20,t.controlDEL=127,t.controlDLE=16,t.controlEM=25,t.controlENQ=5,t.controlEOT=4,t.controlESC=27,t.controlETB=23,t.controlETX=3,t.controlFF=12,t.controlFS=28,t.controlGS=29,t.controlHT=9,t.controlLF=10,t.controlNAK=21,t.controlNULL=0,t.controlRS=30,t.controlSI=15,t.controlSO=14,t.controlSOT=2,t.controlSTX=1,t.controlSUB=26,t.controlSYN=22,t.controlUS=31,t.controlVT=11,t.copyright=169,t.copyrightsans=63721,t.copyrightserif=63193,t.cornerbracketleft=12300,t.cornerbracketlefthalfwidth=65378,t.cornerbracketleftvertical=65089,t.cornerbracketright=12301,t.cornerbracketrighthalfwidth=65379,t.cornerbracketrightvertical=65090,t.corporationsquare=13183,t.cosquare=13255,t.coverkgsquare=13254,t.cparen=9374,t.cruzeiro=8354,t.cstretched=663,t.curlyand=8911,t.curlyor=8910,t.currency=164,t.cyrBreve=63185,t.cyrFlex=63186,t.cyrbreve=63188,t.cyrflex=63189,t.d=100,t.daarmenian=1380,t.dabengali=2470,t.dadarabic=1590,t.dadeva=2342,t.dadfinalarabic=65214,t.dadinitialarabic=65215,t.dadmedialarabic=65216,t.dagesh=1468,t.dageshhebrew=1468,t.dagger=8224,t.daggerdbl=8225,t.dagujarati=2726,t.dagurmukhi=2598,t.dahiragana=12384,t.dakatakana=12480,t.dalarabic=1583,t.dalet=1491,t.daletdagesh=64307,t.daletdageshhebrew=64307,t.dalethebrew=1491,t.dalfinalarabic=65194,t.dammaarabic=1615,t.dammalowarabic=1615,t.dammatanaltonearabic=1612,t.dammatanarabic=1612,t.danda=2404,t.dargahebrew=1447,t.dargalefthebrew=1447,t.dasiapneumatacyrilliccmb=1157,t.dblGrave=63187,t.dblanglebracketleft=12298,t.dblanglebracketleftvertical=65085,t.dblanglebracketright=12299,t.dblanglebracketrightvertical=65086,t.dblarchinvertedbelowcmb=811,t.dblarrowleft=8660,t.dblarrowright=8658,t.dbldanda=2405,t.dblgrave=63190,t.dblgravecmb=783,t.dblintegral=8748,t.dbllowline=8215,t.dbllowlinecmb=819,t.dbloverlinecmb=831,t.dblprimemod=698,t.dblverticalbar=8214,t.dblverticallineabovecmb=782,t.dbopomofo=12553,t.dbsquare=13256,t.dcaron=271,t.dcedilla=7697,t.dcircle=9427,t.dcircumflexbelow=7699,t.dcroat=273,t.ddabengali=2465,t.ddadeva=2337,t.ddagujarati=2721,t.ddagurmukhi=2593,t.ddalarabic=1672,t.ddalfinalarabic=64393,t.dddhadeva=2396,t.ddhabengali=2466,t.ddhadeva=2338,t.ddhagujarati=2722,t.ddhagurmukhi=2594,t.ddotaccent=7691,t.ddotbelow=7693,t.decimalseparatorarabic=1643,t.decimalseparatorpersian=1643,t.decyrillic=1076,t.degree=176,t.dehihebrew=1453,t.dehiragana=12391,t.deicoptic=1007,t.dekatakana=12487,t.deleteleft=9003,t.deleteright=8998,t.delta=948,t.deltaturned=397,t.denominatorminusonenumeratorbengali=2552,t.dezh=676,t.dhabengali=2471,t.dhadeva=2343,t.dhagujarati=2727,t.dhagurmukhi=2599,t.dhook=599,t.dialytikatonos=901,t.dialytikatonoscmb=836,t.diamond=9830,t.diamondsuitwhite=9826,t.dieresis=168,t.dieresisacute=63191,t.dieresisbelowcmb=804,t.dieresiscmb=776,t.dieresisgrave=63192,t.dieresistonos=901,t.dihiragana=12386,t.dikatakana=12482,t.dittomark=12291,t.divide=247,t.divides=8739,t.divisionslash=8725,t.djecyrillic=1106,t.dkshade=9619,t.dlinebelow=7695,t.dlsquare=13207,t.dmacron=273,t.dmonospace=65348,t.dnblock=9604,t.dochadathai=3598,t.dodekthai=3604,t.dohiragana=12393,t.dokatakana=12489,t.dollar=36;t.dollarinferior=63203,t.dollarmonospace=65284,t.dollaroldstyle=63268,t.dollarsmall=65129,t.dollarsuperior=63204,t.dong=8363,t.dorusquare=13094,t.dotaccent=729,t.dotaccentcmb=775,t.dotbelowcmb=803,t.dotbelowcomb=803,t.dotkatakana=12539,t.dotlessi=305,t.dotlessj=63166,t.dotlessjstrokehook=644,t.dotmath=8901,t.dottedcircle=9676,t.doubleyodpatah=64287,t.doubleyodpatahhebrew=64287,t.downtackbelowcmb=798,t.downtackmod=725,t.dparen=9375,t.dsuperior=63211,t.dtail=598,t.dtopbar=396,t.duhiragana=12389,t.dukatakana=12485,t.dz=499,t.dzaltone=675,t.dzcaron=454,t.dzcurl=677,t.dzeabkhasiancyrillic=1249,t.dzecyrillic=1109,t.dzhecyrillic=1119,t.e=101,t.eacute=233,t.earth=9793,t.ebengali=2447,t.ebopomofo=12572,t.ebreve=277,t.ecandradeva=2317,t.ecandragujarati=2701,t.ecandravowelsigndeva=2373,t.ecandravowelsigngujarati=2757,t.ecaron=283,t.ecedillabreve=7709,t.echarmenian=1381,t.echyiwnarmenian=1415,t.ecircle=9428,t.ecircumflex=234,t.ecircumflexacute=7871,t.ecircumflexbelow=7705,t.ecircumflexdotbelow=7879,t.ecircumflexgrave=7873,t.ecircumflexhookabove=7875,t.ecircumflextilde=7877,t.ecyrillic=1108,t.edblgrave=517,t.edeva=2319,t.edieresis=235,t.edot=279,t.edotaccent=279,t.edotbelow=7865,t.eegurmukhi=2575,t.eematragurmukhi=2631,t.efcyrillic=1092,t.egrave=232,t.egujarati=2703,t.eharmenian=1383,t.ehbopomofo=12573,t.ehiragana=12360,t.ehookabove=7867,t.eibopomofo=12575,t.eight=56,t.eightarabic=1640,t.eightbengali=2542,t.eightcircle=9319,t.eightcircleinversesansserif=10129,t.eightdeva=2414,t.eighteencircle=9329,t.eighteenparen=9349,t.eighteenperiod=9369,t.eightgujarati=2798,t.eightgurmukhi=2670,t.eighthackarabic=1640,t.eighthangzhou=12328,t.eighthnotebeamed=9835,t.eightideographicparen=12839,t.eightinferior=8328,t.eightmonospace=65304,t.eightoldstyle=63288,t.eightparen=9339,t.eightperiod=9359,t.eightpersian=1784,t.eightroman=8567,t.eightsuperior=8312,t.eightthai=3672,t.einvertedbreve=519,t.eiotifiedcyrillic=1125,t.ekatakana=12456,t.ekatakanahalfwidth=65396,t.ekonkargurmukhi=2676,t.ekorean=12628,t.elcyrillic=1083,t.element=8712,t.elevencircle=9322,t.elevenparen=9342,t.elevenperiod=9362,t.elevenroman=8570,t.ellipsis=8230,t.ellipsisvertical=8942,t.emacron=275,t.emacronacute=7703,t.emacrongrave=7701,t.emcyrillic=1084,t.emdash=8212,t.emdashvertical=65073,t.emonospace=65349,t.emphasismarkarmenian=1371,t.emptyset=8709,t.enbopomofo=12579,t.encyrillic=1085,t.endash=8211,t.endashvertical=65074,t.endescendercyrillic=1187,t.eng=331,t.engbopomofo=12581,t.enghecyrillic=1189,t.enhookcyrillic=1224,t.enspace=8194,t.eogonek=281,t.eokorean=12627,t.eopen=603,t.eopenclosed=666,t.eopenreversed=604,t.eopenreversedclosed=606,t.eopenreversedhook=605,t.eparen=9376,t.epsilon=949,t.epsilontonos=941,t.equal=61,t.equalmonospace=65309,t.equalsmall=65126,t.equalsuperior=8316,t.equivalence=8801,t.erbopomofo=12582,t.ercyrillic=1088,t.ereversed=600,t.ereversedcyrillic=1101,t.escyrillic=1089,t.esdescendercyrillic=1195,t.esh=643,t.eshcurl=646,t.eshortdeva=2318,t.eshortvowelsigndeva=2374,t.eshreversedloop=426,t.eshsquatreversed=645,t.esmallhiragana=12359,t.esmallkatakana=12455,t.esmallkatakanahalfwidth=65386,t.estimated=8494,t.esuperior=63212,t.eta=951,t.etarmenian=1384,t.etatonos=942,t.eth=240,t.etilde=7869,t.etildebelow=7707,t.etnahtafoukhhebrew=1425,t.etnahtafoukhlefthebrew=1425,t.etnahtahebrew=1425,t.etnahtalefthebrew=1425,t.eturned=477,t.eukorean=12641,t.euro=8364,t.evowelsignbengali=2503,t.evowelsigndeva=2375,t.evowelsigngujarati=2759,t.exclam=33,t.exclamarmenian=1372,t.exclamdbl=8252,t.exclamdown=161,t.exclamdownsmall=63393,t.exclammonospace=65281,t.exclamsmall=63265,t.existential=8707,t.ezh=658,t.ezhcaron=495,t.ezhcurl=659,t.ezhreversed=441,t.ezhtail=442,t.f=102,t.fadeva=2398,t.fagurmukhi=2654,t.fahrenheit=8457,t.fathaarabic=1614,t.fathalowarabic=1614,t.fathatanarabic=1611,t.fbopomofo=12552,t.fcircle=9429,t.fdotaccent=7711,t.feharabic=1601,t.feharmenian=1414,t.fehfinalarabic=65234,t.fehinitialarabic=65235,t.fehmedialarabic=65236,t.feicoptic=997,t.female=9792,t.ff=64256,t.f_f=64256,t.ffi=64259,t.f_f_i=64259,t.ffl=64260,t.f_f_l=64260,t.fi=64257,t.f_i=64257,t.fifteencircle=9326,t.fifteenparen=9346,t.fifteenperiod=9366,t.figuredash=8210,t.filledbox=9632,t.filledrect=9644,t.finalkaf=1498,t.finalkafdagesh=64314,t.finalkafdageshhebrew=64314,t.finalkafhebrew=1498,t.finalmem=1501,t.finalmemhebrew=1501,t.finalnun=1503,t.finalnunhebrew=1503,t.finalpe=1507,t.finalpehebrew=1507,t.finaltsadi=1509,t.finaltsadihebrew=1509,t.firsttonechinese=713,t.fisheye=9673,t.fitacyrillic=1139,t.five=53,t.fivearabic=1637,t.fivebengali=2539,t.fivecircle=9316,t.fivecircleinversesansserif=10126,t.fivedeva=2411,t.fiveeighths=8541,t.fivegujarati=2795,t.fivegurmukhi=2667,t.fivehackarabic=1637,t.fivehangzhou=12325,t.fiveideographicparen=12836,t.fiveinferior=8325,t.fivemonospace=65301,t.fiveoldstyle=63285,t.fiveparen=9336,t.fiveperiod=9356,t.fivepersian=1781,t.fiveroman=8564,t.fivesuperior=8309,t.fivethai=3669,t.fl=64258,t.f_l=64258,t.florin=402,t.fmonospace=65350,t.fmsquare=13209,t.fofanthai=3615,t.fofathai=3613,t.fongmanthai=3663,t.forall=8704,t.four=52,t.fourarabic=1636,t.fourbengali=2538,t.fourcircle=9315,t.fourcircleinversesansserif=10125,t.fourdeva=2410,t.fourgujarati=2794,t.fourgurmukhi=2666,t.fourhackarabic=1636,t.fourhangzhou=12324,t.fourideographicparen=12835,t.fourinferior=8324,t.fourmonospace=65300,t.fournumeratorbengali=2551,t.fouroldstyle=63284,t.fourparen=9335,t.fourperiod=9355,t.fourpersian=1780,t.fourroman=8563,t.foursuperior=8308,t.fourteencircle=9325,t.fourteenparen=9345,t.fourteenperiod=9365,t.fourthai=3668,t.fourthtonechinese=715,t.fparen=9377,t.fraction=8260,t.franc=8355,t.g=103,t.gabengali=2455,t.gacute=501,t.gadeva=2327,t.gafarabic=1711,t.gaffinalarabic=64403,t.gafinitialarabic=64404,t.gafmedialarabic=64405,t.gagujarati=2711,t.gagurmukhi=2583,t.gahiragana=12364,t.gakatakana=12460,t.gamma=947,t.gammalatinsmall=611,t.gammasuperior=736,t.gangiacoptic=1003,t.gbopomofo=12557,t.gbreve=287,t.gcaron=487,t.gcedilla=291,t.gcircle=9430,t.gcircumflex=285,t.gcommaaccent=291,t.gdot=289,t.gdotaccent=289,t.gecyrillic=1075,t.gehiragana=12370,t.gekatakana=12466,t.geometricallyequal=8785,t.gereshaccenthebrew=1436,t.gereshhebrew=1523,t.gereshmuqdamhebrew=1437,t.germandbls=223,t.gershayimaccenthebrew=1438,t.gershayimhebrew=1524,t.getamark=12307,t.ghabengali=2456,t.ghadarmenian=1394,t.ghadeva=2328,t.ghagujarati=2712,t.ghagurmukhi=2584,t.ghainarabic=1594,t.ghainfinalarabic=65230,t.ghaininitialarabic=65231,t.ghainmedialarabic=65232,t.ghemiddlehookcyrillic=1173,t.ghestrokecyrillic=1171,t.gheupturncyrillic=1169,t.ghhadeva=2394,t.ghhagurmukhi=2650,t.ghook=608,t.ghzsquare=13203,t.gihiragana=12366,t.gikatakana=12462,t.gimarmenian=1379,t.gimel=1490,t.gimeldagesh=64306,t.gimeldageshhebrew=64306,t.gimelhebrew=1490,t.gjecyrillic=1107,t.glottalinvertedstroke=446,t.glottalstop=660,t.glottalstopinverted=662,t.glottalstopmod=704,t.glottalstopreversed=661,t.glottalstopreversedmod=705,t.glottalstopreversedsuperior=740,t.glottalstopstroke=673,t.glottalstopstrokereversed=674,t.gmacron=7713,t.gmonospace=65351,t.gohiragana=12372,t.gokatakana=12468,t.gparen=9378,t.gpasquare=13228,t.gradient=8711,t.grave=96,t.gravebelowcmb=790,t.gravecmb=768,t.gravecomb=768,t.gravedeva=2387,t.gravelowmod=718,t.gravemonospace=65344,t.gravetonecmb=832,t.greater=62,t.greaterequal=8805,t.greaterequalorless=8923,t.greatermonospace=65310,t.greaterorequivalent=8819,t.greaterorless=8823,t.greateroverequal=8807,t.greatersmall=65125,t.gscript=609,t.gstroke=485,t.guhiragana=12368,t.guillemotleft=171,t.guillemotright=187,t.guilsinglleft=8249,t.guilsinglright=8250,t.gukatakana=12464,t.guramusquare=13080,t.gysquare=13257,t.h=104,t.haabkhasiancyrillic=1193,t.haaltonearabic=1729,t.habengali=2489,t.hadescendercyrillic=1203,t.hadeva=2361,t.hagujarati=2745,t.hagurmukhi=2617,t.haharabic=1581,t.hahfinalarabic=65186,t.hahinitialarabic=65187,t.hahiragana=12399,t.hahmedialarabic=65188,t.haitusquare=13098,t.hakatakana=12495,t.hakatakanahalfwidth=65418,t.halantgurmukhi=2637,t.hamzaarabic=1569,t.hamzalowarabic=1569,t.hangulfiller=12644,t.hardsigncyrillic=1098,t.harpoonleftbarbup=8636,t.harpoonrightbarbup=8640,t.hasquare=13258,t.hatafpatah=1458,t.hatafpatah16=1458,t.hatafpatah23=1458,t.hatafpatah2f=1458,t.hatafpatahhebrew=1458,t.hatafpatahnarrowhebrew=1458,t.hatafpatahquarterhebrew=1458,t.hatafpatahwidehebrew=1458,t.hatafqamats=1459,t.hatafqamats1b=1459,t.hatafqamats28=1459,t.hatafqamats34=1459,t.hatafqamatshebrew=1459,t.hatafqamatsnarrowhebrew=1459,t.hatafqamatsquarterhebrew=1459,t.hatafqamatswidehebrew=1459,t.hatafsegol=1457,t.hatafsegol17=1457,t.hatafsegol24=1457,t.hatafsegol30=1457,t.hatafsegolhebrew=1457,t.hatafsegolnarrowhebrew=1457,t.hatafsegolquarterhebrew=1457,t.hatafsegolwidehebrew=1457,t.hbar=295,t.hbopomofo=12559,t.hbrevebelow=7723,t.hcedilla=7721,t.hcircle=9431,t.hcircumflex=293,t.hdieresis=7719,t.hdotaccent=7715,t.hdotbelow=7717,t.he=1492,t.heart=9829,t.heartsuitblack=9829,t.heartsuitwhite=9825,t.hedagesh=64308,t.hedageshhebrew=64308,t.hehaltonearabic=1729,t.heharabic=1607,t.hehebrew=1492,t.hehfinalaltonearabic=64423,t.hehfinalalttwoarabic=65258,t.hehfinalarabic=65258,t.hehhamzaabovefinalarabic=64421,t.hehhamzaaboveisolatedarabic=64420,t.hehinitialaltonearabic=64424,t.hehinitialarabic=65259,t.hehiragana=12408,t.hehmedialaltonearabic=64425,t.hehmedialarabic=65260,t.heiseierasquare=13179,t.hekatakana=12504,t.hekatakanahalfwidth=65421,t.hekutaarusquare=13110,t.henghook=615,t.herutusquare=13113,t.het=1495,t.hethebrew=1495,t.hhook=614,t.hhooksuperior=689,t.hieuhacirclekorean=12923,t.hieuhaparenkorean=12827,t.hieuhcirclekorean=12909,t.hieuhkorean=12622,t.hieuhparenkorean=12813,t.hihiragana=12402,t.hikatakana=12498,t.hikatakanahalfwidth=65419,t.hiriq=1460,t.hiriq14=1460,t.hiriq21=1460,t.hiriq2d=1460,t.hiriqhebrew=1460,t.hiriqnarrowhebrew=1460,t.hiriqquarterhebrew=1460,t.hiriqwidehebrew=1460,t.hlinebelow=7830,t.hmonospace=65352,t.hoarmenian=1392,t.hohipthai=3627,t.hohiragana=12411,t.hokatakana=12507,t.hokatakanahalfwidth=65422,t.holam=1465,t.holam19=1465,t.holam26=1465,t.holam32=1465,t.holamhebrew=1465,t.holamnarrowhebrew=1465,t.holamquarterhebrew=1465,t.holamwidehebrew=1465,t.honokhukthai=3630,t.hookabovecomb=777,t.hookcmb=777,t.hookpalatalizedbelowcmb=801,t.hookretroflexbelowcmb=802,t.hoonsquare=13122,t.horicoptic=1001,t.horizontalbar=8213,t.horncmb=795,t.hotsprings=9832,t.house=8962,t.hparen=9379,t.hsuperior=688,t.hturned=613,t.huhiragana=12405,t.huiitosquare=13107,t.hukatakana=12501,t.hukatakanahalfwidth=65420,t.hungarumlaut=733,t.hungarumlautcmb=779,t.hv=405,t.hyphen=45,t.hypheninferior=63205,t.hyphenmonospace=65293,t.hyphensmall=65123,t.hyphensuperior=63206,t.hyphentwo=8208,t.i=105,t.iacute=237,t.iacyrillic=1103,t.ibengali=2439,t.ibopomofo=12583,t.ibreve=301,t.icaron=464,t.icircle=9432,t.icircumflex=238,t.icyrillic=1110,t.idblgrave=521,t.ideographearthcircle=12943,t.ideographfirecircle=12939,t.ideographicallianceparen=12863,t.ideographiccallparen=12858,t.ideographiccentrecircle=12965,t.ideographicclose=12294,t.ideographiccomma=12289,t.ideographiccommaleft=65380,t.ideographiccongratulationparen=12855,t.ideographiccorrectcircle=12963,t.ideographicearthparen=12847,t.ideographicenterpriseparen=12861,t.ideographicexcellentcircle=12957,t.ideographicfestivalparen=12864,t.ideographicfinancialcircle=12950,t.ideographicfinancialparen=12854,t.ideographicfireparen=12843,t.ideographichaveparen=12850,t.ideographichighcircle=12964,t.ideographiciterationmark=12293,t.ideographiclaborcircle=12952,t.ideographiclaborparen=12856,t.ideographicleftcircle=12967,t.ideographiclowcircle=12966,t.ideographicmedicinecircle=12969,t.ideographicmetalparen=12846,t.ideographicmoonparen=12842,t.ideographicnameparen=12852,t.ideographicperiod=12290,t.ideographicprintcircle=12958,t.ideographicreachparen=12867,t.ideographicrepresentparen=12857,t.ideographicresourceparen=12862,t.ideographicrightcircle=12968,t.ideographicsecretcircle=12953,t.ideographicselfparen=12866,t.ideographicsocietyparen=12851,t.ideographicspace=12288,t.ideographicspecialparen=12853,t.ideographicstockparen=12849,t.ideographicstudyparen=12859,t.ideographicsunparen=12848,t.ideographicsuperviseparen=12860,t.ideographicwaterparen=12844,t.ideographicwoodparen=12845,t.ideographiczero=12295,t.ideographmetalcircle=12942,t.ideographmooncircle=12938,t.ideographnamecircle=12948,t.ideographsuncircle=12944,t.ideographwatercircle=12940,t.ideographwoodcircle=12941,t.ideva=2311,t.idieresis=239,t.idieresisacute=7727,t.idieresiscyrillic=1253,t.idotbelow=7883,t.iebrevecyrillic=1239,t.iecyrillic=1077,t.ieungacirclekorean=12917,t.ieungaparenkorean=12821,t.ieungcirclekorean=12903,t.ieungkorean=12615,t.ieungparenkorean=12807,t.igrave=236,t.igujarati=2695,t.igurmukhi=2567,t.ihiragana=12356,t.ihookabove=7881,t.iibengali=2440,t.iicyrillic=1080,t.iideva=2312,t.iigujarati=2696,t.iigurmukhi=2568,t.iimatragurmukhi=2624,t.iinvertedbreve=523,t.iishortcyrillic=1081,t.iivowelsignbengali=2496,t.iivowelsigndeva=2368,t.iivowelsigngujarati=2752,t.ij=307,t.ikatakana=12452,t.ikatakanahalfwidth=65394,t.ikorean=12643,t.ilde=732,t.iluyhebrew=1452,t.imacron=299,t.imacroncyrillic=1251,t.imageorapproximatelyequal=8787,t.imatragurmukhi=2623,t.imonospace=65353,t.increment=8710,t.infinity=8734,t.iniarmenian=1387,t.integral=8747,t.integralbottom=8993,t.integralbt=8993,t.integralex=63733,t.integraltop=8992,t.integraltp=8992,t.intersection=8745,t.intisquare=13061,t.invbullet=9688,t.invcircle=9689,t.invsmileface=9787,t.iocyrillic=1105,t.iogonek=303,t.iota=953,t.iotadieresis=970,t.iotadieresistonos=912,t.iotalatin=617,t.iotatonos=943,t.iparen=9380,t.irigurmukhi=2674,t.ismallhiragana=12355,t.ismallkatakana=12451,t.ismallkatakanahalfwidth=65384,t.issharbengali=2554,t.istroke=616,t.isuperior=63213,t.iterationhiragana=12445,t.iterationkatakana=12541,t.itilde=297,t.itildebelow=7725,t.iubopomofo=12585,t.iucyrillic=1102,t.ivowelsignbengali=2495,t.ivowelsigndeva=2367,t.ivowelsigngujarati=2751,t.izhitsacyrillic=1141,t.izhitsadblgravecyrillic=1143,t.j=106,t.jaarmenian=1393,t.jabengali=2460,t.jadeva=2332,t.jagujarati=2716,t.jagurmukhi=2588,t.jbopomofo=12560,t.jcaron=496,t.jcircle=9433,t.jcircumflex=309,t.jcrossedtail=669,t.jdotlessstroke=607,t.jecyrillic=1112,t.jeemarabic=1580,t.jeemfinalarabic=65182,t.jeeminitialarabic=65183,t.jeemmedialarabic=65184,t.jeharabic=1688,t.jehfinalarabic=64395,t.jhabengali=2461,t.jhadeva=2333,t.jhagujarati=2717,t.jhagurmukhi=2589,t.jheharmenian=1403,t.jis=12292,t.jmonospace=65354,t.jparen=9381,t.jsuperior=690,t.k=107,t.kabashkircyrillic=1185,t.kabengali=2453,t.kacute=7729,t.kacyrillic=1082,t.kadescendercyrillic=1179,t.kadeva=2325,t.kaf=1499,t.kafarabic=1603,t.kafdagesh=64315,t.kafdageshhebrew=64315,t.kaffinalarabic=65242,t.kafhebrew=1499,t.kafinitialarabic=65243,t.kafmedialarabic=65244,t.kafrafehebrew=64333,t.kagujarati=2709,t.kagurmukhi=2581,t.kahiragana=12363,t.kahookcyrillic=1220,t.kakatakana=12459,t.kakatakanahalfwidth=65398,t.kappa=954,t.kappasymbolgreek=1008,t.kapyeounmieumkorean=12657,t.kapyeounphieuphkorean=12676,t.kapyeounpieupkorean=12664,t.kapyeounssangpieupkorean=12665,t.karoriisquare=13069,t.kashidaautoarabic=1600,t.kashidaautonosidebearingarabic=1600,t.kasmallkatakana=12533,t.kasquare=13188,t.kasraarabic=1616,t.kasratanarabic=1613,t.kastrokecyrillic=1183,t.katahiraprolongmarkhalfwidth=65392,t.kaverticalstrokecyrillic=1181,t.kbopomofo=12558,t.kcalsquare=13193,t.kcaron=489,t.kcedilla=311,t.kcircle=9434,t.kcommaaccent=311,t.kdotbelow=7731,t.keharmenian=1412,t.kehiragana=12369,t.kekatakana=12465,t.kekatakanahalfwidth=65401,t.kenarmenian=1391,t.kesmallkatakana=12534,t.kgreenlandic=312,t.khabengali=2454,t.khacyrillic=1093,t.khadeva=2326,t.khagujarati=2710,t.khagurmukhi=2582,t.khaharabic=1582,t.khahfinalarabic=65190,t.khahinitialarabic=65191,t.khahmedialarabic=65192,t.kheicoptic=999,t.khhadeva=2393,t.khhagurmukhi=2649,t.khieukhacirclekorean=12920,t.khieukhaparenkorean=12824,t.khieukhcirclekorean=12906,t.khieukhkorean=12619,t.khieukhparenkorean=12810,t.khokhaithai=3586,t.khokhonthai=3589,t.khokhuatthai=3587,t.khokhwaithai=3588,t.khomutthai=3675,t.khook=409,t.khorakhangthai=3590,t.khzsquare=13201,t.kihiragana=12365,t.kikatakana=12461,t.kikatakanahalfwidth=65399,t.kiroguramusquare=13077,t.kiromeetorusquare=13078,t.kirosquare=13076,t.kiyeokacirclekorean=12910,t.kiyeokaparenkorean=12814,t.kiyeokcirclekorean=12896,t.kiyeokkorean=12593,t.kiyeokparenkorean=12800,t.kiyeoksioskorean=12595;t.kjecyrillic=1116,t.klinebelow=7733,t.klsquare=13208,t.kmcubedsquare=13222,t.kmonospace=65355,t.kmsquaredsquare=13218,t.kohiragana=12371,t.kohmsquare=13248,t.kokaithai=3585,t.kokatakana=12467,t.kokatakanahalfwidth=65402,t.kooposquare=13086,t.koppacyrillic=1153,t.koreanstandardsymbol=12927,t.koroniscmb=835,t.kparen=9382,t.kpasquare=13226,t.ksicyrillic=1135,t.ktsquare=13263,t.kturned=670,t.kuhiragana=12367,t.kukatakana=12463,t.kukatakanahalfwidth=65400,t.kvsquare=13240,t.kwsquare=13246,t.l=108,t.labengali=2482,t.lacute=314,t.ladeva=2354,t.lagujarati=2738,t.lagurmukhi=2610,t.lakkhangyaothai=3653,t.lamaleffinalarabic=65276,t.lamalefhamzaabovefinalarabic=65272,t.lamalefhamzaaboveisolatedarabic=65271,t.lamalefhamzabelowfinalarabic=65274,t.lamalefhamzabelowisolatedarabic=65273,t.lamalefisolatedarabic=65275,t.lamalefmaddaabovefinalarabic=65270,t.lamalefmaddaaboveisolatedarabic=65269,t.lamarabic=1604,t.lambda=955,t.lambdastroke=411,t.lamed=1500,t.lameddagesh=64316,t.lameddageshhebrew=64316,t.lamedhebrew=1500,t.lamfinalarabic=65246,t.lamhahinitialarabic=64714,t.laminitialarabic=65247,t.lamjeeminitialarabic=64713,t.lamkhahinitialarabic=64715,t.lamlamhehisolatedarabic=65010,t.lammedialarabic=65248,t.lammeemhahinitialarabic=64904,t.lammeeminitialarabic=64716,t.largecircle=9711,t.lbar=410,t.lbelt=620,t.lbopomofo=12556,t.lcaron=318,t.lcedilla=316,t.lcircle=9435,t.lcircumflexbelow=7741,t.lcommaaccent=316,t.ldot=320,t.ldotaccent=320,t.ldotbelow=7735,t.ldotbelowmacron=7737,t.leftangleabovecmb=794,t.lefttackbelowcmb=792,t.less=60,t.lessequal=8804,t.lessequalorgreater=8922,t.lessmonospace=65308,t.lessorequivalent=8818,t.lessorgreater=8822,t.lessoverequal=8806,t.lesssmall=65124,t.lezh=622,t.lfblock=9612,t.lhookretroflex=621,t.lira=8356,t.liwnarmenian=1388,t.lj=457,t.ljecyrillic=1113,t.ll=63168,t.lladeva=2355,t.llagujarati=2739,t.llinebelow=7739,t.llladeva=2356,t.llvocalicbengali=2529,t.llvocalicdeva=2401,t.llvocalicvowelsignbengali=2531,t.llvocalicvowelsigndeva=2403,t.lmiddletilde=619,t.lmonospace=65356,t.lmsquare=13264,t.lochulathai=3628,t.logicaland=8743,t.logicalnot=172,t.logicalnotreversed=8976,t.logicalor=8744,t.lolingthai=3621,t.longs=383,t.lowlinecenterline=65102,t.lowlinecmb=818,t.lowlinedashed=65101,t.lozenge=9674,t.lparen=9383,t.lslash=322,t.lsquare=8467,t.lsuperior=63214,t.ltshade=9617,t.luthai=3622,t.lvocalicbengali=2444,t.lvocalicdeva=2316,t.lvocalicvowelsignbengali=2530,t.lvocalicvowelsigndeva=2402,t.lxsquare=13267,t.m=109,t.mabengali=2478,t.macron=175,t.macronbelowcmb=817,t.macroncmb=772,t.macronlowmod=717,t.macronmonospace=65507,t.macute=7743,t.madeva=2350,t.magujarati=2734,t.magurmukhi=2606,t.mahapakhhebrew=1444,t.mahapakhlefthebrew=1444,t.mahiragana=12414,t.maichattawalowleftthai=63637,t.maichattawalowrightthai=63636,t.maichattawathai=3659,t.maichattawaupperleftthai=63635,t.maieklowleftthai=63628,t.maieklowrightthai=63627,t.maiekthai=3656,t.maiekupperleftthai=63626,t.maihanakatleftthai=63620,t.maihanakatthai=3633,t.maitaikhuleftthai=63625,t.maitaikhuthai=3655,t.maitholowleftthai=63631,t.maitholowrightthai=63630,t.maithothai=3657,t.maithoupperleftthai=63629,t.maitrilowleftthai=63634,t.maitrilowrightthai=63633,t.maitrithai=3658,t.maitriupperleftthai=63632,t.maiyamokthai=3654,t.makatakana=12510,t.makatakanahalfwidth=65423,t.male=9794,t.mansyonsquare=13127,t.maqafhebrew=1470,t.mars=9794,t.masoracirclehebrew=1455,t.masquare=13187,t.mbopomofo=12551,t.mbsquare=13268,t.mcircle=9436,t.mcubedsquare=13221,t.mdotaccent=7745,t.mdotbelow=7747,t.meemarabic=1605,t.meemfinalarabic=65250,t.meeminitialarabic=65251,t.meemmedialarabic=65252,t.meemmeeminitialarabic=64721,t.meemmeemisolatedarabic=64584,t.meetorusquare=13133,t.mehiragana=12417,t.meizierasquare=13182,t.mekatakana=12513,t.mekatakanahalfwidth=65426,t.mem=1502,t.memdagesh=64318,t.memdageshhebrew=64318,t.memhebrew=1502,t.menarmenian=1396,t.merkhahebrew=1445,t.merkhakefulahebrew=1446,t.merkhakefulalefthebrew=1446,t.merkhalefthebrew=1445,t.mhook=625,t.mhzsquare=13202,t.middledotkatakanahalfwidth=65381,t.middot=183,t.mieumacirclekorean=12914,t.mieumaparenkorean=12818,t.mieumcirclekorean=12900,t.mieumkorean=12609,t.mieumpansioskorean=12656,t.mieumparenkorean=12804,t.mieumpieupkorean=12654,t.mieumsioskorean=12655,t.mihiragana=12415,t.mikatakana=12511,t.mikatakanahalfwidth=65424,t.minus=8722,t.minusbelowcmb=800,t.minuscircle=8854,t.minusmod=727,t.minusplus=8723,t.minute=8242,t.miribaarusquare=13130,t.mirisquare=13129,t.mlonglegturned=624,t.mlsquare=13206,t.mmcubedsquare=13219,t.mmonospace=65357,t.mmsquaredsquare=13215,t.mohiragana=12418,t.mohmsquare=13249,t.mokatakana=12514,t.mokatakanahalfwidth=65427,t.molsquare=13270,t.momathai=3617,t.moverssquare=13223,t.moverssquaredsquare=13224,t.mparen=9384,t.mpasquare=13227,t.mssquare=13235,t.msuperior=63215,t.mturned=623,t.mu=181,t.mu1=181,t.muasquare=13186,t.muchgreater=8811,t.muchless=8810,t.mufsquare=13196,t.mugreek=956,t.mugsquare=13197,t.muhiragana=12416,t.mukatakana=12512,t.mukatakanahalfwidth=65425,t.mulsquare=13205,t.multiply=215,t.mumsquare=13211,t.munahhebrew=1443,t.munahlefthebrew=1443,t.musicalnote=9834,t.musicalnotedbl=9835,t.musicflatsign=9837,t.musicsharpsign=9839,t.mussquare=13234,t.muvsquare=13238,t.muwsquare=13244,t.mvmegasquare=13241,t.mvsquare=13239,t.mwmegasquare=13247,t.mwsquare=13245,t.n=110,t.nabengali=2472,t.nabla=8711,t.nacute=324,t.nadeva=2344,t.nagujarati=2728,t.nagurmukhi=2600,t.nahiragana=12394,t.nakatakana=12490,t.nakatakanahalfwidth=65413,t.napostrophe=329,t.nasquare=13185,t.nbopomofo=12555,t.nbspace=160,t.ncaron=328,t.ncedilla=326,t.ncircle=9437,t.ncircumflexbelow=7755,t.ncommaaccent=326,t.ndotaccent=7749,t.ndotbelow=7751,t.nehiragana=12397,t.nekatakana=12493,t.nekatakanahalfwidth=65416,t.newsheqelsign=8362,t.nfsquare=13195,t.ngabengali=2457,t.ngadeva=2329,t.ngagujarati=2713,t.ngagurmukhi=2585,t.ngonguthai=3591,t.nhiragana=12435,t.nhookleft=626,t.nhookretroflex=627,t.nieunacirclekorean=12911,t.nieunaparenkorean=12815,t.nieuncieuckorean=12597,t.nieuncirclekorean=12897,t.nieunhieuhkorean=12598,t.nieunkorean=12596,t.nieunpansioskorean=12648,t.nieunparenkorean=12801,t.nieunsioskorean=12647,t.nieuntikeutkorean=12646,t.nihiragana=12395,t.nikatakana=12491,t.nikatakanahalfwidth=65414,t.nikhahitleftthai=63641,t.nikhahitthai=3661,t.nine=57,t.ninearabic=1641,t.ninebengali=2543,t.ninecircle=9320,t.ninecircleinversesansserif=10130,t.ninedeva=2415,t.ninegujarati=2799,t.ninegurmukhi=2671,t.ninehackarabic=1641,t.ninehangzhou=12329,t.nineideographicparen=12840,t.nineinferior=8329,t.ninemonospace=65305,t.nineoldstyle=63289,t.nineparen=9340,t.nineperiod=9360,t.ninepersian=1785,t.nineroman=8568,t.ninesuperior=8313,t.nineteencircle=9330,t.nineteenparen=9350,t.nineteenperiod=9370,t.ninethai=3673,t.nj=460,t.njecyrillic=1114,t.nkatakana=12531,t.nkatakanahalfwidth=65437,t.nlegrightlong=414,t.nlinebelow=7753,t.nmonospace=65358,t.nmsquare=13210,t.nnabengali=2467,t.nnadeva=2339,t.nnagujarati=2723,t.nnagurmukhi=2595,t.nnnadeva=2345,t.nohiragana=12398,t.nokatakana=12494,t.nokatakanahalfwidth=65417,t.nonbreakingspace=160,t.nonenthai=3603,t.nonuthai=3609,t.noonarabic=1606,t.noonfinalarabic=65254,t.noonghunnaarabic=1722,t.noonghunnafinalarabic=64415,t.nooninitialarabic=65255,t.noonjeeminitialarabic=64722,t.noonjeemisolatedarabic=64587,t.noonmedialarabic=65256,t.noonmeeminitialarabic=64725,t.noonmeemisolatedarabic=64590,t.noonnoonfinalarabic=64653,t.notcontains=8716,t.notelement=8713,t.notelementof=8713,t.notequal=8800,t.notgreater=8815,t.notgreaternorequal=8817,t.notgreaternorless=8825,t.notidentical=8802,t.notless=8814,t.notlessnorequal=8816,t.notparallel=8742,t.notprecedes=8832,t.notsubset=8836,t.notsucceeds=8833,t.notsuperset=8837,t.nowarmenian=1398,t.nparen=9385,t.nssquare=13233,t.nsuperior=8319,t.ntilde=241,t.nu=957,t.nuhiragana=12396,t.nukatakana=12492,t.nukatakanahalfwidth=65415,t.nuktabengali=2492,t.nuktadeva=2364,t.nuktagujarati=2748,t.nuktagurmukhi=2620,t.numbersign=35,t.numbersignmonospace=65283,t.numbersignsmall=65119,t.numeralsigngreek=884,t.numeralsignlowergreek=885,t.numero=8470,t.nun=1504,t.nundagesh=64320,t.nundageshhebrew=64320,t.nunhebrew=1504,t.nvsquare=13237,t.nwsquare=13243,t.nyabengali=2462,t.nyadeva=2334,t.nyagujarati=2718,t.nyagurmukhi=2590,t.o=111,t.oacute=243,t.oangthai=3629,t.obarred=629,t.obarredcyrillic=1257,t.obarreddieresiscyrillic=1259,t.obengali=2451,t.obopomofo=12571,t.obreve=335,t.ocandradeva=2321,t.ocandragujarati=2705,t.ocandravowelsigndeva=2377,t.ocandravowelsigngujarati=2761,t.ocaron=466,t.ocircle=9438,t.ocircumflex=244,t.ocircumflexacute=7889,t.ocircumflexdotbelow=7897,t.ocircumflexgrave=7891,t.ocircumflexhookabove=7893,t.ocircumflextilde=7895,t.ocyrillic=1086,t.odblacute=337,t.odblgrave=525,t.odeva=2323,t.odieresis=246,t.odieresiscyrillic=1255,t.odotbelow=7885,t.oe=339,t.oekorean=12634,t.ogonek=731,t.ogonekcmb=808,t.ograve=242,t.ogujarati=2707,t.oharmenian=1413,t.ohiragana=12362,t.ohookabove=7887,t.ohorn=417,t.ohornacute=7899,t.ohorndotbelow=7907,t.ohorngrave=7901,t.ohornhookabove=7903,t.ohorntilde=7905,t.ohungarumlaut=337,t.oi=419,t.oinvertedbreve=527,t.okatakana=12458,t.okatakanahalfwidth=65397,t.okorean=12631,t.olehebrew=1451,t.omacron=333,t.omacronacute=7763,t.omacrongrave=7761,t.omdeva=2384,t.omega=969,t.omega1=982,t.omegacyrillic=1121,t.omegalatinclosed=631,t.omegaroundcyrillic=1147,t.omegatitlocyrillic=1149,t.omegatonos=974,t.omgujarati=2768,t.omicron=959,t.omicrontonos=972,t.omonospace=65359,t.one=49,t.onearabic=1633,t.onebengali=2535,t.onecircle=9312,t.onecircleinversesansserif=10122,t.onedeva=2407,t.onedotenleader=8228,t.oneeighth=8539,t.onefitted=63196,t.onegujarati=2791,t.onegurmukhi=2663,t.onehackarabic=1633,t.onehalf=189,t.onehangzhou=12321,t.oneideographicparen=12832,t.oneinferior=8321,t.onemonospace=65297,t.onenumeratorbengali=2548,t.oneoldstyle=63281,t.oneparen=9332,t.oneperiod=9352,t.onepersian=1777,t.onequarter=188,t.oneroman=8560,t.onesuperior=185,t.onethai=3665,t.onethird=8531,t.oogonek=491,t.oogonekmacron=493,t.oogurmukhi=2579,t.oomatragurmukhi=2635,t.oopen=596,t.oparen=9386,t.openbullet=9702,t.option=8997,t.ordfeminine=170,t.ordmasculine=186,t.orthogonal=8735,t.oshortdeva=2322,t.oshortvowelsigndeva=2378,t.oslash=248,t.oslashacute=511,t.osmallhiragana=12361,t.osmallkatakana=12457,t.osmallkatakanahalfwidth=65387,t.ostrokeacute=511,t.osuperior=63216,t.otcyrillic=1151,t.otilde=245,t.otildeacute=7757,t.otildedieresis=7759,t.oubopomofo=12577,t.overline=8254,t.overlinecenterline=65098,t.overlinecmb=773,t.overlinedashed=65097,t.overlinedblwavy=65100,t.overlinewavy=65099,t.overscore=175,t.ovowelsignbengali=2507,t.ovowelsigndeva=2379,t.ovowelsigngujarati=2763,t.p=112,t.paampssquare=13184,t.paasentosquare=13099,t.pabengali=2474,t.pacute=7765,t.padeva=2346,t.pagedown=8671,t.pageup=8670,t.pagujarati=2730,t.pagurmukhi=2602,t.pahiragana=12401,t.paiyannoithai=3631,t.pakatakana=12497,t.palatalizationcyrilliccmb=1156,t.palochkacyrillic=1216,t.pansioskorean=12671,t.paragraph=182,t.parallel=8741,t.parenleft=40,t.parenleftaltonearabic=64830,t.parenleftbt=63725,t.parenleftex=63724,t.parenleftinferior=8333,t.parenleftmonospace=65288,t.parenleftsmall=65113,t.parenleftsuperior=8317,t.parenlefttp=63723,t.parenleftvertical=65077,t.parenright=41,t.parenrightaltonearabic=64831,t.parenrightbt=63736,t.parenrightex=63735,t.parenrightinferior=8334,t.parenrightmonospace=65289,t.parenrightsmall=65114,t.parenrightsuperior=8318,t.parenrighttp=63734,t.parenrightvertical=65078,t.partialdiff=8706,t.paseqhebrew=1472,t.pashtahebrew=1433,t.pasquare=13225,t.patah=1463,t.patah11=1463,t.patah1d=1463,t.patah2a=1463,t.patahhebrew=1463,t.patahnarrowhebrew=1463,t.patahquarterhebrew=1463,t.patahwidehebrew=1463,t.pazerhebrew=1441,t.pbopomofo=12550,t.pcircle=9439,t.pdotaccent=7767,t.pe=1508,t.pecyrillic=1087,t.pedagesh=64324,t.pedageshhebrew=64324,t.peezisquare=13115,t.pefinaldageshhebrew=64323,t.peharabic=1662,t.peharmenian=1402,t.pehebrew=1508,t.pehfinalarabic=64343,t.pehinitialarabic=64344,t.pehiragana=12410,t.pehmedialarabic=64345,t.pekatakana=12506,t.pemiddlehookcyrillic=1191,t.perafehebrew=64334,t.percent=37,t.percentarabic=1642,t.percentmonospace=65285,t.percentsmall=65130,t.period=46,t.periodarmenian=1417,t.periodcentered=183,t.periodhalfwidth=65377,t.periodinferior=63207,t.periodmonospace=65294,t.periodsmall=65106,t.periodsuperior=63208,t.perispomenigreekcmb=834,t.perpendicular=8869,t.perthousand=8240,t.peseta=8359,t.pfsquare=13194,t.phabengali=2475,t.phadeva=2347,t.phagujarati=2731,t.phagurmukhi=2603,t.phi=966,t.phi1=981,t.phieuphacirclekorean=12922,t.phieuphaparenkorean=12826,t.phieuphcirclekorean=12908,t.phieuphkorean=12621,t.phieuphparenkorean=12812,t.philatin=632,t.phinthuthai=3642,t.phisymbolgreek=981,t.phook=421,t.phophanthai=3614,t.phophungthai=3612,t.phosamphaothai=3616,t.pi=960,t.pieupacirclekorean=12915,t.pieupaparenkorean=12819,t.pieupcieuckorean=12662,t.pieupcirclekorean=12901,t.pieupkiyeokkorean=12658,t.pieupkorean=12610,t.pieupparenkorean=12805,t.pieupsioskiyeokkorean=12660,t.pieupsioskorean=12612,t.pieupsiostikeutkorean=12661,t.pieupthieuthkorean=12663,t.pieuptikeutkorean=12659,t.pihiragana=12404,t.pikatakana=12500,t.pisymbolgreek=982,t.piwrarmenian=1411,t.planckover2pi=8463,t.planckover2pi1=8463,t.plus=43,t.plusbelowcmb=799,t.pluscircle=8853,t.plusminus=177,t.plusmod=726,t.plusmonospace=65291,t.plussmall=65122,t.plussuperior=8314,t.pmonospace=65360,t.pmsquare=13272,t.pohiragana=12413,t.pointingindexdownwhite=9759,t.pointingindexleftwhite=9756,t.pointingindexrightwhite=9758,t.pointingindexupwhite=9757,t.pokatakana=12509,t.poplathai=3611,t.postalmark=12306,t.postalmarkface=12320,t.pparen=9387,t.precedes=8826,t.prescription=8478,t.primemod=697,t.primereversed=8245,t.product=8719,t.projective=8965,t.prolongedkana=12540,t.propellor=8984,t.propersubset=8834,t.propersuperset=8835,t.proportion=8759,t.proportional=8733,t.psi=968,t.psicyrillic=1137,t.psilipneumatacyrilliccmb=1158,t.pssquare=13232,t.puhiragana=12407,t.pukatakana=12503,t.pvsquare=13236,t.pwsquare=13242,t.q=113,t.qadeva=2392,t.qadmahebrew=1448,t.qafarabic=1602,t.qaffinalarabic=65238,t.qafinitialarabic=65239,t.qafmedialarabic=65240,t.qamats=1464,t.qamats10=1464,t.qamats1a=1464,t.qamats1c=1464,t.qamats27=1464,t.qamats29=1464,t.qamats33=1464,t.qamatsde=1464,t.qamatshebrew=1464,t.qamatsnarrowhebrew=1464,t.qamatsqatanhebrew=1464,t.qamatsqatannarrowhebrew=1464,t.qamatsqatanquarterhebrew=1464,t.qamatsqatanwidehebrew=1464,t.qamatsquarterhebrew=1464,t.qamatswidehebrew=1464,t.qarneyparahebrew=1439,t.qbopomofo=12561,t.qcircle=9440,t.qhook=672,t.qmonospace=65361,t.qof=1511,t.qofdagesh=64327,t.qofdageshhebrew=64327,t.qofhebrew=1511,t.qparen=9388,t.quarternote=9833,t.qubuts=1467,t.qubuts18=1467,t.qubuts25=1467,t.qubuts31=1467,t.qubutshebrew=1467,t.qubutsnarrowhebrew=1467,t.qubutsquarterhebrew=1467,t.qubutswidehebrew=1467,t.question=63,t.questionarabic=1567,t.questionarmenian=1374,t.questiondown=191,t.questiondownsmall=63423,t.questiongreek=894,t.questionmonospace=65311,t.questionsmall=63295,t.quotedbl=34,t.quotedblbase=8222,t.quotedblleft=8220,t.quotedblmonospace=65282,t.quotedblprime=12318,t.quotedblprimereversed=12317,t.quotedblright=8221,t.quoteleft=8216,t.quoteleftreversed=8219,t.quotereversed=8219,t.quoteright=8217,t.quoterightn=329,t.quotesinglbase=8218,t.quotesingle=39,t.quotesinglemonospace=65287,t.r=114,t.raarmenian=1404,t.rabengali=2480,t.racute=341,t.radeva=2352,t.radical=8730,t.radicalex=63717,t.radoverssquare=13230,t.radoverssquaredsquare=13231,t.radsquare=13229,t.rafe=1471,t.rafehebrew=1471,t.ragujarati=2736,t.ragurmukhi=2608,t.rahiragana=12425,t.rakatakana=12521,t.rakatakanahalfwidth=65431,t.ralowerdiagonalbengali=2545,t.ramiddlediagonalbengali=2544,t.ramshorn=612,t.ratio=8758,t.rbopomofo=12566,t.rcaron=345,t.rcedilla=343,t.rcircle=9441,t.rcommaaccent=343,t.rdblgrave=529,t.rdotaccent=7769,t.rdotbelow=7771,t.rdotbelowmacron=7773,t.referencemark=8251,t.reflexsubset=8838,t.reflexsuperset=8839,t.registered=174,t.registersans=63720,t.registerserif=63194,t.reharabic=1585,t.reharmenian=1408,t.rehfinalarabic=65198,t.rehiragana=12428,t.rekatakana=12524;t.rekatakanahalfwidth=65434,t.resh=1512,t.reshdageshhebrew=64328,t.reshhebrew=1512,t.reversedtilde=8765,t.reviahebrew=1431,t.reviamugrashhebrew=1431,t.revlogicalnot=8976,t.rfishhook=638,t.rfishhookreversed=639,t.rhabengali=2525,t.rhadeva=2397,t.rho=961,t.rhook=637,t.rhookturned=635,t.rhookturnedsuperior=693,t.rhosymbolgreek=1009,t.rhotichookmod=734,t.rieulacirclekorean=12913,t.rieulaparenkorean=12817,t.rieulcirclekorean=12899,t.rieulhieuhkorean=12608,t.rieulkiyeokkorean=12602,t.rieulkiyeoksioskorean=12649,t.rieulkorean=12601,t.rieulmieumkorean=12603,t.rieulpansioskorean=12652,t.rieulparenkorean=12803,t.rieulphieuphkorean=12607,t.rieulpieupkorean=12604,t.rieulpieupsioskorean=12651,t.rieulsioskorean=12605,t.rieulthieuthkorean=12606,t.rieultikeutkorean=12650,t.rieulyeorinhieuhkorean=12653,t.rightangle=8735,t.righttackbelowcmb=793,t.righttriangle=8895,t.rihiragana=12426,t.rikatakana=12522,t.rikatakanahalfwidth=65432,t.ring=730,t.ringbelowcmb=805,t.ringcmb=778,t.ringhalfleft=703,t.ringhalfleftarmenian=1369,t.ringhalfleftbelowcmb=796,t.ringhalfleftcentered=723,t.ringhalfright=702,t.ringhalfrightbelowcmb=825,t.ringhalfrightcentered=722,t.rinvertedbreve=531,t.rittorusquare=13137,t.rlinebelow=7775,t.rlongleg=636,t.rlonglegturned=634,t.rmonospace=65362,t.rohiragana=12429,t.rokatakana=12525,t.rokatakanahalfwidth=65435,t.roruathai=3619,t.rparen=9389,t.rrabengali=2524,t.rradeva=2353,t.rragurmukhi=2652,t.rreharabic=1681,t.rrehfinalarabic=64397,t.rrvocalicbengali=2528,t.rrvocalicdeva=2400,t.rrvocalicgujarati=2784,t.rrvocalicvowelsignbengali=2500,t.rrvocalicvowelsigndeva=2372,t.rrvocalicvowelsigngujarati=2756,t.rsuperior=63217,t.rtblock=9616,t.rturned=633,t.rturnedsuperior=692,t.ruhiragana=12427,t.rukatakana=12523,t.rukatakanahalfwidth=65433,t.rupeemarkbengali=2546,t.rupeesignbengali=2547,t.rupiah=63197,t.ruthai=3620,t.rvocalicbengali=2443,t.rvocalicdeva=2315,t.rvocalicgujarati=2699,t.rvocalicvowelsignbengali=2499,t.rvocalicvowelsigndeva=2371,t.rvocalicvowelsigngujarati=2755,t.s=115,t.sabengali=2488,t.sacute=347,t.sacutedotaccent=7781,t.sadarabic=1589,t.sadeva=2360,t.sadfinalarabic=65210,t.sadinitialarabic=65211,t.sadmedialarabic=65212,t.sagujarati=2744,t.sagurmukhi=2616,t.sahiragana=12373,t.sakatakana=12469,t.sakatakanahalfwidth=65403,t.sallallahoualayhewasallamarabic=65018,t.samekh=1505,t.samekhdagesh=64321,t.samekhdageshhebrew=64321,t.samekhhebrew=1505,t.saraaathai=3634,t.saraaethai=3649,t.saraaimaimalaithai=3652,t.saraaimaimuanthai=3651,t.saraamthai=3635,t.saraathai=3632,t.saraethai=3648,t.saraiileftthai=63622,t.saraiithai=3637,t.saraileftthai=63621,t.saraithai=3636,t.saraothai=3650,t.saraueeleftthai=63624,t.saraueethai=3639,t.saraueleftthai=63623,t.sarauethai=3638,t.sarauthai=3640,t.sarauuthai=3641,t.sbopomofo=12569,t.scaron=353,t.scarondotaccent=7783,t.scedilla=351,t.schwa=601,t.schwacyrillic=1241,t.schwadieresiscyrillic=1243,t.schwahook=602,t.scircle=9442,t.scircumflex=349,t.scommaaccent=537,t.sdotaccent=7777,t.sdotbelow=7779,t.sdotbelowdotaccent=7785,t.seagullbelowcmb=828,t.second=8243,t.secondtonechinese=714,t.section=167,t.seenarabic=1587,t.seenfinalarabic=65202,t.seeninitialarabic=65203,t.seenmedialarabic=65204,t.segol=1462,t.segol13=1462,t.segol1f=1462,t.segol2c=1462,t.segolhebrew=1462,t.segolnarrowhebrew=1462,t.segolquarterhebrew=1462,t.segoltahebrew=1426,t.segolwidehebrew=1462,t.seharmenian=1405,t.sehiragana=12379,t.sekatakana=12475,t.sekatakanahalfwidth=65406,t.semicolon=59,t.semicolonarabic=1563,t.semicolonmonospace=65307,t.semicolonsmall=65108,t.semivoicedmarkkana=12444,t.semivoicedmarkkanahalfwidth=65439,t.sentisquare=13090,t.sentosquare=13091,t.seven=55,t.sevenarabic=1639,t.sevenbengali=2541,t.sevencircle=9318,t.sevencircleinversesansserif=10128,t.sevendeva=2413,t.seveneighths=8542,t.sevengujarati=2797,t.sevengurmukhi=2669,t.sevenhackarabic=1639,t.sevenhangzhou=12327,t.sevenideographicparen=12838,t.seveninferior=8327,t.sevenmonospace=65303,t.sevenoldstyle=63287,t.sevenparen=9338,t.sevenperiod=9358,t.sevenpersian=1783,t.sevenroman=8566,t.sevensuperior=8311,t.seventeencircle=9328,t.seventeenparen=9348,t.seventeenperiod=9368,t.seventhai=3671,t.sfthyphen=173,t.shaarmenian=1399,t.shabengali=2486,t.shacyrillic=1096,t.shaddaarabic=1617,t.shaddadammaarabic=64609,t.shaddadammatanarabic=64606,t.shaddafathaarabic=64608,t.shaddakasraarabic=64610,t.shaddakasratanarabic=64607,t.shade=9618,t.shadedark=9619,t.shadelight=9617,t.shademedium=9618,t.shadeva=2358,t.shagujarati=2742,t.shagurmukhi=2614,t.shalshelethebrew=1427,t.shbopomofo=12565,t.shchacyrillic=1097,t.sheenarabic=1588,t.sheenfinalarabic=65206,t.sheeninitialarabic=65207,t.sheenmedialarabic=65208,t.sheicoptic=995,t.sheqel=8362,t.sheqelhebrew=8362,t.sheva=1456,t.sheva115=1456,t.sheva15=1456,t.sheva22=1456,t.sheva2e=1456,t.shevahebrew=1456,t.shevanarrowhebrew=1456,t.shevaquarterhebrew=1456,t.shevawidehebrew=1456,t.shhacyrillic=1211,t.shimacoptic=1005,t.shin=1513,t.shindagesh=64329,t.shindageshhebrew=64329,t.shindageshshindot=64300,t.shindageshshindothebrew=64300,t.shindageshsindot=64301,t.shindageshsindothebrew=64301,t.shindothebrew=1473,t.shinhebrew=1513,t.shinshindot=64298,t.shinshindothebrew=64298,t.shinsindot=64299,t.shinsindothebrew=64299,t.shook=642,t.sigma=963,t.sigma1=962,t.sigmafinal=962,t.sigmalunatesymbolgreek=1010,t.sihiragana=12375,t.sikatakana=12471,t.sikatakanahalfwidth=65404,t.siluqhebrew=1469,t.siluqlefthebrew=1469,t.similar=8764,t.sindothebrew=1474,t.siosacirclekorean=12916,t.siosaparenkorean=12820,t.sioscieuckorean=12670,t.sioscirclekorean=12902,t.sioskiyeokkorean=12666,t.sioskorean=12613,t.siosnieunkorean=12667,t.siosparenkorean=12806,t.siospieupkorean=12669,t.siostikeutkorean=12668,t.six=54,t.sixarabic=1638,t.sixbengali=2540,t.sixcircle=9317,t.sixcircleinversesansserif=10127,t.sixdeva=2412,t.sixgujarati=2796,t.sixgurmukhi=2668,t.sixhackarabic=1638,t.sixhangzhou=12326,t.sixideographicparen=12837,t.sixinferior=8326,t.sixmonospace=65302,t.sixoldstyle=63286,t.sixparen=9337,t.sixperiod=9357,t.sixpersian=1782,t.sixroman=8565,t.sixsuperior=8310,t.sixteencircle=9327,t.sixteencurrencydenominatorbengali=2553,t.sixteenparen=9347,t.sixteenperiod=9367,t.sixthai=3670,t.slash=47,t.slashmonospace=65295,t.slong=383,t.slongdotaccent=7835,t.smileface=9786,t.smonospace=65363,t.sofpasuqhebrew=1475,t.softhyphen=173,t.softsigncyrillic=1100,t.sohiragana=12381,t.sokatakana=12477,t.sokatakanahalfwidth=65407,t.soliduslongoverlaycmb=824,t.solidusshortoverlaycmb=823,t.sorusithai=3625,t.sosalathai=3624,t.sosothai=3595,t.sosuathai=3626,t.space=32,t.spacehackarabic=32,t.spade=9824,t.spadesuitblack=9824,t.spadesuitwhite=9828,t.sparen=9390,t.squarebelowcmb=827,t.squarecc=13252,t.squarecm=13213,t.squarediagonalcrosshatchfill=9641,t.squarehorizontalfill=9636,t.squarekg=13199,t.squarekm=13214,t.squarekmcapital=13262,t.squareln=13265,t.squarelog=13266,t.squaremg=13198,t.squaremil=13269,t.squaremm=13212,t.squaremsquared=13217,t.squareorthogonalcrosshatchfill=9638,t.squareupperlefttolowerrightfill=9639,t.squareupperrighttolowerleftfill=9640,t.squareverticalfill=9637,t.squarewhitewithsmallblack=9635,t.srsquare=13275,t.ssabengali=2487,t.ssadeva=2359,t.ssagujarati=2743,t.ssangcieuckorean=12617,t.ssanghieuhkorean=12677,t.ssangieungkorean=12672,t.ssangkiyeokkorean=12594,t.ssangnieunkorean=12645,t.ssangpieupkorean=12611,t.ssangsioskorean=12614,t.ssangtikeutkorean=12600,t.ssuperior=63218,t.sterling=163,t.sterlingmonospace=65505,t.strokelongoverlaycmb=822,t.strokeshortoverlaycmb=821,t.subset=8834,t.subsetnotequal=8842,t.subsetorequal=8838,t.succeeds=8827,t.suchthat=8715,t.suhiragana=12377,t.sukatakana=12473,t.sukatakanahalfwidth=65405,t.sukunarabic=1618,t.summation=8721,t.sun=9788,t.superset=8835,t.supersetnotequal=8843,t.supersetorequal=8839,t.svsquare=13276,t.syouwaerasquare=13180,t.t=116,t.tabengali=2468,t.tackdown=8868,t.tackleft=8867,t.tadeva=2340,t.tagujarati=2724,t.tagurmukhi=2596,t.taharabic=1591,t.tahfinalarabic=65218,t.tahinitialarabic=65219,t.tahiragana=12383,t.tahmedialarabic=65220,t.taisyouerasquare=13181,t.takatakana=12479,t.takatakanahalfwidth=65408,t.tatweelarabic=1600,t.tau=964,t.tav=1514,t.tavdages=64330,t.tavdagesh=64330,t.tavdageshhebrew=64330,t.tavhebrew=1514,t.tbar=359,t.tbopomofo=12554,t.tcaron=357,t.tccurl=680,t.tcedilla=355,t.tcheharabic=1670,t.tchehfinalarabic=64379,t.tchehinitialarabic=64380,t.tchehmedialarabic=64381,t.tcircle=9443,t.tcircumflexbelow=7793,t.tcommaaccent=355,t.tdieresis=7831,t.tdotaccent=7787,t.tdotbelow=7789,t.tecyrillic=1090,t.tedescendercyrillic=1197,t.teharabic=1578,t.tehfinalarabic=65174,t.tehhahinitialarabic=64674,t.tehhahisolatedarabic=64524,t.tehinitialarabic=65175,t.tehiragana=12390,t.tehjeeminitialarabic=64673,t.tehjeemisolatedarabic=64523,t.tehmarbutaarabic=1577,t.tehmarbutafinalarabic=65172,t.tehmedialarabic=65176,t.tehmeeminitialarabic=64676,t.tehmeemisolatedarabic=64526,t.tehnoonfinalarabic=64627,t.tekatakana=12486,t.tekatakanahalfwidth=65411,t.telephone=8481,t.telephoneblack=9742,t.telishagedolahebrew=1440,t.telishaqetanahebrew=1449,t.tencircle=9321,t.tenideographicparen=12841,t.tenparen=9341,t.tenperiod=9361,t.tenroman=8569,t.tesh=679,t.tet=1496,t.tetdagesh=64312,t.tetdageshhebrew=64312,t.tethebrew=1496,t.tetsecyrillic=1205,t.tevirhebrew=1435,t.tevirlefthebrew=1435,t.thabengali=2469,t.thadeva=2341,t.thagujarati=2725,t.thagurmukhi=2597,t.thalarabic=1584,t.thalfinalarabic=65196,t.thanthakhatlowleftthai=63640,t.thanthakhatlowrightthai=63639,t.thanthakhatthai=3660,t.thanthakhatupperleftthai=63638,t.theharabic=1579,t.thehfinalarabic=65178,t.thehinitialarabic=65179,t.thehmedialarabic=65180,t.thereexists=8707,t.therefore=8756,t.theta=952,t.theta1=977,t.thetasymbolgreek=977,t.thieuthacirclekorean=12921,t.thieuthaparenkorean=12825,t.thieuthcirclekorean=12907,t.thieuthkorean=12620,t.thieuthparenkorean=12811,t.thirteencircle=9324,t.thirteenparen=9344,t.thirteenperiod=9364,t.thonangmonthothai=3601,t.thook=429,t.thophuthaothai=3602,t.thorn=254,t.thothahanthai=3607,t.thothanthai=3600,t.thothongthai=3608,t.thothungthai=3606,t.thousandcyrillic=1154,t.thousandsseparatorarabic=1644,t.thousandsseparatorpersian=1644,t.three=51,t.threearabic=1635,t.threebengali=2537,t.threecircle=9314,t.threecircleinversesansserif=10124,t.threedeva=2409,t.threeeighths=8540,t.threegujarati=2793,t.threegurmukhi=2665,t.threehackarabic=1635,t.threehangzhou=12323,t.threeideographicparen=12834,t.threeinferior=8323,t.threemonospace=65299,t.threenumeratorbengali=2550,t.threeoldstyle=63283,t.threeparen=9334,t.threeperiod=9354,t.threepersian=1779,t.threequarters=190,t.threequartersemdash=63198,t.threeroman=8562,t.threesuperior=179,t.threethai=3667,t.thzsquare=13204,t.tihiragana=12385,t.tikatakana=12481,t.tikatakanahalfwidth=65409,t.tikeutacirclekorean=12912,t.tikeutaparenkorean=12816,t.tikeutcirclekorean=12898,t.tikeutkorean=12599,t.tikeutparenkorean=12802,t.tilde=732,t.tildebelowcmb=816,t.tildecmb=771,t.tildecomb=771,t.tildedoublecmb=864,t.tildeoperator=8764,t.tildeoverlaycmb=820,t.tildeverticalcmb=830,t.timescircle=8855,t.tipehahebrew=1430,t.tipehalefthebrew=1430,t.tippigurmukhi=2672,t.titlocyrilliccmb=1155,t.tiwnarmenian=1407,t.tlinebelow=7791,t.tmonospace=65364,t.toarmenian=1385,t.tohiragana=12392,t.tokatakana=12488,t.tokatakanahalfwidth=65412,t.tonebarextrahighmod=741,t.tonebarextralowmod=745,t.tonebarhighmod=742,t.tonebarlowmod=744,t.tonebarmidmod=743,t.tonefive=445,t.tonesix=389,t.tonetwo=424,t.tonos=900,t.tonsquare=13095,t.topatakthai=3599,t.tortoiseshellbracketleft=12308,t.tortoiseshellbracketleftsmall=65117,t.tortoiseshellbracketleftvertical=65081,t.tortoiseshellbracketright=12309,t.tortoiseshellbracketrightsmall=65118,t.tortoiseshellbracketrightvertical=65082,t.totaothai=3605,t.tpalatalhook=427,t.tparen=9391,t.trademark=8482,t.trademarksans=63722,t.trademarkserif=63195,t.tretroflexhook=648,t.triagdn=9660,t.triaglf=9668,t.triagrt=9658,t.triagup=9650,t.ts=678,t.tsadi=1510,t.tsadidagesh=64326,t.tsadidageshhebrew=64326,t.tsadihebrew=1510,t.tsecyrillic=1094,t.tsere=1461,t.tsere12=1461,t.tsere1e=1461,t.tsere2b=1461,t.tserehebrew=1461,t.tserenarrowhebrew=1461,t.tserequarterhebrew=1461,t.tserewidehebrew=1461,t.tshecyrillic=1115,t.tsuperior=63219,t.ttabengali=2463,t.ttadeva=2335,t.ttagujarati=2719,t.ttagurmukhi=2591,t.tteharabic=1657,t.ttehfinalarabic=64359,t.ttehinitialarabic=64360,t.ttehmedialarabic=64361,t.tthabengali=2464,t.tthadeva=2336,t.tthagujarati=2720,t.tthagurmukhi=2592,t.tturned=647,t.tuhiragana=12388,t.tukatakana=12484,t.tukatakanahalfwidth=65410,t.tusmallhiragana=12387,t.tusmallkatakana=12483,t.tusmallkatakanahalfwidth=65391,t.twelvecircle=9323,t.twelveparen=9343,t.twelveperiod=9363,t.twelveroman=8571,t.twentycircle=9331,t.twentyhangzhou=21316,t.twentyparen=9351,t.twentyperiod=9371,t.two=50,t.twoarabic=1634,t.twobengali=2536,t.twocircle=9313,t.twocircleinversesansserif=10123,t.twodeva=2408,t.twodotenleader=8229,t.twodotleader=8229,t.twodotleadervertical=65072,t.twogujarati=2792,t.twogurmukhi=2664,t.twohackarabic=1634,t.twohangzhou=12322,t.twoideographicparen=12833,t.twoinferior=8322,t.twomonospace=65298,t.twonumeratorbengali=2549,t.twooldstyle=63282,t.twoparen=9333,t.twoperiod=9353,t.twopersian=1778,t.tworoman=8561,t.twostroke=443,t.twosuperior=178,t.twothai=3666,t.twothirds=8532,t.u=117,t.uacute=250,t.ubar=649,t.ubengali=2441,t.ubopomofo=12584,t.ubreve=365,t.ucaron=468,t.ucircle=9444,t.ucircumflex=251,t.ucircumflexbelow=7799,t.ucyrillic=1091,t.udattadeva=2385,t.udblacute=369,t.udblgrave=533,t.udeva=2313,t.udieresis=252,t.udieresisacute=472,t.udieresisbelow=7795,t.udieresiscaron=474,t.udieresiscyrillic=1265,t.udieresisgrave=476,t.udieresismacron=470,t.udotbelow=7909,t.ugrave=249,t.ugujarati=2697,t.ugurmukhi=2569,t.uhiragana=12358,t.uhookabove=7911,t.uhorn=432,t.uhornacute=7913,t.uhorndotbelow=7921,t.uhorngrave=7915,t.uhornhookabove=7917,t.uhorntilde=7919,t.uhungarumlaut=369,t.uhungarumlautcyrillic=1267,t.uinvertedbreve=535,t.ukatakana=12454,t.ukatakanahalfwidth=65395,t.ukcyrillic=1145,t.ukorean=12636,t.umacron=363,t.umacroncyrillic=1263,t.umacrondieresis=7803,t.umatragurmukhi=2625,t.umonospace=65365,t.underscore=95,t.underscoredbl=8215,t.underscoremonospace=65343,t.underscorevertical=65075,t.underscorewavy=65103,t.union=8746,t.universal=8704,t.uogonek=371,t.uparen=9392,t.upblock=9600,t.upperdothebrew=1476,t.upsilon=965,t.upsilondieresis=971,t.upsilondieresistonos=944,t.upsilonlatin=650,t.upsilontonos=973,t.uptackbelowcmb=797,t.uptackmod=724,t.uragurmukhi=2675,t.uring=367,t.ushortcyrillic=1118,t.usmallhiragana=12357,t.usmallkatakana=12453,t.usmallkatakanahalfwidth=65385,t.ustraightcyrillic=1199,t.ustraightstrokecyrillic=1201,t.utilde=361,t.utildeacute=7801,t.utildebelow=7797,t.uubengali=2442,t.uudeva=2314,t.uugujarati=2698,t.uugurmukhi=2570,t.uumatragurmukhi=2626,t.uuvowelsignbengali=2498,t.uuvowelsigndeva=2370,t.uuvowelsigngujarati=2754,t.uvowelsignbengali=2497,t.uvowelsigndeva=2369,t.uvowelsigngujarati=2753,t.v=118,t.vadeva=2357,t.vagujarati=2741,t.vagurmukhi=2613,t.vakatakana=12535,t.vav=1493,t.vavdagesh=64309,t.vavdagesh65=64309,t.vavdageshhebrew=64309,t.vavhebrew=1493,t.vavholam=64331,t.vavholamhebrew=64331,t.vavvavhebrew=1520,t.vavyodhebrew=1521,t.vcircle=9445,t.vdotbelow=7807,t.vecyrillic=1074,t.veharabic=1700,t.vehfinalarabic=64363,t.vehinitialarabic=64364,t.vehmedialarabic=64365,t.vekatakana=12537,t.venus=9792,t.verticalbar=124,t.verticallineabovecmb=781,t.verticallinebelowcmb=809,t.verticallinelowmod=716,t.verticallinemod=712,t.vewarmenian=1406,t.vhook=651,t.vikatakana=12536,t.viramabengali=2509,t.viramadeva=2381,t.viramagujarati=2765,t.visargabengali=2435,t.visargadeva=2307,t.visargagujarati=2691,t.vmonospace=65366,t.voarmenian=1400,t.voicediterationhiragana=12446,t.voicediterationkatakana=12542,t.voicedmarkkana=12443,t.voicedmarkkanahalfwidth=65438,t.vokatakana=12538,t.vparen=9393,t.vtilde=7805,t.vturned=652,t.vuhiragana=12436,t.vukatakana=12532,t.w=119,t.wacute=7811,t.waekorean=12633,t.wahiragana=12431,t.wakatakana=12527,t.wakatakanahalfwidth=65436,t.wakorean=12632,t.wasmallhiragana=12430,t.wasmallkatakana=12526,t.wattosquare=13143,t.wavedash=12316,t.wavyunderscorevertical=65076,t.wawarabic=1608,t.wawfinalarabic=65262,t.wawhamzaabovearabic=1572,t.wawhamzaabovefinalarabic=65158,t.wbsquare=13277,t.wcircle=9446,t.wcircumflex=373,t.wdieresis=7813,t.wdotaccent=7815,t.wdotbelow=7817,t.wehiragana=12433,t.weierstrass=8472,t.wekatakana=12529,t.wekorean=12638,t.weokorean=12637,t.wgrave=7809,t.whitebullet=9702,t.whitecircle=9675,t.whitecircleinverse=9689,t.whitecornerbracketleft=12302,t.whitecornerbracketleftvertical=65091,t.whitecornerbracketright=12303,t.whitecornerbracketrightvertical=65092,t.whitediamond=9671,t.whitediamondcontainingblacksmalldiamond=9672,t.whitedownpointingsmalltriangle=9663;t.whitedownpointingtriangle=9661,t.whiteleftpointingsmalltriangle=9667,t.whiteleftpointingtriangle=9665,t.whitelenticularbracketleft=12310,t.whitelenticularbracketright=12311,t.whiterightpointingsmalltriangle=9657,t.whiterightpointingtriangle=9655,t.whitesmallsquare=9643,t.whitesmilingface=9786,t.whitesquare=9633,t.whitestar=9734,t.whitetelephone=9743,t.whitetortoiseshellbracketleft=12312,t.whitetortoiseshellbracketright=12313,t.whiteuppointingsmalltriangle=9653,t.whiteuppointingtriangle=9651,t.wihiragana=12432,t.wikatakana=12528,t.wikorean=12639,t.wmonospace=65367,t.wohiragana=12434,t.wokatakana=12530,t.wokatakanahalfwidth=65382,t.won=8361,t.wonmonospace=65510,t.wowaenthai=3623,t.wparen=9394,t.wring=7832,t.wsuperior=695,t.wturned=653,t.wynn=447,t.x=120,t.xabovecmb=829,t.xbopomofo=12562,t.xcircle=9447,t.xdieresis=7821,t.xdotaccent=7819,t.xeharmenian=1389,t.xi=958,t.xmonospace=65368,t.xparen=9395,t.xsuperior=739,t.y=121,t.yaadosquare=13134,t.yabengali=2479,t.yacute=253,t.yadeva=2351,t.yaekorean=12626,t.yagujarati=2735,t.yagurmukhi=2607,t.yahiragana=12420,t.yakatakana=12516,t.yakatakanahalfwidth=65428,t.yakorean=12625,t.yamakkanthai=3662,t.yasmallhiragana=12419,t.yasmallkatakana=12515,t.yasmallkatakanahalfwidth=65388,t.yatcyrillic=1123,t.ycircle=9448,t.ycircumflex=375,t.ydieresis=255,t.ydotaccent=7823,t.ydotbelow=7925,t.yeharabic=1610,t.yehbarreearabic=1746,t.yehbarreefinalarabic=64431,t.yehfinalarabic=65266,t.yehhamzaabovearabic=1574,t.yehhamzaabovefinalarabic=65162,t.yehhamzaaboveinitialarabic=65163,t.yehhamzaabovemedialarabic=65164,t.yehinitialarabic=65267,t.yehmedialarabic=65268,t.yehmeeminitialarabic=64733,t.yehmeemisolatedarabic=64600,t.yehnoonfinalarabic=64660,t.yehthreedotsbelowarabic=1745,t.yekorean=12630,t.yen=165,t.yenmonospace=65509,t.yeokorean=12629,t.yeorinhieuhkorean=12678,t.yerahbenyomohebrew=1450,t.yerahbenyomolefthebrew=1450,t.yericyrillic=1099,t.yerudieresiscyrillic=1273,t.yesieungkorean=12673,t.yesieungpansioskorean=12675,t.yesieungsioskorean=12674,t.yetivhebrew=1434,t.ygrave=7923,t.yhook=436,t.yhookabove=7927,t.yiarmenian=1397,t.yicyrillic=1111,t.yikorean=12642,t.yinyang=9775,t.yiwnarmenian=1410,t.ymonospace=65369,t.yod=1497,t.yoddagesh=64313,t.yoddageshhebrew=64313,t.yodhebrew=1497,t.yodyodhebrew=1522,t.yodyodpatahhebrew=64287,t.yohiragana=12424,t.yoikorean=12681,t.yokatakana=12520,t.yokatakanahalfwidth=65430,t.yokorean=12635,t.yosmallhiragana=12423,t.yosmallkatakana=12519,t.yosmallkatakanahalfwidth=65390,t.yotgreek=1011,t.yoyaekorean=12680,t.yoyakorean=12679,t.yoyakthai=3618,t.yoyingthai=3597,t.yparen=9396,t.ypogegrammeni=890,t.ypogegrammenigreekcmb=837,t.yr=422,t.yring=7833,t.ysuperior=696,t.ytilde=7929,t.yturned=654,t.yuhiragana=12422,t.yuikorean=12684,t.yukatakana=12518,t.yukatakanahalfwidth=65429,t.yukorean=12640,t.yusbigcyrillic=1131,t.yusbigiotifiedcyrillic=1133,t.yuslittlecyrillic=1127,t.yuslittleiotifiedcyrillic=1129,t.yusmallhiragana=12421,t.yusmallkatakana=12517,t.yusmallkatakanahalfwidth=65389,t.yuyekorean=12683,t.yuyeokorean=12682,t.yyabengali=2527,t.yyadeva=2399,t.z=122,t.zaarmenian=1382,t.zacute=378,t.zadeva=2395,t.zagurmukhi=2651,t.zaharabic=1592,t.zahfinalarabic=65222,t.zahinitialarabic=65223,t.zahiragana=12374,t.zahmedialarabic=65224,t.zainarabic=1586,t.zainfinalarabic=65200,t.zakatakana=12470,t.zaqefgadolhebrew=1429,t.zaqefqatanhebrew=1428,t.zarqahebrew=1432,t.zayin=1494,t.zayindagesh=64310,t.zayindageshhebrew=64310,t.zayinhebrew=1494,t.zbopomofo=12567,t.zcaron=382,t.zcircle=9449,t.zcircumflex=7825,t.zcurl=657,t.zdot=380,t.zdotaccent=380,t.zdotbelow=7827,t.zecyrillic=1079,t.zedescendercyrillic=1177,t.zedieresiscyrillic=1247,t.zehiragana=12380,t.zekatakana=12476,t.zero=48,t.zeroarabic=1632,t.zerobengali=2534,t.zerodeva=2406,t.zerogujarati=2790,t.zerogurmukhi=2662,t.zerohackarabic=1632,t.zeroinferior=8320,t.zeromonospace=65296,t.zerooldstyle=63280,t.zeropersian=1776,t.zerosuperior=8304,t.zerothai=3664,t.zerowidthjoiner=65279,t.zerowidthnonjoiner=8204,t.zerowidthspace=8203,t.zeta=950,t.zhbopomofo=12563,t.zhearmenian=1386,t.zhebrevecyrillic=1218,t.zhecyrillic=1078,t.zhedescendercyrillic=1175,t.zhedieresiscyrillic=1245,t.zihiragana=12376,t.zikatakana=12472,t.zinorhebrew=1454,t.zlinebelow=7829,t.zmonospace=65370,t.zohiragana=12382,t.zokatakana=12478,t.zparen=9397,t.zretroflexhook=656,t.zstroke=438,t.zuhiragana=12378,t.zukatakana=12474,t[".notdef"]=0,t.angbracketleftbig=9001,t.angbracketleftBig=9001,t.angbracketleftbigg=9001,t.angbracketleftBigg=9001,t.angbracketrightBig=9002,t.angbracketrightbig=9002,t.angbracketrightBigg=9002,t.angbracketrightbigg=9002,t.arrowhookleft=8618,t.arrowhookright=8617,t.arrowlefttophalf=8636,t.arrowleftbothalf=8637,t.arrownortheast=8599,t.arrownorthwest=8598,t.arrowrighttophalf=8640,t.arrowrightbothalf=8641,t.arrowsoutheast=8600,t.arrowsouthwest=8601,t.backslashbig=8726,t.backslashBig=8726,t.backslashBigg=8726,t.backslashbigg=8726,t.bardbl=8214,t.bracehtipdownleft=65079,t.bracehtipdownright=65079,t.bracehtipupleft=65080,t.bracehtipupright=65080,t.braceleftBig=123,t.braceleftbig=123,t.braceleftbigg=123,t.braceleftBigg=123,t.bracerightBig=125,t.bracerightbig=125,t.bracerightbigg=125,t.bracerightBigg=125,t.bracketleftbig=91,t.bracketleftBig=91,t.bracketleftbigg=91,t.bracketleftBigg=91,t.bracketrightBig=93,t.bracketrightbig=93,t.bracketrightbigg=93,t.bracketrightBigg=93,t.ceilingleftbig=8968,t.ceilingleftBig=8968,t.ceilingleftBigg=8968,t.ceilingleftbigg=8968,t.ceilingrightbig=8969,t.ceilingrightBig=8969,t.ceilingrightbigg=8969,t.ceilingrightBigg=8969,t.circledotdisplay=8857,t.circledottext=8857,t.circlemultiplydisplay=8855,t.circlemultiplytext=8855,t.circleplusdisplay=8853,t.circleplustext=8853,t.contintegraldisplay=8750,t.contintegraltext=8750,t.coproductdisplay=8720,t.coproducttext=8720,t.floorleftBig=8970,t.floorleftbig=8970,t.floorleftbigg=8970,t.floorleftBigg=8970,t.floorrightbig=8971,t.floorrightBig=8971,t.floorrightBigg=8971,t.floorrightbigg=8971,t.hatwide=770,t.hatwider=770,t.hatwidest=770,t.intercal=7488,t.integraldisplay=8747,t.integraltext=8747,t.intersectiondisplay=8898,t.intersectiontext=8898,t.logicalanddisplay=8743,t.logicalandtext=8743,t.logicalordisplay=8744,t.logicalortext=8744,t.parenleftBig=40,t.parenleftbig=40,t.parenleftBigg=40,t.parenleftbigg=40,t.parenrightBig=41,t.parenrightbig=41,t.parenrightBigg=41,t.parenrightbigg=41,t.prime=8242,t.productdisplay=8719,t.producttext=8719,t.radicalbig=8730,t.radicalBig=8730,t.radicalBigg=8730,t.radicalbigg=8730,t.radicalbt=8730,t.radicaltp=8730,t.radicalvertex=8730,t.slashbig=47,t.slashBig=47,t.slashBigg=47,t.slashbigg=47,t.summationdisplay=8721,t.summationtext=8721,t.tildewide=732,t.tildewider=732,t.tildewidest=732,t.uniondisplay=8899,t.unionmultidisplay=8846,t.unionmultitext=8846,t.unionsqdisplay=8852,t.unionsqtext=8852,t.uniontext=8899,t.vextenddouble=8741,t.vextendsingle=8739}),getDingbatsGlyphsUnicode=getLookupTableFactory(function(t){t.space=32,t.a1=9985,t.a2=9986,t.a202=9987,t.a3=9988,t.a4=9742,t.a5=9990,t.a119=9991,t.a118=9992,t.a117=9993,t.a11=9755,t.a12=9758,t.a13=9996,t.a14=9997,t.a15=9998,t.a16=9999,t.a105=1e4,t.a17=10001,t.a18=10002,t.a19=10003,t.a20=10004,t.a21=10005,t.a22=10006,t.a23=10007,t.a24=10008,t.a25=10009,t.a26=10010,t.a27=10011,t.a28=10012,t.a6=10013,t.a7=10014,t.a8=10015,t.a9=10016,t.a10=10017,t.a29=10018,t.a30=10019,t.a31=10020,t.a32=10021,t.a33=10022,t.a34=10023,t.a35=9733,t.a36=10025,t.a37=10026,t.a38=10027,t.a39=10028,t.a40=10029,t.a41=10030,t.a42=10031,t.a43=10032,t.a44=10033,t.a45=10034,t.a46=10035,t.a47=10036,t.a48=10037,t.a49=10038,t.a50=10039,t.a51=10040,t.a52=10041,t.a53=10042,t.a54=10043,t.a55=10044,t.a56=10045,t.a57=10046,t.a58=10047,t.a59=10048,t.a60=10049,t.a61=10050,t.a62=10051,t.a63=10052,t.a64=10053,t.a65=10054,t.a66=10055,t.a67=10056,t.a68=10057,t.a69=10058,t.a70=10059,t.a71=9679,t.a72=10061,t.a73=9632,t.a74=10063,t.a203=10064,t.a75=10065,t.a204=10066,t.a76=9650,t.a77=9660,t.a78=9670,t.a79=10070,t.a81=9687,t.a82=10072,t.a83=10073,t.a84=10074,t.a97=10075,t.a98=10076,t.a99=10077,t.a100=10078,t.a101=10081,t.a102=10082,t.a103=10083,t.a104=10084,t.a106=10085,t.a107=10086,t.a108=10087,t.a112=9827,t.a111=9830,t.a110=9829,t.a109=9824,t.a120=9312,t.a121=9313,t.a122=9314,t.a123=9315,t.a124=9316,t.a125=9317,t.a126=9318,t.a127=9319,t.a128=9320,t.a129=9321,t.a130=10102,t.a131=10103,t.a132=10104,t.a133=10105,t.a134=10106,t.a135=10107,t.a136=10108,t.a137=10109,t.a138=10110,t.a139=10111,t.a140=10112,t.a141=10113,t.a142=10114,t.a143=10115,t.a144=10116,t.a145=10117,t.a146=10118,t.a147=10119,t.a148=10120,t.a149=10121,t.a150=10122,t.a151=10123,t.a152=10124,t.a153=10125,t.a154=10126,t.a155=10127,t.a156=10128,t.a157=10129,t.a158=10130,t.a159=10131,t.a160=10132,t.a161=8594,t.a163=8596,t.a164=8597,t.a196=10136,t.a165=10137,t.a192=10138,t.a166=10139,t.a167=10140,t.a168=10141,t.a169=10142,t.a170=10143,t.a171=10144,t.a172=10145,t.a173=10146,t.a162=10147,t.a174=10148,t.a175=10149,t.a176=10150,t.a177=10151,t.a178=10152,t.a179=10153,t.a193=10154,t.a180=10155,t.a199=10156,t.a181=10157,t.a200=10158,t.a182=10159,t.a201=10161,t.a183=10162,t.a184=10163,t.a197=10164,t.a185=10165,t.a194=10166,t.a198=10167,t.a186=10168,t.a195=10169,t.a187=10170,t.a188=10171,t.a189=10172,t.a190=10173,t.a191=10174,t.a89=10088,t.a90=10089,t.a93=10090,t.a94=10091,t.a91=10092,t.a92=10093,t.a205=10094,t.a85=10095,t.a206=10096,t.a86=10097,t.a87=10098,t.a88=10099,t.a95=10100,t.a96=10101,t[".notdef"]=0}),getSpecialPUASymbols=getLookupTableFactory(function(t){t[63721]=169,t[63193]=169,t[63720]=174,t[63194]=174,t[63722]=8482,t[63195]=8482,t[63729]=9127,t[63730]=9128,t[63731]=9129,t[63740]=9131,t[63741]=9132,t[63742]=9133,t[63726]=9121,t[63727]=9122,t[63728]=9123,t[63737]=9124,t[63738]=9125,t[63739]=9126,t[63723]=9115,t[63724]=9116,t[63725]=9117,t[63734]=9118,t[63735]=9119,t[63736]=9120});function mapSpecialUnicodeValues(code){return 65520<=code&&code<=65535?0:62976<=code&&code<=63743?getSpecialPUASymbols()[code]||code:173===code?45:code}function getUnicodeForGlyph(name,glyphsUnicodeMap){glyphsUnicodeMap=glyphsUnicodeMap[name];if(void 0!==glyphsUnicodeMap)return glyphsUnicodeMap;if(name&&"u"===name[0]){var nameLen=name.length;let hexStr;if(7===nameLen&&"n"===name[1]&&"i"===name[2])hexStr=name.substring(3);else{if(!(5<=nameLen&&nameLen<=7))return-1;hexStr=name.substring(1)}if(hexStr===hexStr.toUpperCase()&&0<=(glyphsUnicodeMap=parseInt(hexStr,16)))return glyphsUnicodeMap}return-1}const UnicodeRanges=[[0,127],[128,255],[256,383],[384,591],[592,687,7424,7551,7552,7615],[688,767,42752,42783],[768,879,7616,7679],[880,1023],[11392,11519],[1024,1279,1280,1327,11744,11775,42560,42655],[1328,1423],[1424,1535],[42240,42559],[1536,1791,1872,1919],[1984,2047],[2304,2431],[2432,2559],[2560,2687],[2688,2815],[2816,2943],[2944,3071],[3072,3199],[3200,3327],[3328,3455],[3584,3711],[3712,3839],[4256,4351,11520,11567],[6912,7039],[4352,4607],[7680,7935,11360,11391,42784,43007],[7936,8191],[8192,8303,11776,11903],[8304,8351],[8352,8399],[8400,8447],[8448,8527],[8528,8591],[8592,8703,10224,10239,10496,10623,11008,11263],[8704,8959,10752,11007,10176,10223,10624,10751],[8960,9215],[9216,9279],[9280,9311],[9312,9471],[9472,9599],[9600,9631],[9632,9727],[9728,9983],[9984,10175],[12288,12351],[12352,12447],[12448,12543,12784,12799],[12544,12591,12704,12735],[12592,12687],[43072,43135],[12800,13055],[13056,13311],[44032,55215],[55296,57343],[67840,67871],[19968,40959,11904,12031,12032,12255,12272,12287,13312,19903,131072,173791,12688,12703],[57344,63743],[12736,12783,63744,64255,194560,195103],[64256,64335],[64336,65023],[65056,65071],[65040,65055],[65104,65135],[65136,65279],[65280,65519],[65520,65535],[3840,4095],[1792,1871],[1920,1983],[3456,3583],[4096,4255],[4608,4991,4992,5023,11648,11743],[5024,5119],[5120,5759],[5760,5791],[5792,5887],[6016,6143],[6144,6319],[10240,10495],[40960,42127],[5888,5919,5920,5951,5952,5983,5984,6015],[66304,66351],[66352,66383],[66560,66639],[118784,119039,119040,119295,119296,119375],[119808,120831],[1044480,1048573],[65024,65039,917760,917999],[917504,917631],[6400,6479],[6480,6527],[6528,6623],[6656,6687],[11264,11359],[11568,11647],[19904,19967],[43008,43055],[65536,65663,65664,65791,65792,65855],[65856,65935],[66432,66463],[66464,66527],[66640,66687],[66688,66735],[67584,67647],[68096,68191],[119552,119647],[73728,74751,74752,74879],[119648,119679],[7040,7103],[7168,7247],[7248,7295],[43136,43231],[43264,43311],[43312,43359],[43520,43615],[65936,65999],[66e3,66047],[66208,66271,66176,66207,67872,67903],[127024,127135,126976,127023]];function getUnicodeRangeFor(value,lastPosition=-1){if(-1!==lastPosition){var range=UnicodeRanges[lastPosition];for(let i=0,ii=range.length;i<ii;i+=2)if(value>=range[i]&&value<=range[i+1])return lastPosition}for(let i=0,ii=UnicodeRanges.length;i<ii;i++){const range=UnicodeRanges[i];for(let j=0,jj=range.length;j<jj;j+=2)if(value>=range[j]&&value<=range[j+1])return i}return-1}const SpecialCharRegExp=new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$","u"),CategoryCache=new Map;function getCharUnicodeCategory(char){var cachedCategory=CategoryCache.get(char);return cachedCategory||(cachedCategory={isWhitespace:!!(cachedCategory=char.match(SpecialCharRegExp))?.[1],isZeroWidthDiacritic:!!cachedCategory?.[2],isInvisibleFormatMark:!!cachedCategory?.[3]},CategoryCache.set(char,cachedCategory),cachedCategory)}function clearUnicodeCaches(){CategoryCache.clear()}const SEAC_ANALYSIS_ENABLED=!0,FontFlags={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144},MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(name,glyphsUnicodeMap){if(void 0===glyphsUnicodeMap[name]){var unicode=getUnicodeForGlyph(name,glyphsUnicodeMap);if(-1!==unicode)for(const key in glyphsUnicodeMap)if(glyphsUnicodeMap[key]===unicode)return key;info("Unable to recover a standard glyph name for: "+name)}return name}function type1FontGlyphMapping(properties,builtInEncoding,glyphNames){var charCodeToGlyphId=Object.create(null);let glyphId,charCode,baseEncoding;var isSymbolicFont=!!(properties.flags&FontFlags.Symbolic);if(properties.isInternalFont)for(baseEncoding=builtInEncoding,charCode=0;charCode<baseEncoding.length;charCode++)glyphId=glyphNames.indexOf(baseEncoding[charCode]),charCodeToGlyphId[charCode]=0<=glyphId?glyphId:0;else if(properties.baseEncodingName)for(baseEncoding=getEncoding(properties.baseEncodingName),charCode=0;charCode<baseEncoding.length;charCode++)glyphId=glyphNames.indexOf(baseEncoding[charCode]),charCodeToGlyphId[charCode]=0<=glyphId?glyphId:0;else if(isSymbolicFont)for(charCode in builtInEncoding)charCodeToGlyphId[charCode]=builtInEncoding[charCode];else for(baseEncoding=StandardEncoding,charCode=0;charCode<baseEncoding.length;charCode++)glyphId=glyphNames.indexOf(baseEncoding[charCode]),charCodeToGlyphId[charCode]=0<=glyphId?glyphId:0;var differences=properties.differences;let glyphsUnicodeMap;if(differences)for(charCode in differences){var standardGlyphName,glyphName=differences[charCode];-1===(glyphId=glyphNames.indexOf(glyphName))&&(standardGlyphName=recoverGlyphName(glyphName,glyphsUnicodeMap=glyphsUnicodeMap||getGlyphsUnicode()))!==glyphName&&(glyphId=glyphNames.indexOf(standardGlyphName)),charCodeToGlyphId[charCode]=0<=glyphId?glyphId:0}return charCodeToGlyphId}function normalizeFontName(name){return name.replaceAll(/[,_]/g,"-").replaceAll(/\s/g,"")}const getStdFontMap=getLookupTableFactory(function(t){t["Times-Roman"]="Times-Roman",t.Helvetica="Helvetica",t.Courier="Courier",t.Symbol="Symbol",t["Times-Bold"]="Times-Bold",t["Helvetica-Bold"]="Helvetica-Bold",t["Courier-Bold"]="Courier-Bold",t.ZapfDingbats="ZapfDingbats",t["Times-Italic"]="Times-Italic",t["Helvetica-Oblique"]="Helvetica-Oblique",t["Courier-Oblique"]="Courier-Oblique",t["Times-BoldItalic"]="Times-BoldItalic",t["Helvetica-BoldOblique"]="Helvetica-BoldOblique",t["Courier-BoldOblique"]="Courier-BoldOblique",t.ArialNarrow="Helvetica",t["ArialNarrow-Bold"]="Helvetica-Bold",t["ArialNarrow-BoldItalic"]="Helvetica-BoldOblique",t["ArialNarrow-Italic"]="Helvetica-Oblique",t.ArialBlack="Helvetica",t["ArialBlack-Bold"]="Helvetica-Bold",t["ArialBlack-BoldItalic"]="Helvetica-BoldOblique",t["ArialBlack-Italic"]="Helvetica-Oblique",t["Arial-Black"]="Helvetica",t["Arial-Black-Bold"]="Helvetica-Bold",t["Arial-Black-BoldItalic"]="Helvetica-BoldOblique",t["Arial-Black-Italic"]="Helvetica-Oblique",t.Arial="Helvetica",t["Arial-Bold"]="Helvetica-Bold",t["Arial-BoldItalic"]="Helvetica-BoldOblique",t["Arial-Italic"]="Helvetica-Oblique",t.ArialMT="Helvetica",t["Arial-BoldItalicMT"]="Helvetica-BoldOblique",t["Arial-BoldMT"]="Helvetica-Bold",t["Arial-ItalicMT"]="Helvetica-Oblique",t["Arial-BoldItalicMT-BoldItalic"]="Helvetica-BoldOblique",t["Arial-BoldMT-Bold"]="Helvetica-Bold",t["Arial-ItalicMT-Italic"]="Helvetica-Oblique",t.ArialUnicodeMS="Helvetica",t["ArialUnicodeMS-Bold"]="Helvetica-Bold",t["ArialUnicodeMS-BoldItalic"]="Helvetica-BoldOblique",t["ArialUnicodeMS-Italic"]="Helvetica-Oblique",t["Courier-BoldItalic"]="Courier-BoldOblique",t["Courier-Italic"]="Courier-Oblique",t.CourierNew="Courier",t["CourierNew-Bold"]="Courier-Bold",t["CourierNew-BoldItalic"]="Courier-BoldOblique",t["CourierNew-Italic"]="Courier-Oblique",t["CourierNewPS-BoldItalicMT"]="Courier-BoldOblique",t["CourierNewPS-BoldMT"]="Courier-Bold",t["CourierNewPS-ItalicMT"]="Courier-Oblique",t.CourierNewPSMT="Courier",t["Helvetica-BoldItalic"]="Helvetica-BoldOblique",t["Helvetica-Italic"]="Helvetica-Oblique",t["Symbol-Bold"]="Symbol",t["Symbol-BoldItalic"]="Symbol",t["Symbol-Italic"]="Symbol",t.TimesNewRoman="Times-Roman",t["TimesNewRoman-Bold"]="Times-Bold",t["TimesNewRoman-BoldItalic"]="Times-BoldItalic",t["TimesNewRoman-Italic"]="Times-Italic",t.TimesNewRomanPS="Times-Roman",t["TimesNewRomanPS-Bold"]="Times-Bold",t["TimesNewRomanPS-BoldItalic"]="Times-BoldItalic",t["TimesNewRomanPS-BoldItalicMT"]="Times-BoldItalic",t["TimesNewRomanPS-BoldMT"]="Times-Bold",t["TimesNewRomanPS-Italic"]="Times-Italic",t["TimesNewRomanPS-ItalicMT"]="Times-Italic",t.TimesNewRomanPSMT="Times-Roman",t["TimesNewRomanPSMT-Bold"]="Times-Bold",t["TimesNewRomanPSMT-BoldItalic"]="Times-BoldItalic",t["TimesNewRomanPSMT-Italic"]="Times-Italic"}),getFontNameToFileMap=getLookupTableFactory(function(t){t.Courier="FoxitFixed.pfb",t["Courier-Bold"]="FoxitFixedBold.pfb",t["Courier-BoldOblique"]="FoxitFixedBoldItalic.pfb",t["Courier-Oblique"]="FoxitFixedItalic.pfb",t.Helvetica="LiberationSans-Regular.ttf",t["Helvetica-Bold"]="LiberationSans-Bold.ttf",t["Helvetica-BoldOblique"]="LiberationSans-BoldItalic.ttf",t["Helvetica-Oblique"]="LiberationSans-Italic.ttf",t["Times-Roman"]="FoxitSerif.pfb",t["Times-Bold"]="FoxitSerifBold.pfb",t["Times-BoldItalic"]="FoxitSerifBoldItalic.pfb",t["Times-Italic"]="FoxitSerifItalic.pfb",t.Symbol="FoxitSymbol.pfb",t.ZapfDingbats="FoxitDingbats.pfb",t["LiberationSans-Regular"]="LiberationSans-Regular.ttf",t["LiberationSans-Bold"]="LiberationSans-Bold.ttf",t["LiberationSans-Italic"]="LiberationSans-Italic.ttf",t["LiberationSans-BoldItalic"]="LiberationSans-BoldItalic.ttf"}),getNonStdFontMap=getLookupTableFactory(function(t){t.Calibri="Helvetica",t["Calibri-Bold"]="Helvetica-Bold",t["Calibri-BoldItalic"]="Helvetica-BoldOblique",t["Calibri-Italic"]="Helvetica-Oblique",t.CenturyGothic="Helvetica",t["CenturyGothic-Bold"]="Helvetica-Bold",t["CenturyGothic-BoldItalic"]="Helvetica-BoldOblique",t["CenturyGothic-Italic"]="Helvetica-Oblique",t.ComicSansMS="Comic Sans MS",t["ComicSansMS-Bold"]="Comic Sans MS-Bold",t["ComicSansMS-BoldItalic"]="Comic Sans MS-BoldItalic",t["ComicSansMS-Italic"]="Comic Sans MS-Italic",t.Impact="Helvetica",t["ItcSymbol-Bold"]="Helvetica-Bold",t["ItcSymbol-BoldItalic"]="Helvetica-BoldOblique",t["ItcSymbol-Book"]="Helvetica",t["ItcSymbol-BookItalic"]="Helvetica-Oblique",t["ItcSymbol-Medium"]="Helvetica",t["ItcSymbol-MediumItalic"]="Helvetica-Oblique",t.LucidaConsole="Courier",t["LucidaConsole-Bold"]="Courier-Bold",t["LucidaConsole-BoldItalic"]="Courier-BoldOblique",t["LucidaConsole-Italic"]="Courier-Oblique",t["LucidaSans-Demi"]="Helvetica-Bold",t["MS-Gothic"]="MS Gothic",t["MS-Gothic-Bold"]="MS Gothic-Bold",t["MS-Gothic-BoldItalic"]="MS Gothic-BoldItalic",t["MS-Gothic-Italic"]="MS Gothic-Italic",t["MS-Mincho"]="MS Mincho",t["MS-Mincho-Bold"]="MS Mincho-Bold",t["MS-Mincho-BoldItalic"]="MS Mincho-BoldItalic",t["MS-Mincho-Italic"]="MS Mincho-Italic",t["MS-PGothic"]="MS PGothic",t["MS-PGothic-Bold"]="MS PGothic-Bold",t["MS-PGothic-BoldItalic"]="MS PGothic-BoldItalic",t["MS-PGothic-Italic"]="MS PGothic-Italic",t["MS-PMincho"]="MS PMincho",t["MS-PMincho-Bold"]="MS PMincho-Bold",t["MS-PMincho-BoldItalic"]="MS PMincho-BoldItalic",t["MS-PMincho-Italic"]="MS PMincho-Italic",t.NuptialScript="Times-Italic",t.SegoeUISymbol="Helvetica"}),getSerifFonts=getLookupTableFactory(function(t){t["Adobe Jenson"]=!0,t["Adobe Text"]=!0,t.Albertus=!0,t.Aldus=!0,t.Alexandria=!0,t.Algerian=!0,t["American Typewriter"]=!0,t.Antiqua=!0,t.Apex=!0,t.Arno=!0,t.Aster=!0,t.Aurora=!0,t.Baskerville=!0,t.Bell=!0,t.Bembo=!0,t["Bembo Schoolbook"]=!0,t.Benguiat=!0,t["Berkeley Old Style"]=!0,t["Bernhard Modern"]=!0,t["Berthold City"]=!0,t.Bodoni=!0,t["Bauer Bodoni"]=!0,t["Book Antiqua"]=!0,t.Bookman=!0,t["Bordeaux Roman"]=!0,t["Californian FB"]=!0,t.Calisto=!0,t.Calvert=!0,t.Capitals=!0,t.Cambria=!0,t.Cartier=!0,t.Caslon=!0,t.Catull=!0,t.Centaur=!0,t["Century Old Style"]=!0,t["Century Schoolbook"]=!0,t.Chaparral=!0,t["Charis SIL"]=!0,t.Cheltenham=!0,t["Cholla Slab"]=!0,t.Clarendon=!0,t.Clearface=!0,t.Cochin=!0,t.Colonna=!0,t["Computer Modern"]=!0,t["Concrete Roman"]=!0,t.Constantia=!0,t["Cooper Black"]=!0,t.Corona=!0,t.Ecotype=!0,t.Egyptienne=!0,t.Elephant=!0,t.Excelsior=!0,t.Fairfield=!0,t["FF Scala"]=!0,t.Folkard=!0,t.Footlight=!0,t.FreeSerif=!0,t["Friz Quadrata"]=!0,t.Garamond=!0,t.Gentium=!0,t.Georgia=!0,t.Gloucester=!0,t["Goudy Old Style"]=!0,t["Goudy Schoolbook"]=!0,t["Goudy Pro Font"]=!0,t.Granjon=!0,t["Guardian Egyptian"]=!0,t.Heather=!0,t.Hercules=!0,t["High Tower Text"]=!0,t.Hiroshige=!0,t["Hoefler Text"]=!0,t["Humana Serif"]=!0,t.Imprint=!0,t["Ionic No. 5"]=!0,t.Janson=!0,t.Joanna=!0,t.Korinna=!0,t.Lexicon=!0,t.LiberationSerif=!0,t["Liberation Serif"]=!0,t["Linux Libertine"]=!0,t.Literaturnaya=!0,t.Lucida=!0,t["Lucida Bright"]=!0,t.Melior=!0,t.Memphis=!0,t.Miller=!0,t.Minion=!0,t.Modern=!0,t["Mona Lisa"]=!0,t["Mrs Eaves"]=!0,t["MS Serif"]=!0,t["Museo Slab"]=!0,t["New York"]=!0,t["Nimbus Roman"]=!0,t["NPS Rawlinson Roadway"]=!0,t.NuptialScript=!0,t.Palatino=!0,t.Perpetua=!0,t.Plantin=!0,t["Plantin Schoolbook"]=!0,t.Playbill=!0,t["Poor Richard"]=!0,t["Rawlinson Roadway"]=!0,t.Renault=!0,t.Requiem=!0,t.Rockwell=!0,t.Roman=!0,t["Rotis Serif"]=!0,t.Sabon=!0,t.Scala=!0,t.Seagull=!0,t.Sistina=!0,t.Souvenir=!0,t.STIX=!0,t["Stone Informal"]=!0,t["Stone Serif"]=!0,t.Sylfaen=!0,t.Times=!0,t.Trajan=!0,t["Trinité"]=!0,t["Trump Mediaeval"]=!0,t.Utopia=!0,t["Vale Type"]=!0,t["Bitstream Vera"]=!0,t["Vera Serif"]=!0,t.Versailles=!0,t.Wanted=!0,t.Weiss=!0,t["Wide Latin"]=!0,t.Windsor=!0,t.XITS=!0}),getSymbolsFonts=getLookupTableFactory(function(t){t.Dingbats=!0,t.Symbol=!0,t.ZapfDingbats=!0,t.Wingdings=!0,t["Wingdings-Bold"]=!0,t["Wingdings-Regular"]=!0}),getGlyphMapForStandardFonts=getLookupTableFactory(function(t){t[2]=10,t[3]=32,t[4]=33,t[5]=34,t[6]=35,t[7]=36,t[8]=37,t[9]=38,t[10]=39,t[11]=40,t[12]=41,t[13]=42,t[14]=43,t[15]=44,t[16]=45,t[17]=46,t[18]=47,t[19]=48,t[20]=49,t[21]=50,t[22]=51,t[23]=52,t[24]=53,t[25]=54,t[26]=55,t[27]=56,t[28]=57,t[29]=58,t[30]=894,t[31]=60,t[32]=61,t[33]=62,t[34]=63,t[35]=64,t[36]=65,t[37]=66,t[38]=67,t[39]=68,t[40]=69,t[41]=70,t[42]=71,t[43]=72,t[44]=73,t[45]=74,t[46]=75,t[47]=76,t[48]=77,t[49]=78,t[50]=79,t[51]=80,t[52]=81,t[53]=82,t[54]=83,t[55]=84,t[56]=85,t[57]=86,t[58]=87,t[59]=88,t[60]=89,t[61]=90,t[62]=91,t[63]=92,t[64]=93,t[65]=94,t[66]=95,t[67]=96,t[68]=97,t[69]=98,t[70]=99,t[71]=100,t[72]=101,t[73]=102,t[74]=103,t[75]=104,t[76]=105,t[77]=106,t[78]=107,t[79]=108,t[80]=109,t[81]=110,t[82]=111,t[83]=112,t[84]=113,t[85]=114,t[86]=115,t[87]=116,t[88]=117,t[89]=118,t[90]=119,t[91]=120,t[92]=121,t[93]=122,t[94]=123,t[95]=124,t[96]=125,t[97]=126,t[98]=196,t[99]=197,t[100]=199,t[101]=201,t[102]=209,t[103]=214,t[104]=220,t[105]=225,t[106]=224,t[107]=226,t[108]=228,t[109]=227,t[110]=229,t[111]=231,t[112]=233,t[113]=232,t[114]=234,t[115]=235,t[116]=237,t[117]=236,t[118]=238,t[119]=239,t[120]=241,t[121]=243,t[122]=242,t[123]=244,t[124]=246,t[125]=245,t[126]=250,t[127]=249,t[128]=251,t[129]=252,t[130]=8224,t[131]=176,t[132]=162,t[133]=163,t[134]=167,t[135]=8226,t[136]=182,t[137]=223,t[138]=174,t[139]=169,t[140]=8482,t[141]=180,t[142]=168,t[143]=8800,t[144]=198,t[145]=216,t[146]=8734,t[147]=177,t[148]=8804,t[149]=8805,t[150]=165,t[151]=181,t[152]=8706,t[153]=8721,t[154]=8719,t[156]=8747,t[157]=170,t[158]=186,t[159]=8486,t[160]=230,t[161]=248,t[162]=191,t[163]=161,t[164]=172,t[165]=8730,t[166]=402,t[167]=8776,t[168]=8710,t[169]=171,t[170]=187,t[171]=8230,t[179]=8220,t[180]=8221,t[181]=8216,t[182]=8217,t[200]=193,t[203]=205,t[207]=211,t[210]=218,t[223]=711,t[224]=321,t[225]=322,t[226]=352,t[227]=353,t[228]=381,t[229]=382,t[233]=221,t[234]=253,t[252]=263,t[253]=268,t[254]=269,t[258]=258,t[260]=260,t[261]=261,t[265]=280,t[266]=281,t[267]=282,t[268]=283,t[269]=313,t[275]=323,t[276]=324,t[278]=328,t[283]=344,t[284]=345,t[285]=346,t[286]=347,t[292]=367,t[295]=377,t[296]=378,t[298]=380,t[305]=963,t[306]=964,t[307]=966,t[308]=8215,t[309]=8252,t[310]=8319,t[311]=8359,t[312]=8592,t[313]=8593,t[337]=9552,t[493]=1039,t[494]=1040,t[672]=1488,t[673]=1489,t[674]=1490,t[675]=1491,t[676]=1492,t[677]=1493,t[678]=1494,t[679]=1495,t[680]=1496,t[681]=1497,t[682]=1498,t[683]=1499,t[684]=1500,t[685]=1501,t[686]=1502,t[687]=1503,t[688]=1504,t[689]=1505,t[690]=1506,t[691]=1507,t[692]=1508,t[693]=1509,t[694]=1510,t[695]=1511,t[696]=1512,t[697]=1513,t[698]=1514,t[705]=1524,t[706]=8362,t[710]=64288,t[711]=64298,t[759]=1617,t[761]=1776,t[763]=1778,t[775]=1652,t[777]=1764,t[778]=1780,t[779]=1781,t[780]=1782,t[782]=771,t[783]=64726,t[786]=8363,t[788]=8532,t[790]=768,t[791]=769,t[792]=768,t[795]=803,t[797]=64336,t[798]=64337,t[799]=64342,t[800]=64343,t[801]=64344,t[802]=64345,t[803]=64362,t[804]=64363,t[805]=64364,t[2424]=7821,t[2425]=7822,t[2426]=7823,t[2427]=7824,t[2428]=7825,t[2429]=7826,t[2430]=7827,t[2433]=7682,t[2678]=8045,t[2679]=8046,t[2830]=1552,t[2838]=686,t[2840]=751,t[2842]=753,t[2843]=754,t[2844]=755,t[2846]=757,t[2856]=767,t[2857]=848,t[2858]=849,t[2862]=853,t[2863]=854,t[2864]=855,t[2865]=861,t[2866]=862,t[2906]=7460,t[2908]=7462,t[2909]=7463,t[2910]=7464,t[2912]=7466,t[2913]=7467,t[2914]=7468,t[2916]=7470,t[2917]=7471,t[2918]=7472,t[2920]=7474,t[2921]=7475,t[2922]=7476,t[2924]=7478,t[2925]=7479,t[2926]=7480,t[2928]=7482,t[2929]=7483,t[2930]=7484,t[2932]=7486,t[2933]=7487,t[2934]=7488,t[2936]=7490,t[2937]=7491,t[2938]=7492,t[2940]=7494,t[2941]=7495,t[2942]=7496,t[2944]=7498,t[2946]=7500,t[2948]=7502,t[2950]=7504,t[2951]=7505,t[2952]=7506,t[2954]=7508,t[2955]=7509,t[2956]=7510,t[2958]=7512,t[2959]=7513,t[2960]=7514,t[2962]=7516,t[2963]=7517,t[2964]=7518,t[2966]=7520,t[2967]=7521,t[2968]=7522,t[2970]=7524,t[2971]=7525,t[2972]=7526,t[2974]=7528,t[2975]=7529,t[2976]=7530,t[2978]=1537,t[2979]=1538,t[2980]=1539,t[2982]=1549,t[2983]=1551,t[2984]=1552,t[2986]=1554,t[2987]=1555,t[2988]=1556,t[2990]=1623,t[2991]=1624,t[2995]=1775,t[2999]=1791,t[3002]=64290,t[3003]=64291,t[3004]=64292,t[3006]=64294,t[3007]=64295,t[3008]=64296,t[3011]=1900,t[3014]=8223,t[3015]=8244,t[3017]=7532,t[3018]=7533,t[3019]=7534,t[3075]=7590,t[3076]=7591,t[3079]=7594,t[3080]=7595,t[3083]=7598,t[3084]=7599,t[3087]=7602,t[3088]=7603,t[3091]=7606,t[3092]=7607,t[3095]=7610,t[3096]=7611,t[3099]=7614,t[3100]=7615,t[3103]=7618,t[3104]=7619,t[3107]=8337,t[3108]=8338,t[3116]=1884,t[3119]=1885,t[3120]=1885,t[3123]=1886,t[3124]=1886,t[3127]=1887,t[3128]=1887,t[3131]=1888,t[3132]=1888,t[3135]=1889,t[3136]=1889,t[3139]=1890,t[3140]=1890,t[3143]=1891,t[3144]=1891,t[3147]=1892,t[3148]=1892,t[3153]=580,t[3154]=581,t[3157]=584,t[3158]=585,t[3161]=588,t[3162]=589,t[3165]=891,t[3166]=892,t[3169]=1274,t[3170]=1275,t[3173]=1278,t[3174]=1279,t[3181]=7622,t[3182]=7623,t[3282]=11799,t[3316]=578,t[3379]=42785,t[3393]=1159,t[3416]=8377}),getSupplementalGlyphMapForArialBlack=getLookupTableFactory(function(t){t[227]=322,t[264]=261,t[291]=346}),getSupplementalGlyphMapForCalibri=getLookupTableFactory(function(t){t[1]=32,t[4]=65,t[5]=192,t[6]=193,t[9]=196,t[17]=66,t[18]=67,t[21]=268,t[24]=68,t[28]=69,t[29]=200,t[30]=201,t[32]=282,t[38]=70,t[39]=71,t[44]=72,t[47]=73,t[48]=204,t[49]=205,t[58]=74,t[60]=75,t[62]=76,t[68]=77,t[69]=78,t[75]=79,t[76]=210,t[80]=214,t[87]=80,t[89]=81,t[90]=82,t[92]=344,t[94]=83,t[97]=352,t[100]=84,t[104]=85,t[109]=220,t[115]=86,t[116]=87,t[121]=88,t[122]=89,t[124]=221,t[127]=90,t[129]=381,t[258]=97,t[259]=224,t[260]=225,t[263]=228,t[268]=261,t[271]=98,t[272]=99,t[273]=263,t[275]=269,t[282]=100,t[286]=101,t[287]=232,t[288]=233,t[290]=283,t[295]=281,t[296]=102,t[336]=103,t[346]=104,t[349]=105,t[350]=236,t[351]=237,t[361]=106,t[364]=107,t[367]=108,t[371]=322,t[373]=109,t[374]=110,t[381]=111,t[382]=242,t[383]=243,t[386]=246,t[393]=112,t[395]=113,t[396]=114,t[398]=345,t[400]=115,t[401]=347,t[403]=353,t[410]=116,t[437]=117,t[442]=252,t[448]=118,t[449]=119,t[454]=120,t[455]=121,t[457]=253,t[460]=122,t[462]=382,t[463]=380,t[853]=44,t[855]=58,t[856]=46,t[876]=47,t[878]=45,t[882]=45,t[894]=40,t[895]=41,t[896]=91,t[897]=93,t[923]=64,t[1004]=48,t[1005]=49,t[1006]=50,t[1007]=51,t[1008]=52,t[1009]=53,t[1010]=54,t[1011]=55,t[1012]=56,t[1013]=57,t[1081]=37,t[1085]=43,t[1086]=45});function getStandardFontName(name){name=normalizeFontName(name);return getStdFontMap()[name]}function isKnownFontName(name){name=normalizeFontName(name);return!!(getStdFontMap()[name]||getNonStdFontMap()[name]||getSerifFonts()[name]||getSymbolsFonts()[name])}class ToUnicodeMap{constructor(cmap=[]){this._map=cmap}get length(){return this._map.length}forEach(callback){for(const charCode in this._map)callback(charCode,this._map[charCode].charCodeAt(0))}has(i){return void 0!==this._map[i]}get(i){return this._map[i]}charCodeOf(value){var map=this._map;if(map.length<=65536)return map.indexOf(value);for(const charCode in map)if(map[charCode]===value)return 0|charCode;return-1}amend(map){for(const charCode in map)this._map[charCode]=map[charCode]}}class IdentityToUnicodeMap{constructor(firstChar,lastChar){this.firstChar=firstChar,this.lastChar=lastChar}get length(){return this.lastChar+1-this.firstChar}forEach(callback){for(let i=this.firstChar,ii=this.lastChar;i<=ii;i++)callback(i,i)}has(i){return this.firstChar<=i&&i<=this.lastChar}get(i){if(this.firstChar<=i&&i<=this.lastChar)return String.fromCharCode(i)}charCodeOf(v){return Number.isInteger(v)&&v>=this.firstChar&&v<=this.lastChar?v:-1}amend(map){unreachable("Should not call amend()")}}class CFFFont{constructor(file,properties){this.properties=properties;var parser=new CFFParser(file,properties,SEAC_ANALYSIS_ENABLED),parser=(this.cff=parser.parse(),this.cff.duplicateFirstGlyph(),new CFFCompiler(this.cff));this.seacs=this.cff.seacs;try{this.data=parser.compile()}catch{warn("Failed to compile font "+properties.loadedName),this.data=file}this._createBuiltInEncoding()}get numGlyphs(){return this.cff.charStrings.count}getCharset(){return this.cff.charset.charset}getGlyphMapping(){var cff=this.cff,properties=this.properties,{cidToGidMap,cMap}=properties,charsets=cff.charset.charset;let charCodeToGlyphId,glyphId;if(properties.composite){let invCidToGidMap;if(0<cidToGidMap?.length){invCidToGidMap=Object.create(null);for(let i=0,ii=cidToGidMap.length;i<ii;i++){var gid=cidToGidMap[i];void 0!==gid&&(invCidToGidMap[gid]=i)}}charCodeToGlyphId=Object.create(null);let charCode;if(cff.isCIDFont)for(glyphId=0;glyphId<charsets.length;glyphId++){var cid=charsets[glyphId];charCode=cMap.charCodeOf(cid),void 0!==invCidToGidMap?.[charCode]&&(charCode=invCidToGidMap[charCode]),charCodeToGlyphId[charCode]=glyphId}else for(glyphId=0;glyphId<cff.charStrings.count;glyphId++)charCode=cMap.charCodeOf(glyphId),charCodeToGlyphId[charCode]=glyphId}else{let encoding=cff.encoding?cff.encoding.encoding:null;properties.isInternalFont&&(encoding=properties.defaultEncoding),charCodeToGlyphId=type1FontGlyphMapping(properties,encoding,charsets)}return charCodeToGlyphId}hasGlyphId(id){return this.cff.hasGlyphId(id)}_createBuiltInEncoding(){var{charset,encoding}=this.cff;if(charset&&encoding){var charsets=charset.charset,encodings=encoding.encoding,map=[];for(const charCode in encodings){var glyphId=encodings[charCode];0<=glyphId&&(glyphId=charsets[glyphId])&&(map[charCode]=glyphId)}0<map.length&&(this.properties.builtInEncoding=map)}}}function getUint32(data,offset){return(data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3])>>>0}function getUint16(data,offset){return data[offset]<<8|data[offset+1]}function getInt16(data,offset){return(data[offset]<<24|data[offset+1]<<16)>>16}function getInt8(data,offset){return data[offset]<<24>>24}function getFloat214(data,offset){return getInt16(data,offset)/16384}function getSubroutineBias(subrs){subrs=subrs.length;let bias=32768;return subrs<1240?bias=107:subrs<33900&&(bias=1131),bias}function parseCmap(data,start,end){var offset=1===getUint16(data,start+2)?getUint32(data,start+8):getUint32(data,start+16),format=getUint16(data,start+offset);let ranges,p,i;if(4===format){getUint16(data,start+offset+2);var segCount=getUint16(data,start+offset+6)>>1;for(p=start+offset+14,ranges=[],i=0;i<segCount;i++,p+=2)ranges[i]={end:getUint16(data,p)};for(p+=2,i=0;i<segCount;i++,p+=2)ranges[i].start=getUint16(data,p);for(i=0;i<segCount;i++,p+=2)ranges[i].idDelta=getUint16(data,p);for(i=0;i<segCount;i++,p+=2){let idOffset=getUint16(data,p);if(0!==idOffset){ranges[i].ids=[];for(let j=0,jj=ranges[i].end-ranges[i].start+1;j<jj;j++)ranges[i].ids[j]=getUint16(data,p+idOffset),idOffset+=2}}}else{if(12!==format)throw new FormatError("unsupported cmap: "+format);var groups=getUint32(data,start+offset+12);for(p=start+offset+16,ranges=[],i=0;i<groups;i++)start=getUint32(data,p),ranges.push({start:start,end:getUint32(data,p+4),idDelta:getUint32(data,p+8)-start}),p+=12}return ranges}function parseCff(data,start,end,seacAnalysisEnabled){data=new CFFParser(new Stream(data,start,end-start),{},seacAnalysisEnabled).parse();return{glyphs:data.charStrings.objects,subrs:data.topDict.privateDict?.subrsIndex?.objects,gsubrs:data.globalSubrIndex?.objects,isCFFCIDFont:data.isCIDFont,fdSelect:data.fdSelect,fdArray:data.fdArray}}function parseGlyfTable(glyf,loca,isGlyphLocationsLong){let itemSize,itemDecode;var glyphs=[];let startOffset=(itemDecode=isGlyphLocationsLong?(itemSize=4,getUint32):(itemSize=2,(data,offset)=>2*getUint16(data,offset)))(loca,0);for(let j=itemSize;j<loca.length;j+=itemSize){var endOffset=itemDecode(loca,j);glyphs.push(glyf.subarray(startOffset,endOffset)),startOffset=endOffset}return glyphs}function lookupCmap(ranges,unicode){var code=unicode.codePointAt(0);let gid=0,l=0,r=ranges.length-1;for(;l<r;){var c=l+r+1>>1;code<ranges[c].start?r=c-1:l=c}return{charCode:code,glyphId:gid=ranges[l].start<=code&&code<=ranges[l].end?ranges[l].idDelta+(ranges[l].ids?ranges[l].ids[code-ranges[l].start]:code)&65535:gid}}function compileGlyf(code,cmds,font){function quadraticCurveTo(xa,ya,x,y){cmds.add(FontRenderOps.QUADRATIC_CURVE_TO,[xa,ya,x,y])}let i=0;var numberOfContours=getInt16(code,i);let flags,x=0,y=0;if(i+=10,numberOfContours<0)do{flags=getUint16(code,i);var glyphIndex=getUint16(code,i+2);i+=4;let arg1,arg2,scaleX=(1&flags?(arg2=(2&flags?(arg1=getInt16(code,i),getInt16):(arg1=getUint16(code,i),getUint16))(code,i+2),i+=4):arg2=2&flags?(arg1=getInt8(code,i++),getInt8(code,i++)):(arg1=code[i++],code[i++]),y=2&flags?(x=arg1,arg2):x=0,1),scaleY=1,scale01=0,scale10=0;8&flags?(scaleX=scaleY=getFloat214(code,i),i+=2):64&flags?(scaleX=getFloat214(code,i),scaleY=getFloat214(code,i+2),i+=4):128&flags&&(scaleX=getFloat214(code,i),scale01=getFloat214(code,i+2),scale10=getFloat214(code,i+4),scaleY=getFloat214(code,i+6),i+=8);glyphIndex=font.glyphs[glyphIndex];glyphIndex&&(cmds.add(FontRenderOps.SAVE),cmds.add(FontRenderOps.TRANSFORM,[scaleX,scale01,scale10,scaleY,x,y]),flags,compileGlyf(glyphIndex,cmds,font),cmds.add(FontRenderOps.RESTORE))}while(32&flags);else{var endPtsOfContours=[];let j,jj;for(j=0;j<numberOfContours;j++)endPtsOfContours.push(getUint16(code,i)),i+=2;for(var instructionLength=getUint16(code,i),numberOfPoints=(i+=2+instructionLength,endPtsOfContours.at(-1)+1),points=[];points.length<numberOfPoints;){let repeat=1;for(8&(flags=code[i++])&&(repeat+=code[i++]);0<repeat--;)points.push({flags:flags})}for(j=0;j<numberOfPoints;j++){switch(18&points[j].flags){case 0:x+=getInt16(code,i),i+=2;break;case 2:x-=code[i++];break;case 18:x+=code[i++]}points[j].x=x}for(j=0;j<numberOfPoints;j++){switch(36&points[j].flags){case 0:y+=getInt16(code,i),i+=2;break;case 4:y-=code[i++];break;case 36:y+=code[i++]}points[j].y=y}let startPoint=0;for(i=0;i<numberOfContours;i++){var p,endPoint=endPtsOfContours[i],contour=points.slice(startPoint,endPoint+1);for(1&contour[0].flags?contour.push(contour[0]):1&contour.at(-1).flags?contour.unshift(contour.at(-1)):(p={flags:1,x:(contour[0].x+contour.at(-1).x)/2,y:(contour[0].y+contour.at(-1).y)/2},contour.unshift(p),contour.push(p)),!function(x,y){cmds.add(FontRenderOps.MOVE_TO,[x,y])}(contour[0].x,contour[0].y),j=1,jj=contour.length;j<jj;j++)1&contour[j].flags?function(x,y){cmds.add(FontRenderOps.LINE_TO,[x,y])}(contour[j].x,contour[j].y):1&contour[j+1].flags?(quadraticCurveTo(contour[j].x,contour[j].y,contour[j+1].x,contour[j+1].y),j++):quadraticCurveTo(contour[j].x,contour[j].y,(contour[j].x+contour[j+1].x)/2,(contour[j].y+contour[j+1].y)/2);startPoint=endPoint+1}}}function compileCharString(charStringCode,cmds,font,glyphId){function moveTo(x,y){cmds.add(FontRenderOps.MOVE_TO,[x,y])}function lineTo(x,y){cmds.add(FontRenderOps.LINE_TO,[x,y])}function bezierCurveTo(x1,y1,x2,y2,x,y){cmds.add(FontRenderOps.BEZIER_CURVE_TO,[x1,y1,x2,y2,x,y])}const stack=[];let x=0,y=0,stems=0;!function parse(code){let i=0;for(;i<code.length;){let stackClean=!1,v=code[i++],xa,xb,ya,yb,y1,y2,y3,n,subrCode;switch(v){case 1:case 3:stems+=stack.length>>1,stackClean=!0;break;case 4:y+=stack.pop(),moveTo(x,y),stackClean=!0;break;case 5:for(;0<stack.length;)x+=stack.shift(),y+=stack.shift(),lineTo(x,y);break;case 6:for(;0<stack.length&&(lineTo(x+=stack.shift(),y),0!==stack.length);)y+=stack.shift(),lineTo(x,y);break;case 7:for(;0<stack.length&&(y+=stack.shift(),lineTo(x,y),0!==stack.length);)lineTo(x+=stack.shift(),y);break;case 8:for(;0<stack.length;)xa=x+stack.shift(),ya=y+stack.shift(),xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb+stack.shift(),y=yb+stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y);break;case 10:if(n=stack.pop(),subrCode=null,font.isCFFCIDFont){var fdIndex=font.fdSelect.getFDIndex(glyphId);if(0<=fdIndex&&fdIndex<font.fdArray.length){fdIndex=font.fdArray[fdIndex];let subrs;(subrs=fdIndex.privateDict?.subrsIndex?fdIndex.privateDict.subrsIndex.objects:subrs)&&(n+=getSubroutineBias(subrs),subrCode=subrs[n])}else warn("Invalid fd index for glyph index.")}else subrCode=font.subrs[n+font.subrsBias];subrCode&&parse(subrCode);break;case 11:return;case 12:switch(v=code[i++]){case 34:xa=x+stack.shift(),xb=xa+stack.shift(),y1=y+stack.shift(),x=xb+stack.shift(),bezierCurveTo(xa,y,xb,y1,x,y1),xa=x+stack.shift(),xb=xa+stack.shift(),x=xb+stack.shift(),bezierCurveTo(xa,y1,xb,y,x,y);break;case 35:xa=x+stack.shift(),ya=y+stack.shift(),xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb+stack.shift(),y=yb+stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y),xa=x+stack.shift(),ya=y+stack.shift(),xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb+stack.shift(),y=yb+stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y),stack.pop();break;case 36:xa=x+stack.shift(),y1=y+stack.shift(),xb=xa+stack.shift(),y2=y1+stack.shift(),x=xb+stack.shift(),bezierCurveTo(xa,y1,xb,y2,x,y2),xa=x+stack.shift(),xb=xa+stack.shift(),y3=y2+stack.shift(),x=xb+stack.shift(),bezierCurveTo(xa,y2,xb,y3,x,y);break;case 37:var x0=x,y0=y;xa=x+stack.shift(),ya=y+stack.shift(),xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb+stack.shift(),y=yb+stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y),xa=x+stack.shift(),ya=y+stack.shift(),xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb,y=yb,Math.abs(x-x0)>Math.abs(y-y0)?x+=stack.shift():y+=stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y);break;default:throw new FormatError("unknown operator: 12 "+v)}break;case 14:var bchar,cmap;return void(4<=stack.length&&(fdIndex=stack.pop(),bchar=stack.pop(),y=stack.pop(),x=stack.pop(),cmds.add(FontRenderOps.SAVE),cmds.add(FontRenderOps.TRANSLATE,[x,y]),cmap=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[StandardEncoding[fdIndex]])),compileCharString(font.glyphs[cmap.glyphId],cmds,font,cmap.glyphId),cmds.add(FontRenderOps.RESTORE),cmap=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])),compileCharString(font.glyphs[cmap.glyphId],cmds,font,cmap.glyphId)));case 18:stems+=stack.length>>1,stackClean=!0;break;case 19:case 20:stems+=stack.length>>1,i+=stems+7>>3,stackClean=!0;break;case 21:y+=stack.pop(),moveTo(x+=stack.pop(),y),stackClean=!0;break;case 22:moveTo(x+=stack.pop(),y),stackClean=!0;break;case 23:stems+=stack.length>>1,stackClean=!0;break;case 24:for(;2<stack.length;)xa=x+stack.shift(),ya=y+stack.shift(),xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb+stack.shift(),y=yb+stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y);x+=stack.shift(),y+=stack.shift(),lineTo(x,y);break;case 25:for(;6<stack.length;)x+=stack.shift(),y+=stack.shift(),lineTo(x,y);xa=x+stack.shift(),ya=y+stack.shift(),xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb+stack.shift(),y=yb+stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y);break;case 26:for(stack.length%2&&(x+=stack.shift());0<stack.length;)xa=x,ya=y+stack.shift(),xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb,y=yb+stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y);break;case 27:for(stack.length%2&&(y+=stack.shift());0<stack.length;)xa=x+stack.shift(),ya=y,xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb+stack.shift(),y=yb,bezierCurveTo(xa,ya,xb,yb,x,y);break;case 28:stack.push((code[i]<<24|code[i+1]<<16)>>16),i+=2;break;case 29:n=stack.pop()+font.gsubrsBias,(subrCode=font.gsubrs[n])&&parse(subrCode);break;case 30:for(;0<stack.length&&(xa=x,ya=y+stack.shift(),xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb+stack.shift(),y=yb+(1===stack.length?stack.shift():0),bezierCurveTo(xa,ya,xb,yb,x,y),0!==stack.length);)xa=x+stack.shift(),ya=y,xb=xa+stack.shift(),yb=ya+stack.shift(),y=yb+stack.shift(),x=xb+(1===stack.length?stack.shift():0),bezierCurveTo(xa,ya,xb,yb,x,y);break;case 31:for(;0<stack.length&&(xa=x+stack.shift(),ya=y,xb=xa+stack.shift(),yb=ya+stack.shift(),y=yb+stack.shift(),x=xb+(1===stack.length?stack.shift():0),bezierCurveTo(xa,ya,xb,yb,x,y),0!==stack.length);)xa=x,ya=y+stack.shift(),xb=xa+stack.shift(),yb=ya+stack.shift(),x=xb+stack.shift(),y=yb+(1===stack.length?stack.shift():0),bezierCurveTo(xa,ya,xb,yb,x,y);break;default:if(v<32)throw new FormatError("unknown operator: "+v);v<247?stack.push(v-139):v<251?stack.push(256*(v-247)+code[i++]+108):v<255?stack.push(256*-(v-251)-code[i++]-108):(stack.push((code[i]<<24|code[i+1]<<16|code[i+2]<<8|code[i+3])/65536),i+=4)}stackClean&&(stack.length=0)}}(charStringCode)}const NOOP=[];class Commands{cmds=[];add(cmd,args){args?isNumberArray(args,null)?this.cmds.push(cmd,...args):(warn(`Commands.add - "${cmd}" has at least one non-number arg: "${args}".`),args=args.map(arg=>"number"==typeof arg?arg:0),this.cmds.push(cmd,...args)):this.cmds.push(cmd)}}class CompiledFont{constructor(fontMatrix){this.constructor===CompiledFont&&unreachable("Cannot initialize CompiledFont."),this.fontMatrix=fontMatrix,this.compiledGlyphs=Object.create(null),this.compiledCharCodeToGlyphId=Object.create(null)}getPathJs(unicode){var{charCode:unicode,glyphId}=lookupCmap(this.cmap,unicode);let fn=this.compiledGlyphs[glyphId],compileEx;if(!fn){try{fn=this.compileGlyph(this.glyphs[glyphId],glyphId)}catch(ex){fn=NOOP,compileEx=ex}this.compiledGlyphs[glyphId]=fn}if(this.compiledCharCodeToGlyphId[unicode]??=glyphId,compileEx)throw compileEx;return fn}compileGlyph(code,glyphId){if(!code||0===code.length||14===code[0])return NOOP;let fontMatrix=this.fontMatrix;this.isCFFCIDFont&&(0<=(fdIndex=this.fdSelect.getFDIndex(glyphId))&&fdIndex<this.fdArray.length?(fdIndex=this.fdArray[fdIndex],fontMatrix=fdIndex.getByName("FontMatrix")||FONT_IDENTITY_MATRIX):warn("Invalid fd index for glyph index."));var fdIndex=new Commands;return fdIndex.add(FontRenderOps.SAVE),fdIndex.add(FontRenderOps.TRANSFORM,fontMatrix.slice()),fdIndex.add(FontRenderOps.SCALE),this.compileGlyphImpl(code,fdIndex,glyphId),fdIndex.add(FontRenderOps.RESTORE),fdIndex.cmds}compileGlyphImpl(){unreachable("Children classes should implement this.")}hasBuiltPath(unicode){var{charCode:unicode,glyphId}=lookupCmap(this.cmap,unicode);return void 0!==this.compiledGlyphs[glyphId]&&void 0!==this.compiledCharCodeToGlyphId[unicode]}}class TrueTypeCompiled extends CompiledFont{constructor(glyphs,cmap,fontMatrix){super(fontMatrix||[488e-6,0,0,488e-6,0,0]),this.glyphs=glyphs,this.cmap=cmap}compileGlyphImpl(code,cmds){compileGlyf(code,cmds,this)}}class Type2Compiled extends CompiledFont{constructor(cffInfo,cmap,fontMatrix,glyphNameMap){super(fontMatrix||[.001,0,0,.001,0,0]),this.glyphs=cffInfo.glyphs,this.gsubrs=cffInfo.gsubrs||[],this.subrs=cffInfo.subrs||[],this.cmap=cmap,this.glyphNameMap=glyphNameMap||getGlyphsUnicode(),this.gsubrsBias=getSubroutineBias(this.gsubrs),this.subrsBias=getSubroutineBias(this.subrs),this.isCFFCIDFont=cffInfo.isCFFCIDFont,this.fdSelect=cffInfo.fdSelect,this.fdArray=cffInfo.fdArray}compileGlyphImpl(code,cmds,glyphId){compileCharString(code,cmds,this,glyphId)}}class FontRendererFactory{static create(font,seacAnalysisEnabled){var data=new Uint8Array(font.data);let cmap,glyf,loca,cff,indexToLocFormat,unitsPerEm;var fontMatrix,numTables=getUint16(data,4);for(let i=0,p=12;i<numTables;i++,p+=16){var tag=bytesToString(data.subarray(p,p+4)),offset=getUint32(data,p+8),length=getUint32(data,p+12);switch(tag){case"cmap":cmap=parseCmap(data,offset,offset+length);break;case"glyf":glyf=data.subarray(offset,offset+length);break;case"loca":loca=data.subarray(offset,offset+length);break;case"head":unitsPerEm=getUint16(data,offset+18),indexToLocFormat=getUint16(data,offset+50);break;case"CFF ":cff=parseCff(data,offset,offset+length,seacAnalysisEnabled)}}return glyf?(fontMatrix=unitsPerEm?[1/unitsPerEm,0,0,1/unitsPerEm,0,0]:font.fontMatrix,new TrueTypeCompiled(parseGlyfTable(glyf,loca,indexToLocFormat),cmap,fontMatrix)):new Type2Compiled(cff,cmap,font.fontMatrix,font.glyphNameMap)}}const getMetrics=getLookupTableFactory(function(t){t.Courier=600,t["Courier-Bold"]=600,t["Courier-BoldOblique"]=600,t["Courier-Oblique"]=600,t.Helvetica=getLookupTableFactory(function(t){t.space=278,t.exclam=278,t.quotedbl=355,t.numbersign=556,t.dollar=556,t.percent=889,t.ampersand=667,t.quoteright=222,t.parenleft=333,t.parenright=333,t.asterisk=389,t.plus=584,t.comma=278,t.hyphen=333,t.period=278,t.slash=278,t.zero=556,t.one=556,t.two=556,t.three=556,t.four=556,t.five=556,t.six=556,t.seven=556,t.eight=556,t.nine=556,t.colon=278,t.semicolon=278,t.less=584,t.equal=584,t.greater=584,t.question=556,t.at=1015,t.A=667,t.B=667,t.C=722,t.D=722,t.E=667,t.F=611,t.G=778,t.H=722,t.I=278,t.J=500,t.K=667,t.L=556,t.M=833,t.N=722,t.O=778,t.P=667,t.Q=778,t.R=722,t.S=667,t.T=611,t.U=722,t.V=667,t.W=944,t.X=667,t.Y=667,t.Z=611,t.bracketleft=278,t.backslash=278,t.bracketright=278,t.asciicircum=469,t.underscore=556,t.quoteleft=222,t.a=556,t.b=556,t.c=500,t.d=556,t.e=556,t.f=278,t.g=556,t.h=556,t.i=222,t.j=222,t.k=500,t.l=222,t.m=833,t.n=556,t.o=556,t.p=556,t.q=556,t.r=333,t.s=500,t.t=278,t.u=556,t.v=500,t.w=722,t.x=500,t.y=500,t.z=500,t.braceleft=334,t.bar=260,t.braceright=334,t.asciitilde=584,t.exclamdown=333,t.cent=556,t.sterling=556,t.fraction=167,t.yen=556,t.florin=556,t.section=556,t.currency=556,t.quotesingle=191,t.quotedblleft=333,t.guillemotleft=556,t.guilsinglleft=333,t.guilsinglright=333,t.fi=500,t.fl=500,t.endash=556,t.dagger=556,t.daggerdbl=556,t.periodcentered=278,t.paragraph=537,t.bullet=350,t.quotesinglbase=222,t.quotedblbase=333,t.quotedblright=333,t.guillemotright=556,t.ellipsis=1e3,t.perthousand=1e3,t.questiondown=611,t.grave=333,t.acute=333,t.circumflex=333,t.tilde=333,t.macron=333,t.breve=333,t.dotaccent=333,t.dieresis=333,t.ring=333,t.cedilla=333,t.hungarumlaut=333,t.ogonek=333,t.caron=333,t.emdash=1e3,t.AE=1e3,t.ordfeminine=370,t.Lslash=556,t.Oslash=778,t.OE=1e3,t.ordmasculine=365,t.ae=889,t.dotlessi=278,t.lslash=222,t.oslash=611,t.oe=944,t.germandbls=611,t.Idieresis=278,t.eacute=556,t.abreve=556,t.uhungarumlaut=556,t.ecaron=556,t.Ydieresis=667,t.divide=584,t.Yacute=667,t.Acircumflex=667,t.aacute=556,t.Ucircumflex=722,t.yacute=500,t.scommaaccent=500,t.ecircumflex=556,t.Uring=722,t.Udieresis=722,t.aogonek=556,t.Uacute=722,t.uogonek=556,t.Edieresis=667,t.Dcroat=722,t.commaaccent=250,t.copyright=737,t.Emacron=667,t.ccaron=500,t.aring=556,t.Ncommaaccent=722,t.lacute=222,t.agrave=556,t.Tcommaaccent=611,t.Cacute=722,t.atilde=556,t.Edotaccent=667,t.scaron=500,t.scedilla=500,t.iacute=278,t.lozenge=471,t.Rcaron=722,t.Gcommaaccent=778,t.ucircumflex=556,t.acircumflex=556,t.Amacron=667,t.rcaron=333,t.ccedilla=500,t.Zdotaccent=611,t.Thorn=667,t.Omacron=778,t.Racute=722,t.Sacute=667,t.dcaron=643,t.Umacron=722,t.uring=556,t.threesuperior=333,t.Ograve=778,t.Agrave=667,t.Abreve=667,t.multiply=584,t.uacute=556,t.Tcaron=611,t.partialdiff=476,t.ydieresis=500,t.Nacute=722,t.icircumflex=278,t.Ecircumflex=667,t.adieresis=556,t.edieresis=556,t.cacute=500,t.nacute=556,t.umacron=556,t.Ncaron=722,t.Iacute=278,t.plusminus=584,t.brokenbar=260,t.registered=737,t.Gbreve=778,t.Idotaccent=278,t.summation=600,t.Egrave=667,t.racute=333,t.omacron=556,t.Zacute=611,t.Zcaron=611,t.greaterequal=549,t.Eth=722,t.Ccedilla=722,t.lcommaaccent=222,t.tcaron=317,t.eogonek=556,t.Uogonek=722,t.Aacute=667,t.Adieresis=667,t.egrave=556,t.zacute=500,t.iogonek=222,t.Oacute=778,t.oacute=556,t.amacron=556,t.sacute=500,t.idieresis=278,t.Ocircumflex=778,t.Ugrave=722,t.Delta=612,t.thorn=556,t.twosuperior=333,t.Odieresis=778,t.mu=556,t.igrave=278,t.ohungarumlaut=556,t.Eogonek=667,t.dcroat=556,t.threequarters=834,t.Scedilla=667,t.lcaron=299,t.Kcommaaccent=667,t.Lacute=556,t.trademark=1e3,t.edotaccent=556,t.Igrave=278,t.Imacron=278,t.Lcaron=556,t.onehalf=834,t.lessequal=549,t.ocircumflex=556,t.ntilde=556,t.Uhungarumlaut=722,t.Eacute=667,t.emacron=556,t.gbreve=556,t.onequarter=834,t.Scaron=667,t.Scommaaccent=667,t.Ohungarumlaut=778,t.degree=400,t.ograve=556,t.Ccaron=722,t.ugrave=556,t.radical=453,t.Dcaron=722,t.rcommaaccent=333,t.Ntilde=722,t.otilde=556,t.Rcommaaccent=722,t.Lcommaaccent=556,t.Atilde=667,t.Aogonek=667,t.Aring=667,t.Otilde=778,t.zdotaccent=500,t.Ecaron=667,t.Iogonek=278,t.kcommaaccent=500,t.minus=584,t.Icircumflex=278,t.ncaron=556,t.tcommaaccent=278,t.logicalnot=584,t.odieresis=556,t.udieresis=556,t.notequal=549,t.gcommaaccent=556,t.eth=556,t.zcaron=500,t.ncommaaccent=556,t.onesuperior=333,t.imacron=278,t.Euro=556}),t["Helvetica-Bold"]=getLookupTableFactory(function(t){t.space=278,t.exclam=333,t.quotedbl=474,t.numbersign=556,t.dollar=556,t.percent=889,t.ampersand=722,t.quoteright=278,t.parenleft=333,t.parenright=333,t.asterisk=389,t.plus=584,t.comma=278,t.hyphen=333,t.period=278,t.slash=278,t.zero=556,t.one=556,t.two=556,t.three=556,t.four=556,t.five=556,t.six=556,t.seven=556,t.eight=556,t.nine=556,t.colon=333,t.semicolon=333,t.less=584,t.equal=584,t.greater=584,t.question=611,t.at=975,t.A=722,t.B=722,t.C=722,t.D=722,t.E=667,t.F=611,t.G=778,t.H=722,t.I=278,t.J=556,t.K=722,t.L=611,t.M=833,t.N=722,t.O=778,t.P=667,t.Q=778,t.R=722,t.S=667,t.T=611,t.U=722,t.V=667,t.W=944,t.X=667,t.Y=667,t.Z=611,t.bracketleft=333,t.backslash=278,t.bracketright=333,t.asciicircum=584,t.underscore=556,t.quoteleft=278,t.a=556,t.b=611,t.c=556,t.d=611,t.e=556,t.f=333,t.g=611,t.h=611,t.i=278,t.j=278,t.k=556,t.l=278,t.m=889,t.n=611,t.o=611,t.p=611,t.q=611,t.r=389,t.s=556,t.t=333,t.u=611,t.v=556,t.w=778,t.x=556,t.y=556,t.z=500,t.braceleft=389,t.bar=280,t.braceright=389,t.asciitilde=584,t.exclamdown=333,t.cent=556,t.sterling=556,t.fraction=167,t.yen=556,t.florin=556,t.section=556,t.currency=556,t.quotesingle=238,t.quotedblleft=500,t.guillemotleft=556,t.guilsinglleft=333,t.guilsinglright=333,t.fi=611,t.fl=611,t.endash=556,t.dagger=556,t.daggerdbl=556,t.periodcentered=278,t.paragraph=556,t.bullet=350,t.quotesinglbase=278,t.quotedblbase=500,t.quotedblright=500,t.guillemotright=556,t.ellipsis=1e3,t.perthousand=1e3,t.questiondown=611,t.grave=333,t.acute=333,t.circumflex=333,t.tilde=333,t.macron=333,t.breve=333,t.dotaccent=333,t.dieresis=333,t.ring=333,t.cedilla=333,t.hungarumlaut=333,t.ogonek=333,t.caron=333,t.emdash=1e3,t.AE=1e3,t.ordfeminine=370,t.Lslash=611,t.Oslash=778,t.OE=1e3,t.ordmasculine=365,t.ae=889,t.dotlessi=278,t.lslash=278,t.oslash=611,t.oe=944,t.germandbls=611,t.Idieresis=278,t.eacute=556,t.abreve=556,t.uhungarumlaut=611,t.ecaron=556,t.Ydieresis=667,t.divide=584,t.Yacute=667,t.Acircumflex=722,t.aacute=556,t.Ucircumflex=722,t.yacute=556,t.scommaaccent=556,t.ecircumflex=556,t.Uring=722,t.Udieresis=722,t.aogonek=556,t.Uacute=722,t.uogonek=611,t.Edieresis=667,t.Dcroat=722,t.commaaccent=250,t.copyright=737,t.Emacron=667,t.ccaron=556,t.aring=556,t.Ncommaaccent=722,t.lacute=278,t.agrave=556,t.Tcommaaccent=611,t.Cacute=722,t.atilde=556,t.Edotaccent=667,t.scaron=556,t.scedilla=556,t.iacute=278,t.lozenge=494,t.Rcaron=722,t.Gcommaaccent=778,t.ucircumflex=611,t.acircumflex=556,t.Amacron=722,t.rcaron=389,t.ccedilla=556,t.Zdotaccent=611,t.Thorn=667,t.Omacron=778,t.Racute=722,t.Sacute=667,t.dcaron=743,t.Umacron=722,t.uring=611,t.threesuperior=333,t.Ograve=778,t.Agrave=722,t.Abreve=722,t.multiply=584,t.uacute=611,t.Tcaron=611,t.partialdiff=494,t.ydieresis=556,t.Nacute=722,t.icircumflex=278,t.Ecircumflex=667,t.adieresis=556,t.edieresis=556,t.cacute=556,t.nacute=611,t.umacron=611,t.Ncaron=722,t.Iacute=278,t.plusminus=584,t.brokenbar=280,t.registered=737,t.Gbreve=778,t.Idotaccent=278,t.summation=600,t.Egrave=667,t.racute=389,t.omacron=611,t.Zacute=611,t.Zcaron=611,t.greaterequal=549,t.Eth=722,t.Ccedilla=722,t.lcommaaccent=278,t.tcaron=389,t.eogonek=556,t.Uogonek=722,t.Aacute=722,t.Adieresis=722,t.egrave=556,t.zacute=500,t.iogonek=278,t.Oacute=778,t.oacute=611,t.amacron=556,t.sacute=556,t.idieresis=278,t.Ocircumflex=778,t.Ugrave=722,t.Delta=612,t.thorn=611,t.twosuperior=333,t.Odieresis=778,t.mu=611,t.igrave=278,t.ohungarumlaut=611,t.Eogonek=667,t.dcroat=611,t.threequarters=834,t.Scedilla=667,t.lcaron=400,t.Kcommaaccent=722,t.Lacute=611,t.trademark=1e3,t.edotaccent=556,t.Igrave=278,t.Imacron=278,t.Lcaron=611,t.onehalf=834,t.lessequal=549,t.ocircumflex=611,t.ntilde=611,t.Uhungarumlaut=722,t.Eacute=667,t.emacron=556,t.gbreve=611,t.onequarter=834,t.Scaron=667,t.Scommaaccent=667,t.Ohungarumlaut=778,t.degree=400,t.ograve=611,t.Ccaron=722,t.ugrave=611,t.radical=549,t.Dcaron=722,t.rcommaaccent=389,t.Ntilde=722,t.otilde=611,t.Rcommaaccent=722,t.Lcommaaccent=611,t.Atilde=722,t.Aogonek=722,t.Aring=722,t.Otilde=778,t.zdotaccent=500,t.Ecaron=667,t.Iogonek=278,t.kcommaaccent=556,t.minus=584,t.Icircumflex=278,t.ncaron=611,t.tcommaaccent=333,t.logicalnot=584,t.odieresis=611,t.udieresis=611,t.notequal=549,t.gcommaaccent=611,t.eth=611,t.zcaron=500,t.ncommaaccent=611,t.onesuperior=333,t.imacron=278,t.Euro=556}),t["Helvetica-BoldOblique"]=getLookupTableFactory(function(t){t.space=278,t.exclam=333,t.quotedbl=474,t.numbersign=556,t.dollar=556,t.percent=889,t.ampersand=722,t.quoteright=278,t.parenleft=333,t.parenright=333,t.asterisk=389,t.plus=584,t.comma=278,t.hyphen=333,t.period=278,t.slash=278,t.zero=556,t.one=556,t.two=556,t.three=556,t.four=556,t.five=556,t.six=556,t.seven=556,t.eight=556,t.nine=556,t.colon=333,t.semicolon=333,t.less=584,t.equal=584,t.greater=584,t.question=611,t.at=975,t.A=722,t.B=722,t.C=722,t.D=722,t.E=667,t.F=611,t.G=778,t.H=722,t.I=278,t.J=556,t.K=722,t.L=611,t.M=833,t.N=722,t.O=778,t.P=667,t.Q=778,t.R=722,t.S=667,t.T=611,t.U=722,t.V=667,t.W=944,t.X=667,t.Y=667,t.Z=611,t.bracketleft=333,t.backslash=278,t.bracketright=333,t.asciicircum=584,t.underscore=556,t.quoteleft=278,t.a=556,t.b=611,t.c=556,t.d=611,t.e=556,t.f=333,t.g=611,t.h=611,t.i=278,t.j=278,t.k=556,t.l=278,t.m=889,t.n=611,t.o=611,t.p=611,t.q=611,t.r=389,t.s=556,t.t=333,t.u=611,t.v=556,t.w=778,t.x=556,t.y=556,t.z=500,t.braceleft=389,t.bar=280,t.braceright=389,t.asciitilde=584,t.exclamdown=333,t.cent=556,t.sterling=556,t.fraction=167,t.yen=556,t.florin=556,t.section=556,t.currency=556,t.quotesingle=238,t.quotedblleft=500,t.guillemotleft=556,t.guilsinglleft=333,t.guilsinglright=333,t.fi=611,t.fl=611,t.endash=556,t.dagger=556,t.daggerdbl=556,t.periodcentered=278,t.paragraph=556,t.bullet=350,t.quotesinglbase=278,t.quotedblbase=500,t.quotedblright=500,t.guillemotright=556,t.ellipsis=1e3,t.perthousand=1e3,t.questiondown=611,t.grave=333,t.acute=333,t.circumflex=333,t.tilde=333,t.macron=333,t.breve=333,t.dotaccent=333,t.dieresis=333,t.ring=333,t.cedilla=333,t.hungarumlaut=333,t.ogonek=333,t.caron=333,t.emdash=1e3,t.AE=1e3,t.ordfeminine=370,t.Lslash=611,t.Oslash=778,t.OE=1e3,t.ordmasculine=365,t.ae=889,t.dotlessi=278,t.lslash=278,t.oslash=611,t.oe=944,t.germandbls=611,t.Idieresis=278,t.eacute=556,t.abreve=556,t.uhungarumlaut=611,t.ecaron=556,t.Ydieresis=667,t.divide=584,t.Yacute=667,t.Acircumflex=722,t.aacute=556,t.Ucircumflex=722,t.yacute=556,t.scommaaccent=556,t.ecircumflex=556,t.Uring=722,t.Udieresis=722,t.aogonek=556,t.Uacute=722,t.uogonek=611,t.Edieresis=667,t.Dcroat=722,t.commaaccent=250,t.copyright=737,t.Emacron=667,t.ccaron=556,t.aring=556,t.Ncommaaccent=722,t.lacute=278,t.agrave=556,t.Tcommaaccent=611,t.Cacute=722,t.atilde=556,t.Edotaccent=667,t.scaron=556,t.scedilla=556,t.iacute=278,t.lozenge=494,t.Rcaron=722,t.Gcommaaccent=778,t.ucircumflex=611,t.acircumflex=556,t.Amacron=722,t.rcaron=389,t.ccedilla=556,t.Zdotaccent=611,t.Thorn=667,t.Omacron=778,t.Racute=722,t.Sacute=667,t.dcaron=743,t.Umacron=722,t.uring=611,t.threesuperior=333,t.Ograve=778,t.Agrave=722,t.Abreve=722,t.multiply=584,t.uacute=611,t.Tcaron=611,t.partialdiff=494,t.ydieresis=556,t.Nacute=722,t.icircumflex=278,t.Ecircumflex=667,t.adieresis=556,t.edieresis=556,t.cacute=556,t.nacute=611,t.umacron=611,t.Ncaron=722,t.Iacute=278,t.plusminus=584,t.brokenbar=280,t.registered=737,t.Gbreve=778,t.Idotaccent=278,t.summation=600,t.Egrave=667,t.racute=389,t.omacron=611,t.Zacute=611,t.Zcaron=611,t.greaterequal=549,t.Eth=722,t.Ccedilla=722,t.lcommaaccent=278,t.tcaron=389,t.eogonek=556,t.Uogonek=722,t.Aacute=722,t.Adieresis=722,t.egrave=556,t.zacute=500,t.iogonek=278,t.Oacute=778,t.oacute=611,t.amacron=556,t.sacute=556,t.idieresis=278,t.Ocircumflex=778,t.Ugrave=722,t.Delta=612,t.thorn=611,t.twosuperior=333,t.Odieresis=778,t.mu=611,t.igrave=278,t.ohungarumlaut=611,t.Eogonek=667,t.dcroat=611,t.threequarters=834,t.Scedilla=667,t.lcaron=400,t.Kcommaaccent=722,t.Lacute=611,t.trademark=1e3,t.edotaccent=556,t.Igrave=278,t.Imacron=278,t.Lcaron=611,t.onehalf=834,t.lessequal=549,t.ocircumflex=611,t.ntilde=611,t.Uhungarumlaut=722,t.Eacute=667,t.emacron=556,t.gbreve=611,t.onequarter=834,t.Scaron=667,t.Scommaaccent=667,t.Ohungarumlaut=778,t.degree=400,t.ograve=611,t.Ccaron=722,t.ugrave=611,t.radical=549,t.Dcaron=722,t.rcommaaccent=389,t.Ntilde=722,t.otilde=611,t.Rcommaaccent=722,t.Lcommaaccent=611,t.Atilde=722,t.Aogonek=722,t.Aring=722,t.Otilde=778,t.zdotaccent=500,t.Ecaron=667,t.Iogonek=278,t.kcommaaccent=556,t.minus=584,t.Icircumflex=278,t.ncaron=611,t.tcommaaccent=333,t.logicalnot=584,t.odieresis=611,t.udieresis=611,t.notequal=549,t.gcommaaccent=611,t.eth=611,t.zcaron=500,t.ncommaaccent=611,t.onesuperior=333,t.imacron=278,t.Euro=556}),t["Helvetica-Oblique"]=getLookupTableFactory(function(t){t.space=278,t.exclam=278,t.quotedbl=355,t.numbersign=556,t.dollar=556,t.percent=889,t.ampersand=667,t.quoteright=222,t.parenleft=333,t.parenright=333,t.asterisk=389,t.plus=584,t.comma=278,t.hyphen=333,t.period=278,t.slash=278,t.zero=556,t.one=556,t.two=556,t.three=556,t.four=556,t.five=556,t.six=556,t.seven=556,t.eight=556,t.nine=556,t.colon=278,t.semicolon=278,t.less=584,t.equal=584,t.greater=584,t.question=556,t.at=1015,t.A=667,t.B=667,t.C=722,t.D=722,t.E=667,t.F=611,t.G=778,t.H=722,t.I=278,t.J=500,t.K=667,t.L=556,t.M=833,t.N=722,t.O=778,t.P=667,t.Q=778,t.R=722,t.S=667,t.T=611,t.U=722,t.V=667,t.W=944,t.X=667,t.Y=667,t.Z=611,t.bracketleft=278,t.backslash=278,t.bracketright=278,t.asciicircum=469,t.underscore=556,t.quoteleft=222,t.a=556,t.b=556,t.c=500,t.d=556,t.e=556,t.f=278,t.g=556,t.h=556,t.i=222,t.j=222,t.k=500,t.l=222,t.m=833,t.n=556,t.o=556,t.p=556,t.q=556,t.r=333,t.s=500,t.t=278,t.u=556,t.v=500,t.w=722,t.x=500,t.y=500,t.z=500,t.braceleft=334,t.bar=260,t.braceright=334,t.asciitilde=584,t.exclamdown=333,t.cent=556,t.sterling=556,t.fraction=167,t.yen=556,t.florin=556,t.section=556,t.currency=556,t.quotesingle=191,t.quotedblleft=333,t.guillemotleft=556,t.guilsinglleft=333,t.guilsinglright=333,t.fi=500,t.fl=500,t.endash=556,t.dagger=556,t.daggerdbl=556,t.periodcentered=278,t.paragraph=537,t.bullet=350,t.quotesinglbase=222,t.quotedblbase=333,t.quotedblright=333,t.guillemotright=556,t.ellipsis=1e3,t.perthousand=1e3,t.questiondown=611,t.grave=333,t.acute=333,t.circumflex=333,t.tilde=333,t.macron=333,t.breve=333,t.dotaccent=333,t.dieresis=333,t.ring=333,t.cedilla=333,t.hungarumlaut=333,t.ogonek=333,t.caron=333,t.emdash=1e3,t.AE=1e3,t.ordfeminine=370,t.Lslash=556,t.Oslash=778,t.OE=1e3,t.ordmasculine=365,t.ae=889,t.dotlessi=278,t.lslash=222,t.oslash=611,t.oe=944,t.germandbls=611,t.Idieresis=278,t.eacute=556,t.abreve=556,t.uhungarumlaut=556,t.ecaron=556,t.Ydieresis=667,t.divide=584,t.Yacute=667,t.Acircumflex=667,t.aacute=556,t.Ucircumflex=722,t.yacute=500,t.scommaaccent=500,t.ecircumflex=556,t.Uring=722,t.Udieresis=722,t.aogonek=556,t.Uacute=722,t.uogonek=556,t.Edieresis=667,t.Dcroat=722,t.commaaccent=250,t.copyright=737,t.Emacron=667,t.ccaron=500,t.aring=556,t.Ncommaaccent=722,t.lacute=222,t.agrave=556,t.Tcommaaccent=611,t.Cacute=722,t.atilde=556,t.Edotaccent=667,t.scaron=500,t.scedilla=500,t.iacute=278,t.lozenge=471,t.Rcaron=722,t.Gcommaaccent=778,t.ucircumflex=556,t.acircumflex=556,t.Amacron=667,t.rcaron=333,t.ccedilla=500,t.Zdotaccent=611,t.Thorn=667,t.Omacron=778,t.Racute=722,t.Sacute=667,t.dcaron=643,t.Umacron=722,t.uring=556,t.threesuperior=333,t.Ograve=778,t.Agrave=667,t.Abreve=667,t.multiply=584,t.uacute=556,t.Tcaron=611,t.partialdiff=476,t.ydieresis=500,t.Nacute=722,t.icircumflex=278,t.Ecircumflex=667,t.adieresis=556,t.edieresis=556,t.cacute=500,t.nacute=556,t.umacron=556,t.Ncaron=722,t.Iacute=278,t.plusminus=584,t.brokenbar=260,t.registered=737,t.Gbreve=778,t.Idotaccent=278,t.summation=600,t.Egrave=667,t.racute=333,t.omacron=556,t.Zacute=611,t.Zcaron=611,t.greaterequal=549,t.Eth=722,t.Ccedilla=722,t.lcommaaccent=222,t.tcaron=317,t.eogonek=556,t.Uogonek=722,t.Aacute=667,t.Adieresis=667,t.egrave=556,t.zacute=500,t.iogonek=222,t.Oacute=778,t.oacute=556,t.amacron=556,t.sacute=500,t.idieresis=278,t.Ocircumflex=778,t.Ugrave=722,t.Delta=612,t.thorn=556,t.twosuperior=333,t.Odieresis=778,t.mu=556,t.igrave=278,t.ohungarumlaut=556,t.Eogonek=667,t.dcroat=556,t.threequarters=834,t.Scedilla=667,t.lcaron=299,t.Kcommaaccent=667,t.Lacute=556,t.trademark=1e3,t.edotaccent=556,t.Igrave=278,t.Imacron=278,t.Lcaron=556,t.onehalf=834,t.lessequal=549,t.ocircumflex=556,t.ntilde=556,t.Uhungarumlaut=722,t.Eacute=667,t.emacron=556,t.gbreve=556,t.onequarter=834,t.Scaron=667,t.Scommaaccent=667,t.Ohungarumlaut=778,t.degree=400,t.ograve=556,t.Ccaron=722,t.ugrave=556,t.radical=453,t.Dcaron=722,t.rcommaaccent=333,t.Ntilde=722,t.otilde=556,t.Rcommaaccent=722,t.Lcommaaccent=556,t.Atilde=667,t.Aogonek=667,t.Aring=667,t.Otilde=778,t.zdotaccent=500,t.Ecaron=667,t.Iogonek=278,t.kcommaaccent=500,t.minus=584,t.Icircumflex=278,t.ncaron=556,t.tcommaaccent=278,t.logicalnot=584,t.odieresis=556,t.udieresis=556,t.notequal=549,t.gcommaaccent=556,t.eth=556,t.zcaron=500,t.ncommaaccent=556,t.onesuperior=333,t.imacron=278,t.Euro=556}),t.Symbol=getLookupTableFactory(function(t){t.space=250,t.exclam=333,t.universal=713,t.numbersign=500,t.existential=549,t.percent=833,t.ampersand=778,t.suchthat=439,t.parenleft=333,t.parenright=333,t.asteriskmath=500,t.plus=549,t.comma=250,t.minus=549,t.period=250,t.slash=278,t.zero=500,t.one=500,t.two=500,t.three=500,t.four=500,t.five=500,t.six=500,t.seven=500,t.eight=500,t.nine=500,t.colon=278,t.semicolon=278,t.less=549,t.equal=549,t.greater=549,t.question=444,t.congruent=549,t.Alpha=722,t.Beta=667,t.Chi=722,t.Delta=612,t.Epsilon=611,t.Phi=763,t.Gamma=603,t.Eta=722,t.Iota=333,t.theta1=631,t.Kappa=722,t.Lambda=686,t.Mu=889,t.Nu=722,t.Omicron=722,t.Pi=768,t.Theta=741,t.Rho=556,t.Sigma=592,t.Tau=611,t.Upsilon=690,t.sigma1=439,t.Omega=768,t.Xi=645,t.Psi=795,t.Zeta=611,t.bracketleft=333,t.therefore=863,t.bracketright=333,t.perpendicular=658,t.underscore=500,t.radicalex=500,t.alpha=631,t.beta=549,t.chi=549,t.delta=494,t.epsilon=439,t.phi=521,t.gamma=411,t.eta=603,t.iota=329,t.phi1=603,t.kappa=549,t.lambda=549,t.mu=576,t.nu=521,t.omicron=549,t.pi=549,t.theta=521,t.rho=549,t.sigma=603,t.tau=439,t.upsilon=576,t.omega1=713,t.omega=686,t.xi=493,t.psi=686,t.zeta=494,t.braceleft=480,t.bar=200,t.braceright=480,t.similar=549,t.Euro=750,t.Upsilon1=620,t.minute=247,t.lessequal=549,t.fraction=167,t.infinity=713,t.florin=500,t.club=753,t.diamond=753,t.heart=753,t.spade=753,t.arrowboth=1042,t.arrowleft=987,t.arrowup=603,t.arrowright=987,t.arrowdown=603,t.degree=400,t.plusminus=549,t.second=411,t.greaterequal=549,t.multiply=549,t.proportional=713,t.partialdiff=494,t.bullet=460,t.divide=549,t.notequal=549,t.equivalence=549,t.approxequal=549,t.ellipsis=1e3,t.arrowvertex=603,t.arrowhorizex=1e3,t.carriagereturn=658,t.aleph=823,t.Ifraktur=686,t.Rfraktur=795,t.weierstrass=987,t.circlemultiply=768,t.circleplus=768,t.emptyset=823,t.intersection=768,t.union=768,t.propersuperset=713,t.reflexsuperset=713,t.notsubset=713,t.propersubset=713,t.reflexsubset=713,t.element=713,t.notelement=713,t.angle=768,t.gradient=713,t.registerserif=790,t.copyrightserif=790,t.trademarkserif=890,t.product=823,t.radical=549,t.dotmath=250,t.logicalnot=713,t.logicaland=603,t.logicalor=603,t.arrowdblboth=1042,t.arrowdblleft=987,t.arrowdblup=603,t.arrowdblright=987,t.arrowdbldown=603,t.lozenge=494,t.angleleft=329,t.registersans=790,t.copyrightsans=790,t.trademarksans=786,t.summation=713,t.parenlefttp=384,t.parenleftex=384,t.parenleftbt=384,t.bracketlefttp=384,t.bracketleftex=384,t.bracketleftbt=384,t.bracelefttp=494,t.braceleftmid=494,t.braceleftbt=494,t.braceex=494,t.angleright=329,t.integral=274,t.integraltp=686,t.integralex=686,t.integralbt=686,t.parenrighttp=384,t.parenrightex=384,t.parenrightbt=384,t.bracketrighttp=384,t.bracketrightex=384,t.bracketrightbt=384,t.bracerighttp=494,t.bracerightmid=494,t.bracerightbt=494,t.apple=790}),t["Times-Roman"]=getLookupTableFactory(function(t){t.space=250,t.exclam=333,t.quotedbl=408,t.numbersign=500,t.dollar=500,t.percent=833,t.ampersand=778,t.quoteright=333,t.parenleft=333,t.parenright=333,t.asterisk=500,t.plus=564,t.comma=250,t.hyphen=333,t.period=250,t.slash=278,t.zero=500,t.one=500,t.two=500,t.three=500,t.four=500,t.five=500,t.six=500,t.seven=500,t.eight=500,t.nine=500,t.colon=278,t.semicolon=278,t.less=564,t.equal=564,t.greater=564,t.question=444,t.at=921,t.A=722,t.B=667,t.C=667,t.D=722,t.E=611,t.F=556,t.G=722,t.H=722,t.I=333,t.J=389,t.K=722,t.L=611,t.M=889,t.N=722,t.O=722,t.P=556,t.Q=722,t.R=667,t.S=556,t.T=611,t.U=722,t.V=722,t.W=944,t.X=722,t.Y=722,t.Z=611,t.bracketleft=333,t.backslash=278,t.bracketright=333,t.asciicircum=469,t.underscore=500,t.quoteleft=333,t.a=444,t.b=500,t.c=444,t.d=500,t.e=444,t.f=333,t.g=500,t.h=500,t.i=278,t.j=278,t.k=500,t.l=278,t.m=778,t.n=500,t.o=500,t.p=500,t.q=500,t.r=333,t.s=389,t.t=278,t.u=500,t.v=500,t.w=722,t.x=500,t.y=500,t.z=444,t.braceleft=480,t.bar=200,t.braceright=480,t.asciitilde=541,t.exclamdown=333,t.cent=500,t.sterling=500,t.fraction=167,t.yen=500,t.florin=500,t.section=500,t.currency=500,t.quotesingle=180,t.quotedblleft=444,t.guillemotleft=500,t.guilsinglleft=333,t.guilsinglright=333,t.fi=556,t.fl=556,t.endash=500,t.dagger=500,t.daggerdbl=500,t.periodcentered=250,t.paragraph=453,t.bullet=350,t.quotesinglbase=333,t.quotedblbase=444,t.quotedblright=444,t.guillemotright=500,t.ellipsis=1e3,t.perthousand=1e3,t.questiondown=444,t.grave=333,t.acute=333,t.circumflex=333,t.tilde=333,t.macron=333,t.breve=333,t.dotaccent=333,t.dieresis=333,t.ring=333,t.cedilla=333,t.hungarumlaut=333,t.ogonek=333,t.caron=333,t.emdash=1e3,t.AE=889,t.ordfeminine=276,t.Lslash=611,t.Oslash=722,t.OE=889,t.ordmasculine=310,t.ae=667,t.dotlessi=278,t.lslash=278,t.oslash=500,t.oe=722,t.germandbls=500,t.Idieresis=333,t.eacute=444,t.abreve=444,t.uhungarumlaut=500,t.ecaron=444,t.Ydieresis=722,t.divide=564,t.Yacute=722,t.Acircumflex=722,t.aacute=444,t.Ucircumflex=722,t.yacute=500,t.scommaaccent=389,t.ecircumflex=444,t.Uring=722,t.Udieresis=722,t.aogonek=444,t.Uacute=722,t.uogonek=500,t.Edieresis=611,t.Dcroat=722,t.commaaccent=250,t.copyright=760,t.Emacron=611,t.ccaron=444,t.aring=444,t.Ncommaaccent=722,t.lacute=278,t.agrave=444,t.Tcommaaccent=611,t.Cacute=667,t.atilde=444,t.Edotaccent=611,t.scaron=389,t.scedilla=389,t.iacute=278,t.lozenge=471,t.Rcaron=667,t.Gcommaaccent=722,t.ucircumflex=500,t.acircumflex=444,t.Amacron=722,t.rcaron=333,t.ccedilla=444,t.Zdotaccent=611,t.Thorn=556,t.Omacron=722,t.Racute=667,t.Sacute=556,t.dcaron=588,t.Umacron=722,t.uring=500,t.threesuperior=300,t.Ograve=722,t.Agrave=722,t.Abreve=722,t.multiply=564,t.uacute=500,t.Tcaron=611,t.partialdiff=476,t.ydieresis=500,t.Nacute=722,t.icircumflex=278,t.Ecircumflex=611,t.adieresis=444,t.edieresis=444,t.cacute=444,t.nacute=500,t.umacron=500,t.Ncaron=722,t.Iacute=333,t.plusminus=564,t.brokenbar=200,t.registered=760,t.Gbreve=722,t.Idotaccent=333,t.summation=600,t.Egrave=611,t.racute=333,t.omacron=500,t.Zacute=611,t.Zcaron=611,t.greaterequal=549,t.Eth=722,t.Ccedilla=667,t.lcommaaccent=278,t.tcaron=326,t.eogonek=444,t.Uogonek=722,t.Aacute=722,t.Adieresis=722,t.egrave=444,t.zacute=444,t.iogonek=278,t.Oacute=722,t.oacute=500,t.amacron=444,t.sacute=389,t.idieresis=278,t.Ocircumflex=722,t.Ugrave=722,t.Delta=612,t.thorn=500,t.twosuperior=300,t.Odieresis=722,t.mu=500,t.igrave=278,t.ohungarumlaut=500,t.Eogonek=611,t.dcroat=500,t.threequarters=750,t.Scedilla=556,t.lcaron=344,t.Kcommaaccent=722,t.Lacute=611,t.trademark=980,t.edotaccent=444,t.Igrave=333,t.Imacron=333,t.Lcaron=611,t.onehalf=750,t.lessequal=549,t.ocircumflex=500,t.ntilde=500,t.Uhungarumlaut=722,t.Eacute=611,t.emacron=444,t.gbreve=500,t.onequarter=750,t.Scaron=556,t.Scommaaccent=556,t.Ohungarumlaut=722,t.degree=400,t.ograve=500,t.Ccaron=667,t.ugrave=500,t.radical=453,t.Dcaron=722,t.rcommaaccent=333,t.Ntilde=722,t.otilde=500,t.Rcommaaccent=667,t.Lcommaaccent=611,t.Atilde=722,t.Aogonek=722,t.Aring=722,t.Otilde=722,t.zdotaccent=444,t.Ecaron=611,t.Iogonek=333,t.kcommaaccent=500,t.minus=564,t.Icircumflex=333,t.ncaron=500,t.tcommaaccent=278,t.logicalnot=564,t.odieresis=500,t.udieresis=500,t.notequal=549,t.gcommaaccent=500,t.eth=500,t.zcaron=444,t.ncommaaccent=500,t.onesuperior=300,t.imacron=278,t.Euro=500}),t["Times-Bold"]=getLookupTableFactory(function(t){t.space=250,t.exclam=333,t.quotedbl=555,t.numbersign=500,t.dollar=500,t.percent=1e3,t.ampersand=833,t.quoteright=333,t.parenleft=333,t.parenright=333,t.asterisk=500,t.plus=570,t.comma=250,t.hyphen=333,t.period=250,t.slash=278,t.zero=500,t.one=500,t.two=500,t.three=500,t.four=500,t.five=500,t.six=500,t.seven=500,t.eight=500,t.nine=500,t.colon=333,t.semicolon=333,t.less=570,t.equal=570,t.greater=570,t.question=500,t.at=930,t.A=722,t.B=667,t.C=722,t.D=722,t.E=667,t.F=611,t.G=778,t.H=778,t.I=389,t.J=500,t.K=778,t.L=667,t.M=944,t.N=722,t.O=778,t.P=611,t.Q=778,t.R=722,t.S=556,t.T=667,t.U=722,t.V=722,t.W=1e3,t.X=722,t.Y=722,t.Z=667,t.bracketleft=333,t.backslash=278,t.bracketright=333,t.asciicircum=581,t.underscore=500,t.quoteleft=333,t.a=500,t.b=556,t.c=444,t.d=556,t.e=444,t.f=333,t.g=500,t.h=556,t.i=278,t.j=333,t.k=556,t.l=278,t.m=833,t.n=556,t.o=500,t.p=556,t.q=556,t.r=444,t.s=389,t.t=333,t.u=556,t.v=500,t.w=722,t.x=500,t.y=500,t.z=444,t.braceleft=394,t.bar=220,t.braceright=394,t.asciitilde=520,t.exclamdown=333,t.cent=500,t.sterling=500,t.fraction=167,t.yen=500,t.florin=500,t.section=500,t.currency=500,t.quotesingle=278,t.quotedblleft=500,t.guillemotleft=500,t.guilsinglleft=333,t.guilsinglright=333,t.fi=556,t.fl=556,t.endash=500,t.dagger=500,t.daggerdbl=500,t.periodcentered=250,t.paragraph=540,t.bullet=350,t.quotesinglbase=333,t.quotedblbase=500,t.quotedblright=500,t.guillemotright=500,t.ellipsis=1e3,t.perthousand=1e3,t.questiondown=500,t.grave=333,t.acute=333,t.circumflex=333,t.tilde=333,t.macron=333,t.breve=333,t.dotaccent=333,t.dieresis=333,t.ring=333,t.cedilla=333,t.hungarumlaut=333,t.ogonek=333,t.caron=333,t.emdash=1e3,t.AE=1e3,t.ordfeminine=300,t.Lslash=667,t.Oslash=778,t.OE=1e3,t.ordmasculine=330,t.ae=722,t.dotlessi=278,t.lslash=278,t.oslash=500,t.oe=722,t.germandbls=556,t.Idieresis=389,t.eacute=444,t.abreve=500,t.uhungarumlaut=556,t.ecaron=444,t.Ydieresis=722,t.divide=570,t.Yacute=722,t.Acircumflex=722,t.aacute=500,t.Ucircumflex=722,t.yacute=500,t.scommaaccent=389,t.ecircumflex=444,t.Uring=722,t.Udieresis=722,t.aogonek=500,t.Uacute=722,t.uogonek=556,t.Edieresis=667,t.Dcroat=722,t.commaaccent=250,t.copyright=747,t.Emacron=667,t.ccaron=444,t.aring=500,t.Ncommaaccent=722,t.lacute=278,t.agrave=500,t.Tcommaaccent=667,t.Cacute=722,t.atilde=500,t.Edotaccent=667,t.scaron=389,t.scedilla=389,t.iacute=278,t.lozenge=494,t.Rcaron=722,t.Gcommaaccent=778,t.ucircumflex=556,t.acircumflex=500,t.Amacron=722,t.rcaron=444,t.ccedilla=444,t.Zdotaccent=667,t.Thorn=611,t.Omacron=778,t.Racute=722,t.Sacute=556,t.dcaron=672,t.Umacron=722,t.uring=556,t.threesuperior=300,t.Ograve=778,t.Agrave=722,t.Abreve=722,t.multiply=570,t.uacute=556,t.Tcaron=667,t.partialdiff=494,t.ydieresis=500,t.Nacute=722,t.icircumflex=278,t.Ecircumflex=667,t.adieresis=500,t.edieresis=444,t.cacute=444,t.nacute=556,t.umacron=556,t.Ncaron=722,t.Iacute=389,t.plusminus=570,t.brokenbar=220,t.registered=747,t.Gbreve=778,t.Idotaccent=389,t.summation=600,t.Egrave=667,t.racute=444,t.omacron=500,t.Zacute=667,t.Zcaron=667,t.greaterequal=549,t.Eth=722,t.Ccedilla=722,t.lcommaaccent=278,t.tcaron=416,t.eogonek=444,t.Uogonek=722,t.Aacute=722,t.Adieresis=722,t.egrave=444,t.zacute=444,t.iogonek=278,t.Oacute=778,t.oacute=500,t.amacron=500,t.sacute=389,t.idieresis=278,t.Ocircumflex=778,t.Ugrave=722,t.Delta=612,t.thorn=556,t.twosuperior=300,t.Odieresis=778,t.mu=556,t.igrave=278,t.ohungarumlaut=500,t.Eogonek=667,t.dcroat=556,t.threequarters=750,t.Scedilla=556,t.lcaron=394,t.Kcommaaccent=778,t.Lacute=667,t.trademark=1e3,t.edotaccent=444,t.Igrave=389,t.Imacron=389,t.Lcaron=667,t.onehalf=750,t.lessequal=549,t.ocircumflex=500,t.ntilde=556,t.Uhungarumlaut=722,t.Eacute=667,t.emacron=444,t.gbreve=500,t.onequarter=750,t.Scaron=556,t.Scommaaccent=556,t.Ohungarumlaut=778,t.degree=400,t.ograve=500,t.Ccaron=722,t.ugrave=556,t.radical=549,t.Dcaron=722,t.rcommaaccent=444,t.Ntilde=722,t.otilde=500,t.Rcommaaccent=722,t.Lcommaaccent=667,t.Atilde=722,t.Aogonek=722,t.Aring=722,t.Otilde=778,t.zdotaccent=444,t.Ecaron=667,t.Iogonek=389,t.kcommaaccent=556,t.minus=570,t.Icircumflex=389,t.ncaron=556,t.tcommaaccent=333,t.logicalnot=570,t.odieresis=500,t.udieresis=556,t.notequal=549,t.gcommaaccent=500,t.eth=500,t.zcaron=444,t.ncommaaccent=556,t.onesuperior=300,t.imacron=278,t.Euro=500}),t["Times-BoldItalic"]=getLookupTableFactory(function(t){t.space=250,t.exclam=389,t.quotedbl=555,t.numbersign=500,t.dollar=500,t.percent=833,t.ampersand=778,t.quoteright=333,t.parenleft=333,t.parenright=333,t.asterisk=500,t.plus=570,t.comma=250,t.hyphen=333,t.period=250,t.slash=278,t.zero=500,t.one=500,t.two=500,t.three=500,t.four=500,t.five=500,t.six=500,t.seven=500,t.eight=500,t.nine=500,t.colon=333,t.semicolon=333,t.less=570,t.equal=570,t.greater=570,t.question=500,t.at=832,t.A=667,t.B=667,t.C=667,t.D=722,t.E=667,t.F=667,t.G=722,t.H=778,t.I=389,t.J=500,t.K=667,t.L=611,t.M=889,t.N=722,t.O=722,t.P=611,t.Q=722,t.R=667,t.S=556,t.T=611,t.U=722,t.V=667,t.W=889,t.X=667,t.Y=611,t.Z=611,t.bracketleft=333,t.backslash=278,t.bracketright=333,t.asciicircum=570,t.underscore=500,t.quoteleft=333,t.a=500,t.b=500,t.c=444,t.d=500,t.e=444,t.f=333,t.g=500,t.h=556,t.i=278,t.j=278,t.k=500,t.l=278,t.m=778,t.n=556,t.o=500,t.p=500,t.q=500,t.r=389,t.s=389,t.t=278,t.u=556,t.v=444,t.w=667,t.x=500,t.y=444,t.z=389,t.braceleft=348,t.bar=220,t.braceright=348,t.asciitilde=570,t.exclamdown=389,t.cent=500,t.sterling=500,t.fraction=167,t.yen=500,t.florin=500,t.section=500,t.currency=500,t.quotesingle=278,t.quotedblleft=500,t.guillemotleft=500,t.guilsinglleft=333,t.guilsinglright=333,t.fi=556,t.fl=556,t.endash=500,t.dagger=500,t.daggerdbl=500,t.periodcentered=250,t.paragraph=500,t.bullet=350,t.quotesinglbase=333,t.quotedblbase=500,t.quotedblright=500,t.guillemotright=500,t.ellipsis=1e3,t.perthousand=1e3,t.questiondown=500,t.grave=333,t.acute=333,t.circumflex=333,t.tilde=333,t.macron=333,t.breve=333,t.dotaccent=333,t.dieresis=333,t.ring=333,t.cedilla=333,t.hungarumlaut=333,t.ogonek=333,t.caron=333,t.emdash=1e3,t.AE=944,t.ordfeminine=266,t.Lslash=611,t.Oslash=722,t.OE=944,t.ordmasculine=300,t.ae=722,t.dotlessi=278,t.lslash=278,t.oslash=500,t.oe=722,t.germandbls=500,t.Idieresis=389,t.eacute=444,t.abreve=500,t.uhungarumlaut=556,t.ecaron=444,t.Ydieresis=611,t.divide=570,t.Yacute=611,t.Acircumflex=667,t.aacute=500,t.Ucircumflex=722,t.yacute=444,t.scommaaccent=389,t.ecircumflex=444,t.Uring=722,t.Udieresis=722,t.aogonek=500,t.Uacute=722,t.uogonek=556,t.Edieresis=667,t.Dcroat=722,t.commaaccent=250,t.copyright=747,t.Emacron=667,t.ccaron=444,t.aring=500,t.Ncommaaccent=722,t.lacute=278,t.agrave=500,t.Tcommaaccent=611,t.Cacute=667,t.atilde=500,t.Edotaccent=667,t.scaron=389,t.scedilla=389,t.iacute=278,t.lozenge=494,t.Rcaron=667,t.Gcommaaccent=722,t.ucircumflex=556,t.acircumflex=500,t.Amacron=667,t.rcaron=389,t.ccedilla=444,t.Zdotaccent=611,t.Thorn=611,t.Omacron=722,t.Racute=667,t.Sacute=556,t.dcaron=608,t.Umacron=722,t.uring=556,t.threesuperior=300,t.Ograve=722,t.Agrave=667,t.Abreve=667,t.multiply=570,t.uacute=556,t.Tcaron=611,t.partialdiff=494,t.ydieresis=444,t.Nacute=722,t.icircumflex=278,t.Ecircumflex=667,t.adieresis=500,t.edieresis=444,t.cacute=444,t.nacute=556,t.umacron=556,t.Ncaron=722,t.Iacute=389,t.plusminus=570,t.brokenbar=220,t.registered=747,t.Gbreve=722,t.Idotaccent=389,t.summation=600,t.Egrave=667,t.racute=389,t.omacron=500,t.Zacute=611,t.Zcaron=611,t.greaterequal=549,t.Eth=722,t.Ccedilla=667,t.lcommaaccent=278,t.tcaron=366,t.eogonek=444,t.Uogonek=722,t.Aacute=667,t.Adieresis=667,t.egrave=444,t.zacute=389,t.iogonek=278,t.Oacute=722,t.oacute=500,t.amacron=500,t.sacute=389,t.idieresis=278,t.Ocircumflex=722,t.Ugrave=722,t.Delta=612,t.thorn=500,t.twosuperior=300,t.Odieresis=722,t.mu=576,t.igrave=278,t.ohungarumlaut=500,t.Eogonek=667,t.dcroat=500,t.threequarters=750,t.Scedilla=556,t.lcaron=382,t.Kcommaaccent=667,t.Lacute=611,t.trademark=1e3,t.edotaccent=444,t.Igrave=389,t.Imacron=389,t.Lcaron=611,t.onehalf=750,t.lessequal=549,t.ocircumflex=500,t.ntilde=556,t.Uhungarumlaut=722,t.Eacute=667,t.emacron=444,t.gbreve=500,t.onequarter=750,t.Scaron=556,t.Scommaaccent=556,t.Ohungarumlaut=722,t.degree=400,t.ograve=500,t.Ccaron=667,t.ugrave=556,t.radical=549,t.Dcaron=722,t.rcommaaccent=389,t.Ntilde=722,t.otilde=500,t.Rcommaaccent=667,t.Lcommaaccent=611,t.Atilde=667,t.Aogonek=667,t.Aring=667,t.Otilde=722,t.zdotaccent=389,t.Ecaron=667,t.Iogonek=389,t.kcommaaccent=500,t.minus=606,t.Icircumflex=389,t.ncaron=556,t.tcommaaccent=278,t.logicalnot=606,t.odieresis=500,t.udieresis=556,t.notequal=549,t.gcommaaccent=500,t.eth=500,t.zcaron=389,t.ncommaaccent=556,t.onesuperior=300,t.imacron=278,t.Euro=500}),t["Times-Italic"]=getLookupTableFactory(function(t){t.space=250,t.exclam=333,t.quotedbl=420,t.numbersign=500,t.dollar=500,t.percent=833,t.ampersand=778,t.quoteright=333,t.parenleft=333,t.parenright=333,t.asterisk=500,t.plus=675,t.comma=250,t.hyphen=333,t.period=250,t.slash=278,t.zero=500,t.one=500,t.two=500,t.three=500,t.four=500,t.five=500,t.six=500,t.seven=500,t.eight=500,t.nine=500,t.colon=333,t.semicolon=333,t.less=675,t.equal=675,t.greater=675,t.question=500,t.at=920,t.A=611,t.B=611,t.C=667,t.D=722,t.E=611,t.F=611,t.G=722,t.H=722,t.I=333,t.J=444,t.K=667,t.L=556,t.M=833,t.N=667,t.O=722,t.P=611,t.Q=722,t.R=611,t.S=500,t.T=556,t.U=722,t.V=611,t.W=833,t.X=611,t.Y=556,t.Z=556,t.bracketleft=389,t.backslash=278,t.bracketright=389,t.asciicircum=422,t.underscore=500,t.quoteleft=333,t.a=500,t.b=500,t.c=444,t.d=500,t.e=444,t.f=278,t.g=500,t.h=500,t.i=278,t.j=278,t.k=444,t.l=278,t.m=722,t.n=500,t.o=500,t.p=500,t.q=500,t.r=389,t.s=389,t.t=278,t.u=500,t.v=444,t.w=667,t.x=444,t.y=444,t.z=389,t.braceleft=400,t.bar=275,t.braceright=400,t.asciitilde=541,t.exclamdown=389,t.cent=500,t.sterling=500,t.fraction=167,t.yen=500,t.florin=500,t.section=500,t.currency=500,t.quotesingle=214,t.quotedblleft=556,t.guillemotleft=500,t.guilsinglleft=333,t.guilsinglright=333,t.fi=500,t.fl=500,t.endash=500,t.dagger=500,t.daggerdbl=500,t.periodcentered=250,t.paragraph=523,t.bullet=350,t.quotesinglbase=333,t.quotedblbase=556,t.quotedblright=556,t.guillemotright=500,t.ellipsis=889,t.perthousand=1e3,t.questiondown=500,t.grave=333,t.acute=333,t.circumflex=333,t.tilde=333,t.macron=333,t.breve=333,t.dotaccent=333,t.dieresis=333,t.ring=333,t.cedilla=333,t.hungarumlaut=333,t.ogonek=333,t.caron=333,t.emdash=889,t.AE=889,t.ordfeminine=276,t.Lslash=556,t.Oslash=722,t.OE=944,t.ordmasculine=310,t.ae=667,t.dotlessi=278,t.lslash=278,t.oslash=500,t.oe=667,t.germandbls=500,t.Idieresis=333,t.eacute=444,t.abreve=500,t.uhungarumlaut=500,t.ecaron=444,t.Ydieresis=556,t.divide=675,t.Yacute=556,t.Acircumflex=611,t.aacute=500,t.Ucircumflex=722,t.yacute=444,t.scommaaccent=389,t.ecircumflex=444,t.Uring=722,t.Udieresis=722,t.aogonek=500,t.Uacute=722,t.uogonek=500,t.Edieresis=611,t.Dcroat=722,t.commaaccent=250,t.copyright=760,t.Emacron=611,t.ccaron=444,t.aring=500,t.Ncommaaccent=667,t.lacute=278,t.agrave=500,t.Tcommaaccent=556,t.Cacute=667,t.atilde=500,t.Edotaccent=611,t.scaron=389,t.scedilla=389,t.iacute=278,t.lozenge=471,t.Rcaron=611,t.Gcommaaccent=722,t.ucircumflex=500,t.acircumflex=500,t.Amacron=611,t.rcaron=389,t.ccedilla=444,t.Zdotaccent=556,t.Thorn=611,t.Omacron=722,t.Racute=611,t.Sacute=500,t.dcaron=544,t.Umacron=722,t.uring=500,t.threesuperior=300,t.Ograve=722,t.Agrave=611,t.Abreve=611,t.multiply=675,t.uacute=500,t.Tcaron=556,t.partialdiff=476,t.ydieresis=444,t.Nacute=667,t.icircumflex=278,t.Ecircumflex=611,t.adieresis=500,t.edieresis=444,t.cacute=444,t.nacute=500,t.umacron=500,t.Ncaron=667,t.Iacute=333,t.plusminus=675,t.brokenbar=275,t.registered=760,t.Gbreve=722,t.Idotaccent=333,t.summation=600,t.Egrave=611,t.racute=389,t.omacron=500,t.Zacute=556,t.Zcaron=556,t.greaterequal=549,t.Eth=722,t.Ccedilla=667,t.lcommaaccent=278,t.tcaron=300,t.eogonek=444,t.Uogonek=722,t.Aacute=611,t.Adieresis=611,t.egrave=444,t.zacute=389,t.iogonek=278,t.Oacute=722,t.oacute=500,t.amacron=500,t.sacute=389,t.idieresis=278,t.Ocircumflex=722,t.Ugrave=722,t.Delta=612,t.thorn=500,t.twosuperior=300,t.Odieresis=722,t.mu=500,t.igrave=278,t.ohungarumlaut=500,t.Eogonek=611,t.dcroat=500,t.threequarters=750,t.Scedilla=500,t.lcaron=300,t.Kcommaaccent=667,t.Lacute=556,t.trademark=980,t.edotaccent=444,t.Igrave=333,t.Imacron=333,t.Lcaron=611,t.onehalf=750,t.lessequal=549,t.ocircumflex=500,t.ntilde=500,t.Uhungarumlaut=722,t.Eacute=611,t.emacron=444,t.gbreve=500,t.onequarter=750,t.Scaron=500,t.Scommaaccent=500,t.Ohungarumlaut=722,t.degree=400,t.ograve=500,t.Ccaron=667,t.ugrave=500,t.radical=453,t.Dcaron=722,t.rcommaaccent=389,t.Ntilde=667,t.otilde=500,t.Rcommaaccent=611,t.Lcommaaccent=556,t.Atilde=611,t.Aogonek=611,t.Aring=611,t.Otilde=722,t.zdotaccent=389,t.Ecaron=611,t.Iogonek=333,t.kcommaaccent=444,t.minus=675,t.Icircumflex=333,t.ncaron=500,t.tcommaaccent=278,t.logicalnot=675,t.odieresis=500,t.udieresis=500,t.notequal=549,t.gcommaaccent=500,t.eth=500,t.zcaron=389,t.ncommaaccent=500,t.onesuperior=300,t.imacron=278,t.Euro=500}),t.ZapfDingbats=getLookupTableFactory(function(t){t.space=278,t.a1=974,t.a2=961,t.a202=974,t.a3=980,t.a4=719,t.a5=789,t.a119=790,t.a118=791,t.a117=690,t.a11=960,t.a12=939,t.a13=549,t.a14=855,t.a15=911,t.a16=933,t.a105=911,t.a17=945,t.a18=974,t.a19=755,t.a20=846,t.a21=762,t.a22=761,t.a23=571,t.a24=677,t.a25=763,t.a26=760,t.a27=759,t.a28=754,t.a6=494,t.a7=552,t.a8=537,t.a9=577,t.a10=692,t.a29=786,t.a30=788,t.a31=788,t.a32=790,t.a33=793,t.a34=794,t.a35=816,t.a36=823,t.a37=789,t.a38=841,t.a39=823,t.a40=833,t.a41=816,t.a42=831,t.a43=923,t.a44=744,t.a45=723,t.a46=749,t.a47=790,t.a48=792,t.a49=695,t.a50=776,t.a51=768,t.a52=792,t.a53=759,t.a54=707,t.a55=708,t.a56=682,t.a57=701,t.a58=826,t.a59=815,t.a60=789,t.a61=789,t.a62=707,t.a63=687,t.a64=696,t.a65=689,t.a66=786,t.a67=787,t.a68=713,t.a69=791,t.a70=785,t.a71=791,t.a72=873,t.a73=761,t.a74=762,t.a203=762,t.a75=759,t.a204=759,t.a76=892,t.a77=892,t.a78=788,t.a79=784,t.a81=438,t.a82=138,t.a83=277,t.a84=415,t.a97=392,t.a98=392,t.a99=668,t.a100=668,t.a89=390,t.a90=390,t.a93=317,t.a94=317,t.a91=276,t.a92=276,t.a205=509,t.a85=509,t.a206=410,t.a86=410,t.a87=234,t.a88=234,t.a95=334,t.a96=334,t.a101=732,t.a102=544,t.a103=544,t.a104=910,t.a106=667,t.a107=760,t.a108=760,t.a112=776,t.a111=595,t.a110=694,t.a109=626,t.a120=788,t.a121=788,t.a122=788,t.a123=788,t.a124=788,t.a125=788,t.a126=788,t.a127=788,t.a128=788,t.a129=788,t.a130=788,t.a131=788,t.a132=788,t.a133=788,t.a134=788,t.a135=788,t.a136=788,t.a137=788,t.a138=788,t.a139=788,t.a140=788,t.a141=788,t.a142=788,t.a143=788,t.a144=788,t.a145=788,t.a146=788,t.a147=788,t.a148=788,t.a149=788,t.a150=788,t.a151=788,t.a152=788,t.a153=788,t.a154=788,t.a155=788,t.a156=788,t.a157=788,t.a158=788,t.a159=788,t.a160=894,t.a161=838,t.a163=1016,t.a164=458,t.a196=748,t.a165=924,t.a192=748,t.a166=918,t.a167=927,t.a168=928,t.a169=928,t.a170=834,t.a171=873,t.a172=828,t.a173=924,t.a162=924,t.a174=917,t.a175=930,t.a176=931,t.a177=463,t.a178=883,t.a179=836,t.a193=836,t.a180=867,t.a199=867,t.a181=696,t.a200=696,t.a182=874,t.a201=874,t.a183=760,t.a184=946,t.a197=771,t.a185=865,t.a194=771,t.a198=888,t.a186=967,t.a195=888,t.a187=831,t.a188=873,t.a189=927,t.a190=970,t.a191=918})}),getFontBasicMetrics=getLookupTableFactory(function(t){t.Courier={ascent:629,descent:-157,capHeight:562,xHeight:-426},t["Courier-Bold"]={ascent:629,descent:-157,capHeight:562,xHeight:439},t["Courier-Oblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426},t["Courier-BoldOblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426},t.Helvetica={ascent:718,descent:-207,capHeight:718,xHeight:523},t["Helvetica-Bold"]={ascent:718,descent:-207,capHeight:718,xHeight:532},t["Helvetica-Oblique"]={ascent:718,descent:-207,capHeight:718,xHeight:523},t["Helvetica-BoldOblique"]={ascent:718,descent:-207,capHeight:718,xHeight:532},t["Times-Roman"]={ascent:683,descent:-217,capHeight:662,xHeight:450},t["Times-Bold"]={ascent:683,descent:-217,capHeight:676,xHeight:461},t["Times-Italic"]={ascent:683,descent:-217,capHeight:653,xHeight:441},t["Times-BoldItalic"]={ascent:683,descent:-217,capHeight:669,xHeight:462},t.Symbol={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN},t.ZapfDingbats={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN}}),ON_CURVE_POINT=1,X_SHORT_VECTOR=2,Y_SHORT_VECTOR=4,REPEAT_FLAG=8,X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR=16,Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR=32,OVERLAP_SIMPLE=64,ARG_1_AND_2_ARE_WORDS=1,ARGS_ARE_XY_VALUES=2,WE_HAVE_A_SCALE=8,MORE_COMPONENTS=32,WE_HAVE_AN_X_AND_Y_SCALE=64,WE_HAVE_A_TWO_BY_TWO=128,WE_HAVE_INSTRUCTIONS=256;class GlyfTable{constructor({glyfTable,isGlyphLocationsLong,locaTable,numGlyphs}){this.glyphs=[];var loca=new DataView(locaTable.buffer,locaTable.byteOffset,locaTable.byteLength),glyf=new DataView(glyfTable.buffer,glyfTable.byteOffset,glyfTable.byteLength),offsetSize=isGlyphLocationsLong?4:2;let prev=isGlyphLocationsLong?loca.getUint32(0):2*loca.getUint16(0),pos=0;for(let i=0;i<numGlyphs;i++){pos+=offsetSize;var glyph,next=isGlyphLocationsLong?loca.getUint32(pos):2*loca.getUint16(pos);next===prev?this.glyphs.push(new Glyph({})):(glyph=Glyph.parse(prev,glyf),this.glyphs.push(glyph),prev=next)}}getSize(){return this.glyphs.reduce((a,g)=>{return a+(g.getSize()+3&-4)},0)}write(){var totalSize=this.getSize(),glyfTable=new DataView(new ArrayBuffer(totalSize)),isLocationLong=131070<totalSize,offsetSize=isLocationLong?4:2,locaTable=new DataView(new ArrayBuffer((this.glyphs.length+1)*offsetSize));isLocationLong?locaTable.setUint32(0,0):locaTable.setUint16(0,0);let pos=0,locaIndex=0;for(const glyph of this.glyphs)pos=(pos+=glyph.write(pos,glyfTable))+3&-4,locaIndex+=offsetSize,isLocationLong?locaTable.setUint32(locaIndex,pos):locaTable.setUint16(locaIndex,pos>>1);return{isLocationLong:isLocationLong,loca:new Uint8Array(locaTable.buffer),glyf:new Uint8Array(glyfTable.buffer)}}scale(factors){for(let i=0,ii=this.glyphs.length;i<ii;i++)this.glyphs[i].scale(factors[i])}}class Glyph{constructor({header=null,simple=null,composites=null}){this.header=header,this.simple=simple,this.composites=composites}static parse(pos,glyf){var[read,header]=GlyphHeader.parse(pos,glyf);if(pos+=read,header.numberOfContours<0){for(var composites=[];;){var[n,composite]=CompositeGlyph.parse(pos,glyf);if(pos+=n,composites.push(composite),!(composite.flags&MORE_COMPONENTS))break}return new Glyph({header:header,composites:composites})}read=SimpleGlyph.parse(pos,glyf,header.numberOfContours);return new Glyph({header:header,simple:read})}getSize(){var size;return this.header?(size=this.simple?this.simple.getSize():this.composites.reduce((a,c)=>a+c.getSize(),0),this.header.getSize()+size):0}write(pos,buf){if(!this.header)return 0;var spos=pos;if(pos+=this.header.write(pos,buf),this.simple)pos+=this.simple.write(pos,buf);else for(const composite of this.composites)pos+=composite.write(pos,buf);return pos-spos}scale(factor){if(this.header){var xMiddle=(this.header.xMin+this.header.xMax)/2;if(this.header.scale(xMiddle,factor),this.simple)this.simple.scale(xMiddle,factor);else for(const composite of this.composites)composite.scale(xMiddle,factor)}}}class GlyphHeader{constructor({numberOfContours,xMin,yMin,xMax,yMax}){this.numberOfContours=numberOfContours,this.xMin=xMin,this.yMin=yMin,this.xMax=xMax,this.yMax=yMax}static parse(pos,glyf){return[10,new GlyphHeader({numberOfContours:glyf.getInt16(pos),xMin:glyf.getInt16(pos+2),yMin:glyf.getInt16(pos+4),xMax:glyf.getInt16(pos+6),yMax:glyf.getInt16(pos+8)})]}getSize(){return 10}write(pos,buf){return buf.setInt16(pos,this.numberOfContours),buf.setInt16(pos+2,this.xMin),buf.setInt16(pos+4,this.yMin),buf.setInt16(pos+6,this.xMax),buf.setInt16(pos+8,this.yMax),10}scale(x,factor){this.xMin=Math.round(x+(this.xMin-x)*factor),this.xMax=Math.round(x+(this.xMax-x)*factor)}}class Contour{constructor({flags,xCoordinates,yCoordinates}){this.xCoordinates=xCoordinates,this.yCoordinates=yCoordinates,this.flags=flags}}class SimpleGlyph{constructor({contours,instructions}){this.contours=contours,this.instructions=instructions}static parse(pos,glyf,numberOfContours){var endPtsOfContours=[];for(let i=0;i<numberOfContours;i++){var endPt=glyf.getUint16(pos);pos+=2,endPtsOfContours.push(endPt)}var numberOfPt=endPtsOfContours[numberOfContours-1]+1,instructionLength=glyf.getUint16(pos),instructions=(pos+=2,new Uint8Array(glyf).slice(pos,pos+instructionLength)),flags=(pos+=instructionLength,[]);for(let i=0;i<numberOfPt;pos++,i++){var flag=glyf.getUint8(pos);if(flags.push(flag),flag&REPEAT_FLAG){var count=glyf.getUint8(++pos);flag^=REPEAT_FLAG;for(let m=0;m<count;m++)flags.push(flag);i+=count}}var allXCoordinates=[];let xCoordinates=[],yCoordinates=[],pointFlags=[];var x,y,contours=[];let endPtsOfContoursIndex=0,lastCoordinate=0;for(let i=0;i<numberOfPt;i++){const flag=flags[i];flag&X_SHORT_VECTOR?(x=glyf.getUint8(pos++),lastCoordinate+=flag&X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR?x:-x):flag&X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR||(lastCoordinate+=glyf.getInt16(pos),pos+=2),xCoordinates.push(lastCoordinate),endPtsOfContours[endPtsOfContoursIndex]===i&&(endPtsOfContoursIndex++,allXCoordinates.push(xCoordinates),xCoordinates=[])}lastCoordinate=0;for(let i=endPtsOfContoursIndex=0;i<numberOfPt;i++){const flag=flags[i];flag&Y_SHORT_VECTOR?(y=glyf.getUint8(pos++),lastCoordinate+=flag&Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR?y:-y):flag&Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR||(lastCoordinate+=glyf.getInt16(pos),pos+=2),yCoordinates.push(lastCoordinate),pointFlags.push(flag&ON_CURVE_POINT|flag&OVERLAP_SIMPLE),endPtsOfContours[endPtsOfContoursIndex]===i&&(xCoordinates=allXCoordinates[endPtsOfContoursIndex],endPtsOfContoursIndex++,contours.push(new Contour({flags:pointFlags,xCoordinates:xCoordinates,yCoordinates:yCoordinates})),yCoordinates=[],pointFlags=[])}return new SimpleGlyph({contours:contours,instructions:instructions})}getSize(){let size=2*this.contours.length+2+this.instructions.length,lastX=0,lastY=0;for(const contour of this.contours){size+=contour.flags.length;for(let i=0,ii=contour.xCoordinates.length;i<ii;i++){var x=contour.xCoordinates[i],y=contour.yCoordinates[i],abs=Math.abs(x-lastX);255<abs?size+=2:0<abs&&(size+=1),lastX=x,255<(abs=Math.abs(y-lastY))?size+=2:0<abs&&(size+=1),lastY=y}}return size}write(pos,buf){var spos=pos,xCoordinates=[],yCoordinates=[],flags=[];let lastX=0,lastY=0;for(const contour of this.contours){for(let i=0,ii=contour.xCoordinates.length;i<ii;i++){let flag=contour.flags[i];var x=contour.xCoordinates[i],delta=x-lastX,abs=(0==delta?(flag|=X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR,xCoordinates.push(0)):(abs=Math.abs(delta))<=255?(flag|=0<=delta?X_SHORT_VECTOR|X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR:X_SHORT_VECTOR,xCoordinates.push(abs)):xCoordinates.push(delta),lastX=x,contour.yCoordinates[i]);if(0==(delta=abs-lastY))flag|=Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR,yCoordinates.push(0);else{const abs=Math.abs(delta);abs<=255?(flag|=0<=delta?Y_SHORT_VECTOR|Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR:Y_SHORT_VECTOR,yCoordinates.push(abs)):yCoordinates.push(delta)}lastY=abs,flags.push(flag)}buf.setUint16(pos,xCoordinates.length-1),pos+=2}buf.setUint16(pos,this.instructions.length),pos+=2,this.instructions.length&&(new Uint8Array(buf.buffer,0,buf.buffer.byteLength).set(this.instructions,pos),pos+=this.instructions.length);for(const flag of flags)buf.setUint8(pos++,flag);for(let i=0,ii=xCoordinates.length;i<ii;i++){const x=xCoordinates[i];var flag=flags[i];flag&X_SHORT_VECTOR?buf.setUint8(pos++,x):flag&X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR||(buf.setInt16(pos,x),pos+=2)}for(let i=0,ii=yCoordinates.length;i<ii;i++){const y=yCoordinates[i],flag=flags[i];flag&Y_SHORT_VECTOR?buf.setUint8(pos++,y):flag&Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR||(buf.setInt16(pos,y),pos+=2)}return pos-spos}scale(x,factor){for(const contour of this.contours)if(0!==contour.xCoordinates.length)for(let i=0,ii=contour.xCoordinates.length;i<ii;i++)contour.xCoordinates[i]=Math.round(x+(contour.xCoordinates[i]-x)*factor)}}class CompositeGlyph{constructor({flags,glyphIndex,argument1,argument2,transf,instructions}){this.flags=flags,this.glyphIndex=glyphIndex,this.argument1=argument1,this.argument2=argument2,this.transf=transf,this.instructions=instructions}static parse(pos,glyf){var spos=pos,transf=[];let flags=glyf.getUint16(pos);var instructionLength,glyphIndex=glyf.getUint16(pos+2);pos+=4;let argument1,argument2,instructions=(flags&ARG_1_AND_2_ARE_WORDS?(argument2=flags&ARGS_ARE_XY_VALUES?(argument1=glyf.getInt16(pos),glyf.getInt16(pos+2)):(argument1=glyf.getUint16(pos),glyf.getUint16(pos+2)),pos+=4,flags^=ARG_1_AND_2_ARE_WORDS):(argument2=flags&ARGS_ARE_XY_VALUES?(argument1=glyf.getInt8(pos),glyf.getInt8(pos+1)):(argument1=glyf.getUint8(pos),glyf.getUint8(pos+1)),pos+=2),flags&WE_HAVE_A_SCALE?(transf.push(glyf.getUint16(pos)),pos+=2):flags&WE_HAVE_AN_X_AND_Y_SCALE?(transf.push(glyf.getUint16(pos),glyf.getUint16(pos+2)),pos+=4):flags&WE_HAVE_A_TWO_BY_TWO&&(transf.push(glyf.getUint16(pos),glyf.getUint16(pos+2),glyf.getUint16(pos+4),glyf.getUint16(pos+6)),pos+=8),null);return flags&WE_HAVE_INSTRUCTIONS&&(instructionLength=glyf.getUint16(pos),pos+=2,instructions=new Uint8Array(glyf).slice(pos,pos+instructionLength),pos+=instructionLength),[pos-spos,new CompositeGlyph({flags:flags,glyphIndex:glyphIndex,argument1:argument1,argument2:argument2,transf:transf,instructions:instructions})]}getSize(){let size=4+2*this.transf.length;return this.flags&WE_HAVE_INSTRUCTIONS&&(size+=2+this.instructions.length),size+=2,2&this.flags?-128<=this.argument1&&this.argument1<=127&&-128<=this.argument2&&this.argument2<=127||(size+=2):0<=this.argument1&&this.argument1<=255&&0<=this.argument2&&this.argument2<=255||(size+=2),size}write(pos,buf){var spos=pos;return this.flags&ARGS_ARE_XY_VALUES?-128<=this.argument1&&this.argument1<=127&&-128<=this.argument2&&this.argument2<=127||(this.flags|=ARG_1_AND_2_ARE_WORDS):0<=this.argument1&&this.argument1<=255&&0<=this.argument2&&this.argument2<=255||(this.flags|=ARG_1_AND_2_ARE_WORDS),buf.setUint16(pos,this.flags),buf.setUint16(pos+2,this.glyphIndex),pos+=4,this.flags&ARG_1_AND_2_ARE_WORDS?(this.flags&ARGS_ARE_XY_VALUES?(buf.setInt16(pos,this.argument1),buf.setInt16(pos+2,this.argument2)):(buf.setUint16(pos,this.argument1),buf.setUint16(pos+2,this.argument2)),pos+=4):(buf.setUint8(pos,this.argument1),buf.setUint8(pos+1,this.argument2),pos+=2),this.flags&WE_HAVE_INSTRUCTIONS&&(buf.setUint16(pos,this.instructions.length),pos+=2,this.instructions.length)&&(new Uint8Array(buf.buffer,0,buf.buffer.byteLength).set(this.instructions,pos),pos+=this.instructions.length),pos-spos}scale(x,factor){}}function writeInt16(dest,offset,num){dest[offset]=num>>8&255,dest[offset+1]=255&num}function writeInt32(dest,offset,num){dest[offset]=num>>24&255,dest[offset+1]=num>>16&255,dest[offset+2]=num>>8&255,dest[offset+3]=255&num}function writeData(dest,offset,data){if(data instanceof Uint8Array)dest.set(data,offset);else if("string"==typeof data)for(let i=0,ii=data.length;i<ii;i++)dest[offset++]=255&data.charCodeAt(i);else for(const num of data)dest[offset++]=255&num}const OTF_HEADER_SIZE=12,OTF_TABLE_ENTRY_SIZE=16;class OpenTypeFileBuilder{constructor(sfnt){this.sfnt=sfnt,this.tables=Object.create(null)}static getSearchParams(entriesCount,entrySize){let maxPower2=1,log2=0;for(;(maxPower2^entriesCount)>maxPower2;)maxPower2<<=1,log2++;var searchRange=maxPower2*entrySize;return{range:searchRange,entry:log2,rangeShift:entrySize*entriesCount-searchRange}}toArray(){let sfnt=this.sfnt;var tables=this.tables,tablesNames=Object.keys(tables),numTables=(tablesNames.sort(),tablesNames.length);let i,j,jj,table,tableName,offset=OTF_HEADER_SIZE+numTables*OTF_TABLE_ENTRY_SIZE;var tableOffsets=[offset];for(i=0;i<numTables;i++){var paddedLength=((table=tables[tablesNames[i]]).length+3&-4)>>>0;offset+=paddedLength,tableOffsets.push(offset)}var file=new Uint8Array(offset);for(i=0;i<numTables;i++)table=tables[tablesNames[i]],writeData(file,tableOffsets[i],table);"true"===sfnt&&(sfnt=string32(65536)),file[0]=255&sfnt.charCodeAt(0),file[1]=255&sfnt.charCodeAt(1),file[2]=255&sfnt.charCodeAt(2),file[3]=255&sfnt.charCodeAt(3),writeInt16(file,4,numTables);var searchParams=OpenTypeFileBuilder.getSearchParams(numTables,16);for(writeInt16(file,6,searchParams.range),writeInt16(file,8,searchParams.entry),writeInt16(file,10,searchParams.rangeShift),offset=OTF_HEADER_SIZE,i=0;i<numTables;i++){tableName=tablesNames[i],file[offset]=255&tableName.charCodeAt(0),file[offset+1]=255&tableName.charCodeAt(1),file[offset+2]=255&tableName.charCodeAt(2),file[offset+3]=255&tableName.charCodeAt(3);let checksum=0;for(j=tableOffsets[i],jj=tableOffsets[i+1];j<jj;j+=4){var quad=readUint32(file,j);checksum=checksum+quad>>>0}writeInt32(file,offset+4,checksum),writeInt32(file,offset+8,tableOffsets[i]),writeInt32(file,offset+12,tables[tableName].length),offset+=OTF_TABLE_ENTRY_SIZE}return file}addTable(tag,data){if(tag in this.tables)throw new Error("Table "+tag+" already exists");this.tables[tag]=data}}const HINTING_ENABLED=!1,COMMAND_MAP={hstem:[1],vstem:[3],vmoveto:[4],rlineto:[5],hlineto:[6],vlineto:[7],rrcurveto:[8],callsubr:[10],flex:[12,35],drop:[12,18],endchar:[14],rmoveto:[21],hmoveto:[22],vhcurveto:[30],hvcurveto:[31]};class Type1CharString{constructor(){this.width=0,this.lsb=0,this.flexing=!1,this.output=[],this.stack=[]}convert(encoded,subrs,seacAnalysisEnabled){var sby,num1,flexArgs,count=encoded.length;let error=!1,wx,sbx,subrNumber;for(let i=0;i<count;i++){let value=encoded[i];if(value<32){switch(value=12===value?(value<<8)+encoded[++i]:value){case 1:HINTING_ENABLED?error=this.executeCommand(2,COMMAND_MAP.hstem):this.stack=[];break;case 3:HINTING_ENABLED?error=this.executeCommand(2,COMMAND_MAP.vstem):this.stack=[];break;case 4:if(this.flexing){if(this.stack.length<1){error=!0;break}var dy=this.stack.pop();this.stack.push(0,dy)}else error=this.executeCommand(1,COMMAND_MAP.vmoveto);break;case 5:error=this.executeCommand(2,COMMAND_MAP.rlineto);break;case 6:error=this.executeCommand(1,COMMAND_MAP.hlineto);break;case 7:error=this.executeCommand(1,COMMAND_MAP.vlineto);break;case 8:error=this.executeCommand(6,COMMAND_MAP.rrcurveto);break;case 9:this.stack=[];break;case 10:this.stack.length<1?error=!0:(subrNumber=this.stack.pop(),error=!subrs[subrNumber]||this.convert(subrs[subrNumber],subrs,seacAnalysisEnabled));break;case 11:return error;case 13:this.stack.length<2?error=!0:(wx=this.stack.pop(),sbx=this.stack.pop(),this.lsb=sbx,this.width=wx,this.stack.push(wx,sbx),error=this.executeCommand(2,COMMAND_MAP.hmoveto));break;case 14:this.output.push(COMMAND_MAP.endchar[0]);break;case 21:this.flexing||(error=this.executeCommand(2,COMMAND_MAP.rmoveto));break;case 22:this.flexing?this.stack.push(0):error=this.executeCommand(1,COMMAND_MAP.hmoveto);break;case 30:error=this.executeCommand(4,COMMAND_MAP.vhcurveto);break;case 31:error=this.executeCommand(4,COMMAND_MAP.hvcurveto);break;case 3072:this.stack=[];break;case 3073:HINTING_ENABLED?error=this.executeCommand(2,COMMAND_MAP.vstem):this.stack=[];break;case 3074:HINTING_ENABLED?error=this.executeCommand(2,COMMAND_MAP.hstem):this.stack=[];break;case 3078:error=seacAnalysisEnabled?(dy=this.stack.at(-5),this.seac=this.stack.splice(-4,4),this.seac[0]+=this.lsb-dy,this.executeCommand(0,COMMAND_MAP.endchar)):this.executeCommand(4,COMMAND_MAP.endchar);break;case 3079:this.stack.length<4?error=!0:(this.stack.pop(),wx=this.stack.pop(),sby=this.stack.pop(),sbx=this.stack.pop(),this.lsb=sbx,this.width=wx,this.stack.push(wx,sbx,sby),error=this.executeCommand(3,COMMAND_MAP.rmoveto));break;case 3084:this.stack.length<2?error=!0:(sby=this.stack.pop(),num1=this.stack.pop(),this.stack.push(num1/sby));break;case 3088:this.stack.length<2?error=!0:(subrNumber=this.stack.pop(),num1=this.stack.pop(),0===subrNumber&&3===num1?(flexArgs=this.stack.splice(-17,17),this.stack.push(flexArgs[2]+flexArgs[0],flexArgs[3]+flexArgs[1],flexArgs[4],flexArgs[5],flexArgs[6],flexArgs[7],flexArgs[8],flexArgs[9],flexArgs[10],flexArgs[11],flexArgs[12],flexArgs[13],flexArgs[14]),error=this.executeCommand(13,COMMAND_MAP.flex,!0),this.flexing=!1,this.stack.push(flexArgs[15],flexArgs[16])):1===subrNumber&&0===num1&&(this.flexing=!0));break;case 3089:break;case 3105:this.stack=[];break;default:warn('Unknown type 1 charstring command of "'+value+'"')}if(error)break}else value<=246?value-=139:value=value<=250?256*(value-247)+encoded[++i]+108:value<=254?-256*(value-251)-encoded[++i]-108:(255&encoded[++i])<<24|(255&encoded[++i])<<16|(255&encoded[++i])<<8|(255&encoded[++i])<<0,this.stack.push(value)}return error}executeCommand(howManyArgs,command,keepStack){var stackLength=this.stack.length;if(stackLength<howManyArgs)return!0;var start=stackLength-howManyArgs;for(let i=start;i<stackLength;i++){var value=this.stack[i];Number.isInteger(value)?this.output.push(28,value>>8&255,255&value):this.output.push(255,(value=65536*value|0)>>24&255,value>>16&255,value>>8&255,255&value)}return this.output.push(...command),keepStack?this.stack.splice(start,howManyArgs):this.stack.length=0,!1}}const EEXEC_ENCRYPT_KEY=55665,CHAR_STRS_ENCRYPT_KEY=4330;function isHexDigit(code){return 48<=code&&code<=57||65<=code&&code<=70||97<=code&&code<=102}function decrypt(data,key,discardNumber){if(discardNumber>=data.length)return new Uint8Array(0);let r=0|key,i,j;for(i=0;i<discardNumber;i++)r=52845*(data[i]+r)+22719&65535;var count=data.length-discardNumber,decrypted=new Uint8Array(count);for(i=discardNumber,j=0;j<count;i++,j++){var value=data[i];decrypted[j]=value^r>>8,r=52845*(value+r)+22719&65535}return decrypted}function decryptAscii(data,key,discardNumber){let r=0|key;var count=data.length,decrypted=new Uint8Array(count>>>1);let i,j;for(i=0,j=0;i<count;i++){var digit1=data[i];if(isHexDigit(digit1)){i++;let digit2;for(;i<count&&!isHexDigit(digit2=data[i]);)i++;i<count&&(digit1=parseInt(String.fromCharCode(digit1,digit2),16),decrypted[j++]=digit1^r>>8,r=52845*(digit1+r)+22719&65535)}}return decrypted.slice(discardNumber,j)}function isSpecial(c){return 47===c||91===c||93===c||123===c||125===c||40===c||41===c}class Type1Parser{constructor(stream,encrypted,seacAnalysisEnabled){var isBinary;encrypted&&(isBinary=!((isHexDigit((encrypted=stream.getBytes())[0])||isWhiteSpace(encrypted[0]))&&isHexDigit(encrypted[1])&&isHexDigit(encrypted[2])&&isHexDigit(encrypted[3])&&isHexDigit(encrypted[4])&&isHexDigit(encrypted[5])&&isHexDigit(encrypted[6])&&isHexDigit(encrypted[7])),stream=new Stream((isBinary?decrypt:decryptAscii)(encrypted,EEXEC_ENCRYPT_KEY,4))),this.seacAnalysisEnabled=!!seacAnalysisEnabled,this.stream=stream,this.nextChar()}readNumberArray(){this.getToken();for(var array=[];;){var token=this.getToken();if(null===token||"]"===token||"}"===token)break;array.push(parseFloat(token||0))}return array}readNumber(){var token=this.getToken();return parseFloat(token||0)}readInt(){var token=this.getToken();return 0|parseInt(token||0,10)}readBoolean(){return"true"===this.getToken()?1:0}nextChar(){return this.currentChar=this.stream.getByte()}prevChar(){return this.stream.skip(-2),this.currentChar=this.stream.getByte()}getToken(){let comment=!1,ch=this.currentChar;for(;;){if(-1===ch)return null;if(comment)10!==ch&&13!==ch||(comment=!1);else if(37===ch)comment=!0;else if(!isWhiteSpace(ch))break;ch=this.nextChar()}if(isSpecial(ch))return this.nextChar(),String.fromCharCode(ch);let token="";for(;token+=String.fromCharCode(ch),0<=(ch=this.nextChar())&&!isWhiteSpace(ch)&&!isSpecial(ch););return token}readCharStrings(bytes,lenIV){return-1===lenIV?bytes:decrypt(bytes,CHAR_STRS_ENCRYPT_KEY,lenIV)}extractFontProgram(properties){var glyph,encoded,stream=this.stream,subrs=[],charstrings=[],privateData=Object.create(null),program=(privateData.lenIV=4,{subrs:[],charstrings:[],properties:{privateData:privateData}});let token,length,data,lenIV;for(;null!==(token=this.getToken());)if("/"===token)switch(token=this.getToken()){case"CharStrings":for(this.getToken(),this.getToken(),this.getToken(),this.getToken();;){if(null===(token=this.getToken())||"end"===token)break;"/"===token&&(glyph=this.getToken(),length=this.readInt(),this.getToken(),data=0<length?stream.getBytes(length):new Uint8Array(0),lenIV=program.properties.privateData.lenIV,encoded=this.readCharStrings(data,lenIV),this.nextChar(),"noaccess"===(token=this.getToken())?this.getToken():"/"===token&&this.prevChar(),charstrings.push({glyph:glyph,encoded:encoded}))}break;case"Subrs":for(this.readInt(),this.getToken();"dup"===this.getToken();){var index=this.readInt();length=this.readInt(),this.getToken(),data=0<length?stream.getBytes(length):new Uint8Array(0),lenIV=program.properties.privateData.lenIV;const encoded=this.readCharStrings(data,lenIV);this.nextChar(),"noaccess"===(token=this.getToken())&&this.getToken(),subrs[index]=encoded}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":var blueArray=this.readNumberArray();0<blueArray.length&&blueArray.length%2==0&&HINTING_ENABLED&&(program.properties.privateData[token]=blueArray);break;case"StemSnapH":case"StemSnapV":program.properties.privateData[token]=this.readNumberArray();break;case"StdHW":case"StdVW":program.properties.privateData[token]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":program.properties.privateData[token]=this.readNumber();break;case"ExpansionFactor":program.properties.privateData[token]=this.readNumber()||.06;break;case"ForceBold":program.properties.privateData[token]=this.readBoolean()}for(const{encoded,glyph}of charstrings){var charString=new Type1CharString,error=charString.convert(encoded,subrs,this.seacAnalysisEnabled);let output=charString.output;error&&(output=[14]);error={glyphName:glyph,charstring:output,width:charString.width,lsb:charString.lsb,seac:charString.seac};if(".notdef"===glyph?program.charstrings.unshift(error):program.charstrings.push(error),properties.builtInEncoding){const index=properties.builtInEncoding.indexOf(glyph);-1<index&&void 0===properties.widths[index]&&index>=properties.firstChar&&index<=properties.lastChar&&(properties.widths[index]=charString.width)}}return program}extractFontHeader(properties){let token;for(;null!==(token=this.getToken());)if("/"===token)switch(token=this.getToken()){case"FontMatrix":var matrix=this.readNumberArray();properties.fontMatrix=matrix;break;case"Encoding":matrix=this.getToken();let encoding;if(/^\d+$/.test(matrix)){encoding=[];var size=0|parseInt(matrix,10);this.getToken();for(let j=0;j<size;j++){for(token=this.getToken();"dup"!==token&&"def"!==token;)if(null===(token=this.getToken()))return;if("def"===token)break;var index=this.readInt(),glyph=(this.getToken(),this.getToken());encoding[index]=glyph,this.getToken()}}else encoding=getEncoding(matrix);properties.builtInEncoding=encoding;break;case"FontBBox":var fontBBox=this.readNumberArray();properties.ascent=Math.max(fontBBox[3],fontBBox[1]),properties.descent=Math.min(fontBBox[1],fontBBox[3]),properties.ascentScaled=!0}}}function findBlock(streamBytes,signature,startIndex){var streamBytesLength=streamBytes.length,signatureLength=signature.length,scanLength=streamBytesLength-signatureLength;let i=startIndex,found=!1;for(;i<scanLength;){let j=0;for(;j<signatureLength&&streamBytes[i+j]===signature[j];)j++;if(j>=signatureLength){for(i+=j;i<streamBytesLength&&isWhiteSpace(streamBytes[i]);)i++;found=!0;break}i++}return{found:found,length:i}}function getHeaderBlock(stream,suggestedLength){var EEXEC_SIGNATURE=[101,101,120,101,99],streamStartPos=stream.pos;let headerBytes,headerBytesLength,block;try{headerBytes=stream.getBytes(suggestedLength),headerBytesLength=headerBytes.length}catch{}if(headerBytesLength===suggestedLength&&(block=findBlock(headerBytes,EEXEC_SIGNATURE,suggestedLength-2*EEXEC_SIGNATURE.length)).found&&block.length===suggestedLength)return{stream:new Stream(headerBytes),length:suggestedLength};warn('Invalid "Length1" property in Type1 font -- trying to recover.'),stream.pos=streamStartPos;let actualLength;for(;;){var scanBytes=stream.peekBytes(2048);if(0===(block=findBlock(scanBytes,EEXEC_SIGNATURE,0)).length)break;if(stream.pos+=block.length,block.found){actualLength=stream.pos-streamStartPos;break}}return stream.pos=streamStartPos,actualLength?{stream:new Stream(stream.getBytes(actualLength)),length:actualLength}:(warn('Unable to recover "Length1" property in Type1 font -- using as is.'),{stream:new Stream(stream.getBytes(suggestedLength)),length:suggestedLength})}function getEexecBlock(stream,suggestedLength){stream=stream.getBytes();if(0===stream.length)throw new FormatError("getEexecBlock - no font program found.");return{stream:new Stream(stream),length:stream.length}}class Type1Font{constructor(name,file,properties){let headerBlockLength=properties.length1,eexecBlockLength=properties.length2;var pfbHeader=file.peekBytes(6),pfbHeaderPresent=128===pfbHeader[0]&&1===pfbHeader[1],headerBlock=(pfbHeaderPresent&&(file.skip(6),headerBlockLength=pfbHeader[5]<<24|pfbHeader[4]<<16|pfbHeader[3]<<8|pfbHeader[2]),getHeaderBlock(file,headerBlockLength)),headerBlock=(new Type1Parser(headerBlock.stream,!1,SEAC_ANALYSIS_ENABLED).extractFontHeader(properties),pfbHeaderPresent&&(pfbHeader=file.getBytes(6),eexecBlockLength=pfbHeader[5]<<24|pfbHeader[4]<<16|pfbHeader[3]<<8|pfbHeader[2]),getEexecBlock(file,eexecBlockLength)),data=new Type1Parser(headerBlock.stream,!0,SEAC_ANALYSIS_ENABLED).extractFontProgram(properties);for(const key in data.properties)properties[key]=data.properties[key];pfbHeaderPresent=data.charstrings,pfbHeader=this.getType2Charstrings(pfbHeaderPresent),file=this.getType2Subrs(data.subrs);this.charstrings=pfbHeaderPresent,this.data=this.wrap(name,pfbHeader,this.charstrings,file,properties),this.seacs=this.getSeacs(data.charstrings)}get numGlyphs(){return this.charstrings.length+1}getCharset(){var glyphName,charset=[".notdef"];for({glyphName}of this.charstrings)charset.push(glyphName);return charset}getGlyphMapping(properties){var charstrings=this.charstrings;if(properties.composite){var charCodeToGlyphId=Object.create(null);for(let glyphId=0,charstringsLen=charstrings.length;glyphId<charstringsLen;glyphId++)charCodeToGlyphId[properties.cMap.charCodeOf(glyphId)]=glyphId+1;return charCodeToGlyphId}var glyphNames=[".notdef"];let builtInEncoding,glyphId;for(glyphId=0;glyphId<charstrings.length;glyphId++)glyphNames.push(charstrings[glyphId].glyphName);var encoding=properties.builtInEncoding;if(encoding){builtInEncoding=Object.create(null);for(const charCode in encoding)0<=(glyphId=glyphNames.indexOf(encoding[charCode]))&&(builtInEncoding[charCode]=glyphId)}return type1FontGlyphMapping(properties,builtInEncoding,glyphNames)}hasGlyphId(id){return!(id<0||id>=this.numGlyphs)&&(0===id||0<this.charstrings[id-1].charstring.length)}getSeacs(charstrings){var seacMap=[];for(let i=0,ii=charstrings.length;i<ii;i++){var charstring=charstrings[i];charstring.seac&&(seacMap[i+1]=charstring.seac)}return seacMap}getType2Charstrings(type1Charstrings){var type2Charstrings=[];for(const type1Charstring of type1Charstrings)type2Charstrings.push(type1Charstring.charstring);return type2Charstrings}getType2Subrs(type1Subrs){let bias=0;var count=type1Subrs.length,type2Subrs=(bias=count<1133?107:count<33769?1131:32768,[]);let i;for(i=0;i<bias;i++)type2Subrs.push([11]);for(i=0;i<count;i++)type2Subrs.push(type1Subrs[i]);return type2Subrs}wrap(name,glyphs,charstrings,subrs,properties){var cff=new CFF,topDict=(cff.header=new CFFHeader(1,0,4,4),cff.names=[name],new CFFTopDict),strings=(topDict.setByName("version",391),topDict.setByName("Notice",392),topDict.setByName("FullName",393),topDict.setByName("FamilyName",394),topDict.setByName("Weight",395),topDict.setByName("Encoding",null),topDict.setByName("FontMatrix",properties.fontMatrix),topDict.setByName("FontBBox",properties.bbox),topDict.setByName("charset",null),topDict.setByName("CharStrings",null),topDict.setByName("Private",null),cff.topDict=topDict,new CFFStrings),count=(strings.add("Version 0.11"),strings.add("See original notice"),strings.add(name),strings.add(name),strings.add("Medium"),cff.strings=strings,cff.globalSubrIndex=new CFFIndex,glyphs.length),charsetArray=[".notdef"];let i,ii;for(i=0;i<count;i++){var glyphName=charstrings[i].glyphName;-1===CFFStandardStrings.indexOf(glyphName)&&strings.add(glyphName),charsetArray.push(glyphName)}cff.charset=new CFFCharset(!1,0,charsetArray);var charStringsIndex=new CFFIndex;for(charStringsIndex.add([139,14]),i=0;i<count;i++)charStringsIndex.add(glyphs[i]);cff.charStrings=charStringsIndex;var privateDict=new CFFPrivateDict,fields=(privateDict.setByName("Subrs",null),["BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StemSnapH","StemSnapV","BlueShift","BlueFuzz","BlueScale","LanguageGroup","ExpansionFactor","ForceBold","StdHW","StdVW"]);for(i=0,ii=fields.length;i<ii;i++){var field=fields[i];if(field in properties.privateData){var value=properties.privateData[field];if(Array.isArray(value))for(let j=value.length-1;0<j;j--)value[j]-=value[j-1];privateDict.setByName(field,value)}}cff.topDict.privateDict=privateDict;var subrIndex=new CFFIndex;for(i=0,ii=subrs.length;i<ii;i++)subrIndex.add(subrs[i]);return privateDict.subrsIndex=subrIndex,new CFFCompiler(cff).compile()}}const PRIVATE_USE_AREAS=[[57344,63743],[1048576,1114109]],PDF_GLYPH_SPACE_UNITS=1e3,EXPORT_DATA_PROPERTIES=["ascent","bbox","black","bold","charProcOperatorList","composite","cssFontInfo","data","defaultVMetrics","defaultWidth","descent","fallbackName","fontMatrix","isInvalidPDFjsFont","isType3Font","italic","loadedName","mimetype","missingFile","name","remeasure","subtype","systemFontInfo","type","vertical"],EXPORT_DATA_EXTRA_PROPERTIES=["cMap","defaultEncoding","differences","isMonospace","isSerifFont","isSymbolicFont","seacMap","toFontChar","toUnicode","vmetrics","widths"];function adjustWidths(properties){if(properties.fontMatrix&&properties.fontMatrix[0]!==FONT_IDENTITY_MATRIX[0]){var scale=.001/properties.fontMatrix[0],glyphsWidths=properties.widths;for(const glyph in glyphsWidths)glyphsWidths[glyph]*=scale;properties.defaultWidth*=scale}}function adjustTrueTypeToUnicode(properties,isSymbolicFont,nameRecords){if(!properties.isInternalFont&&!properties.hasIncludedToUnicodeMap&&!properties.hasEncoding&&!(properties.toUnicode instanceof IdentityToUnicodeMap)&&isSymbolicFont&&0!==nameRecords.length&&properties.defaultEncoding!==WinAnsiEncoding){for(const r of nameRecords)if(!isWinNameRecord(r))return;var encoding=WinAnsiEncoding,toUnicode=[],glyphsUnicodeMap=getGlyphsUnicode();for(const charCode in encoding){var glyphName=encoding[charCode];""!==glyphName&&void 0!==(glyphName=glyphsUnicodeMap[glyphName])&&(toUnicode[charCode]=String.fromCharCode(glyphName))}0<toUnicode.length&&properties.toUnicode.amend(toUnicode)}}function adjustType1ToUnicode(properties,builtInEncoding){if(!properties.isInternalFont&&!(properties.hasIncludedToUnicodeMap||builtInEncoding===properties.defaultEncoding||properties.toUnicode instanceof IdentityToUnicodeMap)){var unicode,toUnicode=[],glyphsUnicodeMap=getGlyphsUnicode();for(const charCode in builtInEncoding)properties.hasEncoding&&(properties.baseEncodingName||void 0!==properties.differences[charCode])||-1!==(unicode=getUnicodeForGlyph(builtInEncoding[charCode],glyphsUnicodeMap))&&(toUnicode[charCode]=String.fromCharCode(unicode));0<toUnicode.length&&properties.toUnicode.amend(toUnicode)}}function amendFallbackToUnicode(properties){if(properties.fallbackToUnicode&&!(properties.toUnicode instanceof IdentityToUnicodeMap)){var toUnicode=[];for(const charCode in properties.fallbackToUnicode)properties.toUnicode.has(charCode)||(toUnicode[charCode]=properties.fallbackToUnicode[charCode]);0<toUnicode.length&&properties.toUnicode.amend(toUnicode)}}class fonts_Glyph{constructor(originalCharCode,fontChar,unicode,accent,width,vmetric,operatorListId,isSpace,isInFont){this.originalCharCode=originalCharCode,this.fontChar=fontChar,this.unicode=unicode,this.accent=accent,this.width=width,this.vmetric=vmetric,this.operatorListId=operatorListId,this.isSpace=isSpace,this.isInFont=isInFont}get category(){return shadow(this,"category",getCharUnicodeCategory(this.unicode),!0)}}function int16(b0,b1){return(b0<<8)+b1}function writeSignedInt16(bytes,index,value){bytes[index+1]=value,bytes[index]=value>>>8}function signedInt16(b0,b1){b0=(b0<<8)+b1;return 32768&b0?b0-65536:b0}function writeUint32(bytes,index,value){bytes[index+3]=255&value,bytes[index+2]=value>>>8,bytes[index+1]=value>>>16,bytes[index]=value>>>24}function int32(b0,b1,b2,b3){return(b0<<24)+(b1<<16)+(b2<<8)+b3}function string16(value){return String.fromCharCode(value>>8&255,255&value)}function safeString16(value){return 32767<value?value=32767:value<-32768&&(value=-32768),String.fromCharCode(value>>8&255,255&value)}function isTrueTypeFile(file){file=file.peekBytes(4);return 65536===readUint32(file,0)||"true"===bytesToString(file)}function isTrueTypeCollectionFile(file){return"ttcf"===bytesToString(file.peekBytes(4))}function isOpenTypeFile(file){return"OTTO"===bytesToString(file.peekBytes(4))}function isType1File(file){file=file.peekBytes(2);return 37===file[0]&&33===file[1]||128===file[0]&&1===file[1]}function isCFFFile(file){file=file.peekBytes(4);return 1<=file[0]&&1<=file[3]&&file[3]<=4}function getFontFileType(file,{type,subtype,composite}){let fileType,fileSubtype;return isTrueTypeFile(file)||isTrueTypeCollectionFile(file)?fileType=composite?"CIDFontType2":"TrueType":isOpenTypeFile(file)?fileType=composite?"CIDFontType2":"OpenType":isType1File(file)?fileType=composite?"CIDFontType0":"MMType1"===type?"MMType1":"Type1":fileSubtype=isCFFFile(file)?composite?(fileType="CIDFontType0","CIDFontType0C"):(fileType="MMType1"===type?"MMType1":"Type1","Type1C"):(warn("getFontFileType: Unable to detect correct font file Type/Subtype."),fileType=type,subtype),[fileType,fileSubtype]}function applyStandardFontGlyphMap(map,glyphMap){for(const charCode in glyphMap)map[+charCode]=glyphMap[charCode]}function buildToFontChar(encoding,glyphsUnicodeMap,differences){var toFontChar=[];let unicode;for(let i=0,ii=encoding.length;i<ii;i++)-1!==(unicode=getUnicodeForGlyph(encoding[i],glyphsUnicodeMap))&&(toFontChar[i]=unicode);for(const charCode in differences)-1!==(unicode=getUnicodeForGlyph(differences[charCode],glyphsUnicodeMap))&&(toFontChar[+charCode]=unicode);return toFontChar}function isMacNameRecord(r){return 1===r.platform&&0===r.encoding&&0===r.language}function isWinNameRecord(r){return 3===r.platform&&1===r.encoding&&1033===r.language}function convertCidString(charCode,cid,shouldThrow=!1){switch(cid.length){case 1:return cid.charCodeAt(0);case 2:return cid.charCodeAt(0)<<8|cid.charCodeAt(1)}charCode=`Unsupported CID string (charCode ${charCode}): "${cid}".`;if(shouldThrow)throw new FormatError(charCode);return warn(charCode),cid}function adjustMapping(charCodeToGlyphId,hasGlyph,newGlyphZeroId,toUnicode){var newMap=Object.create(null),toUnicodeExtraMap=new Map,toFontChar=[],usedGlyphIds=new Set;let privateUseAreaIndex=0,nextAvailableFontCharCode=PRIVATE_USE_AREAS[privateUseAreaIndex][0],privateUseOffetEnd=PRIVATE_USE_AREAS[privateUseAreaIndex][1];var originalCharCode,code;for(originalCharCode in charCodeToGlyphId){let glyphId=charCodeToGlyphId[originalCharCode|=0];if(hasGlyph(glyphId)){if(nextAvailableFontCharCode>privateUseOffetEnd){if(++privateUseAreaIndex>=PRIVATE_USE_AREAS.length){warn("Ran out of space in font private use area.");break}nextAvailableFontCharCode=PRIVATE_USE_AREAS[privateUseAreaIndex][0],privateUseOffetEnd=PRIVATE_USE_AREAS[privateUseAreaIndex][1]}var fontCharCode=nextAvailableFontCharCode++;0===glyphId&&(glyphId=newGlyphZeroId);let unicode=toUnicode.get(originalCharCode);!(unicode="string"==typeof unicode?unicode.codePointAt(0):unicode)||(code=unicode,PRIVATE_USE_AREAS[0][0]<=code&&code<=PRIVATE_USE_AREAS[0][1])||PRIVATE_USE_AREAS[1][0]<=code&&code<=PRIVATE_USE_AREAS[1][1]||usedGlyphIds.has(glyphId)||(toUnicodeExtraMap.set(unicode,glyphId),usedGlyphIds.add(glyphId)),newMap[fontCharCode]=glyphId,toFontChar[originalCharCode]=fontCharCode}}return{toFontChar:toFontChar,charCodeToGlyphId:newMap,toUnicodeExtraMap:toUnicodeExtraMap,nextAvailableFontCharCode:nextAvailableFontCharCode}}function getRanges(glyphs,toUnicodeExtraMap,numGlyphs){var codes=[];for(const charCode in glyphs)glyphs[charCode]>=numGlyphs||codes.push({fontCharCode:0|charCode,glyphId:glyphs[charCode]});if(toUnicodeExtraMap)for(var[unicode,glyphId]of toUnicodeExtraMap)glyphId>=numGlyphs||codes.push({fontCharCode:unicode,glyphId:glyphId});0===codes.length&&codes.push({fontCharCode:0,glyphId:0}),codes.sort(function(a,b){return a.fontCharCode-b.fontCharCode});var ranges=[],length=codes.length;for(let n=0;n<length;){var start=codes[n].fontCharCode,codeIndices=[codes[n].glyphId];++n;let end=start;for(;n<length&&end+1===codes[n].fontCharCode&&(codeIndices.push(codes[n].glyphId),++end,++n,65535!==end););ranges.push([start,end,codeIndices])}return ranges}function createCmapTable(glyphs,toUnicodeExtraMap,numGlyphs){var ranges=getRanges(glyphs,toUnicodeExtraMap,numGlyphs),glyphs=65535<ranges.at(-1)[1]?2:1;let cmap="\0\0"+string16(glyphs)+"\0\0"+string32(4+8*glyphs),i,ii,j,jj;for(i=ranges.length-1;0<=i&&!(ranges[i][0]<=65535);--i);var toUnicodeExtraMap=i+1,numGlyphs=(ranges[i][0]<65535&&65535===ranges[i][1]&&(ranges[i][1]=65534),ranges[i][1]<65535?1:0),segCount=toUnicodeExtraMap+numGlyphs,searchParams=OpenTypeFileBuilder.getSearchParams(segCount,2);let startCount="",endCount="",idDeltas="",idRangeOffsets="",glyphsIds="",bias=0,range,start,end,codes;for(i=0,ii=toUnicodeExtraMap;i<ii;i++){range=ranges[i],start=range[0],end=range[1],startCount+=string16(start),endCount+=string16(end),codes=range[2];let contiguous=!0;for(j=1,jj=codes.length;j<jj;++j)if(codes[j]!==codes[j-1]+1){contiguous=!1;break}if(contiguous){var startCode=codes[0];idDeltas+=string16(startCode-start&65535),idRangeOffsets+=string16(0)}else{startCode=2*(segCount-i)+2*bias;for(bias+=end-start+1,idDeltas+=string16(0),idRangeOffsets+=string16(startCode),j=0,jj=codes.length;j<jj;++j)glyphsIds+=string16(codes[j])}}0<numGlyphs&&(endCount+="ÿÿ",startCount+="ÿÿ",idDeltas+="\0",idRangeOffsets+="\0\0");toUnicodeExtraMap="\0\0"+string16(2*segCount)+string16(searchParams.range)+string16(searchParams.entry)+string16(searchParams.rangeShift)+endCount+"\0\0"+startCount+idDeltas+idRangeOffsets+glyphsIds;let format31012="",header31012="";if(1<glyphs){for(cmap+="\0\0\n"+string32(4+8*glyphs+4+toUnicodeExtraMap.length),format31012="",i=0,ii=ranges.length;i<ii;i++){range=ranges[i],start=range[0];let code=(codes=range[2])[0];for(j=1,jj=codes.length;j<jj;++j)codes[j]!==codes[j-1]+1&&(end=range[0]+j-1,format31012+=string32(start)+string32(end)+string32(code),start=end+1,code=codes[j]);format31012+=string32(start)+string32(range[1])+string32(code)}header31012="\0\f\0\0"+string32(format31012.length+16)+"\0\0\0\0"+string32(format31012.length/12)}return cmap+"\0"+string16(toUnicodeExtraMap.length+4)+toUnicodeExtraMap+header31012+format31012}function validateOS2Table(os2,file){file.pos=(file.start||0)+os2.offset;var version=file.getUint16(),selection=(file.skip(60),file.getUint16());return!(version<4&&768&selection||(version=file.getUint16(),file.getUint16()<version)||(file.skip(6),0===file.getUint16())||(os2.data[8]=os2.data[9]=0))}function createOS2Table(properties,charstrings,override){override||={unitsPerEm:0,yMax:0,yMin:0,ascent:0,descent:0};let ulUnicodeRange1=0,ulUnicodeRange2=0,ulUnicodeRange3=0,ulUnicodeRange4=0,firstCharIndex=null,lastCharIndex=0,position=-1;if(charstrings){for(var code in charstrings)if(code|=0,(firstCharIndex>code||!firstCharIndex)&&(firstCharIndex=code),lastCharIndex<code&&(lastCharIndex=code),(position=getUnicodeRangeFor(code,position))<32)ulUnicodeRange1|=1<<position;else if(position<64)ulUnicodeRange2|=1<<position-32;else if(position<96)ulUnicodeRange3|=1<<position-64;else{if(!(position<123))throw new FormatError("Unicode ranges Bits > 123 are reserved for internal usage");ulUnicodeRange4|=1<<position-96}65535<lastCharIndex&&(lastCharIndex=65535)}else firstCharIndex=0,lastCharIndex=255;var charstrings=properties.bbox||[0,0,0,0],unitsPerEm=override.unitsPerEm||1/(properties.fontMatrix||FONT_IDENTITY_MATRIX)[0],unitsPerEm=properties.ascentScaled?1:unitsPerEm/PDF_GLYPH_SPACE_UNITS,typoAscent=override.ascent||Math.round(unitsPerEm*(properties.ascent||charstrings[3]));let typoDescent=override.descent||Math.round(unitsPerEm*(properties.descent||charstrings[1]));0<typoDescent&&0<properties.descent&&charstrings[1]<0&&(typoDescent=-typoDescent);unitsPerEm=override.yMax||typoAscent,charstrings=-override.yMin||-typoDescent;return"\0$ô\0\0\0»\0\0\0»\0\0ß\x001\0\0\0\0"+String.fromCharCode(properties.fixedPitch?9:0)+"\0\0\0\0\0\0"+string32(ulUnicodeRange1)+string32(ulUnicodeRange2)+string32(ulUnicodeRange3)+string32(ulUnicodeRange4)+"*21*"+string16(properties.italicAngle?1:0)+string16(firstCharIndex||properties.firstChar)+string16(lastCharIndex||properties.lastChar)+string16(typoAscent)+string16(typoDescent)+"\0d"+string16(unitsPerEm)+string16(charstrings)+"\0\0\0\0\0\0\0\0"+string16(properties.xHeight)+string16(properties.capHeight)+string16(0)+string16(firstCharIndex||properties.firstChar)+"\0"}function createPostTable(properties){return"\0\0\0"+string32(Math.floor(65536*properties.italicAngle))+"\0\0\0\0"+string32(properties.fixedPitch?1:0)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createPostscriptName(name){return name.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63)}function createNameTable(name,proto){var strings=[(proto=proto||[[],[]])[0][0]||"Original licence",proto[0][1]||name,proto[0][2]||"Unknown",proto[0][3]||"uniqueID",proto[0][4]||name,proto[0][5]||"Version 0.11",proto[0][6]||createPostscriptName(name),proto[0][7]||"Unknown",proto[0][8]||"Unknown",proto[0][9]||"Unknown"],stringsUnicode=[];let i,ii,j,jj,str;for(i=0,ii=strings.length;i<ii;i++){str=proto[1][i]||strings[i];var strBufUnicode=[];for(j=0,jj=str.length;j<jj;j++)strBufUnicode.push(string16(str.charCodeAt(j)));stringsUnicode.push(strBufUnicode.join(""))}var names=[strings,stringsUnicode],platforms=["\0","\0"],encodings=["\0\0","\0"],languages=["\0\0","\t"],name=strings.length*platforms.length;let nameTable="\0\0"+string16(name)+string16(12*name+6),strOffset=0;for(i=0,ii=platforms.length;i<ii;i++){var strs=names[i];for(j=0,jj=strs.length;j<jj;j++){str=strs[j];var nameRecord=platforms[i]+encodings[i]+languages[i]+string16(j)+string16(str.length)+string16(strOffset);nameTable+=nameRecord,strOffset+=str.length}}return nameTable+=strings.join("")+stringsUnicode.join("")}class Font{constructor(name,file,properties){this.name=name,this.psName=null,this.mimetype=null,this.disableFontFace=!1,this.loadedName=properties.loadedName,this.isType3Font=properties.isType3Font,this.missingFile=!1,this.cssFontInfo=properties.cssFontInfo,this._charsCache=Object.create(null),this._glyphCache=Object.create(null);let isSerifFont=!!(properties.flags&FontFlags.Serif);if(!isSerifFont&&!properties.isSimulatedFlags){var baseName=name.replaceAll(/[,_]/g,"-").split("-",1)[0],serifFonts=getSerifFonts();for(const namePart of baseName.split("+"))if(serifFonts[namePart]){isSerifFont=!0;break}}this.isSerifFont=isSerifFont,this.isSymbolicFont=!!(properties.flags&FontFlags.Symbolic),this.isMonospace=!!(properties.flags&FontFlags.FixedPitch);let{type,subtype}=properties;this.type=type,this.subtype=subtype,this.systemFontInfo=properties.systemFontInfo;baseName=name.match(/^InvalidPDFjsFont_(.*)_\d+$/);if(this.isInvalidPDFjsFont=!!baseName,this.isInvalidPDFjsFont?this.fallbackName=baseName[1]:this.isMonospace?this.fallbackName="monospace":this.isSerifFont?this.fallbackName="serif":this.fallbackName="sans-serif",this.systemFontInfo?.guessFallback&&(this.systemFontInfo.guessFallback=!1,this.systemFontInfo.css+=","+this.fallbackName),this.differences=properties.differences,this.widths=properties.widths,this.defaultWidth=properties.defaultWidth,this.composite=properties.composite,this.cMap=properties.cMap,this.capHeight=properties.capHeight/PDF_GLYPH_SPACE_UNITS,this.ascent=properties.ascent/PDF_GLYPH_SPACE_UNITS,this.descent=properties.descent/PDF_GLYPH_SPACE_UNITS,this.lineHeight=this.ascent-this.descent,this.fontMatrix=properties.fontMatrix,this.bbox=properties.bbox,this.defaultEncoding=properties.defaultEncoding,this.toUnicode=properties.toUnicode,this.toFontChar=[],"Type3"===properties.type)for(let charCode=0;charCode<256;charCode++)this.toFontChar[charCode]=this.differences[charCode]||properties.defaultEncoding[charCode];else if(this.cidEncoding=properties.cidEncoding||"",this.vertical=!!properties.vertical,this.vertical&&(this.vmetrics=properties.vmetrics,this.defaultVMetrics=properties.defaultVMetrics),!file||file.isEmpty)file&&warn('Font file is empty in "'+name+'" ('+this.loadedName+")"),this.fallbackToSystemFont(properties);else{[type,subtype]=getFontFileType(file,properties),type===this.type&&subtype===this.subtype||info("Inconsistent font file Type/SubType, expected: "+`${this.type}/${this.subtype} but found: ${type}/${subtype}.`);let data;try{switch(type){case"MMType1":info("MMType1 font ("+name+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var cff="Type1C"===subtype||"CIDFontType0C"===subtype?new CFFFont(file,properties):new Type1Font(name,file,properties);adjustWidths(properties),data=this.convert(name,cff,properties);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype",data=this.checkAndRepair(name,file,properties),this.isOpenType&&(adjustWidths(properties),type="OpenType");break;default:throw new FormatError(`Font ${type} is not supported`)}}catch(e){return warn(e),void this.fallbackToSystemFont(properties)}amendFallbackToUnicode(properties),this.data=data,this.type=type,this.subtype=subtype,this.fontMatrix=properties.fontMatrix,this.widths=properties.widths,this.defaultWidth=properties.defaultWidth,this.toUnicode=properties.toUnicode,this.seacMap=properties.seacMap}}get renderer(){return shadow(this,"renderer",FontRendererFactory.create(this,SEAC_ANALYSIS_ENABLED))}exportData(extraProperties=!1){var extraProperties=extraProperties?[...EXPORT_DATA_PROPERTIES,...EXPORT_DATA_EXTRA_PROPERTIES]:EXPORT_DATA_PROPERTIES,data=Object.create(null);let property,value;for(property of extraProperties)void 0!==(value=this[property])&&(data[property]=value);return data}fallbackToSystemFont(properties){this.missingFile=!0;var{name,type}=this,fontName=normalizeFontName(name),stdFontMap=getStdFontMap(),nonStdFontMap=getNonStdFontMap(),isStandardFont=!!stdFontMap[fontName],isMappedToStandardFont=!(!nonStdFontMap[fontName]||!stdFontMap[nonStdFontMap[fontName]]),fontName=stdFontMap[fontName]||nonStdFontMap[fontName]||fontName,stdFontMap=getFontBasicMetrics()[fontName],nonStdFontMap=(stdFontMap&&(isNaN(this.ascent)&&(this.ascent=stdFontMap.ascent/PDF_GLYPH_SPACE_UNITS),isNaN(this.descent)&&(this.descent=stdFontMap.descent/PDF_GLYPH_SPACE_UNITS),isNaN(this.capHeight))&&(this.capHeight=stdFontMap.capHeight/PDF_GLYPH_SPACE_UNITS),this.bold=/bold/gi.test(fontName),this.italic=/oblique|italic/gi.test(fontName),this.black=/Black/g.test(name),/Narrow/g.test(name));if(this.remeasure=(!isStandardFont||nonStdFontMap)&&0<Object.keys(this.widths).length,(isStandardFont||isMappedToStandardFont)&&"CIDFontType2"===type&&this.cidEncoding.startsWith("Identity-")){const cidToGidMap=properties.cidToGidMap,map=[];if(applyStandardFontGlyphMap(map,getGlyphMapForStandardFonts()),/Arial-?Black/i.test(name)?applyStandardFontGlyphMap(map,getSupplementalGlyphMapForArialBlack()):/Calibri/i.test(name)&&applyStandardFontGlyphMap(map,getSupplementalGlyphMapForCalibri()),cidToGidMap){for(const charCode in map){var cid=map[charCode];void 0!==cidToGidMap[cid]&&(map[+charCode]=cidToGidMap[cid])}cidToGidMap.length!==this.toUnicode.length&&properties.hasIncludedToUnicodeMap&&this.toUnicode instanceof IdentityToUnicodeMap&&this.toUnicode.forEach(function(charCode,unicodeCharCode){var cid=map[charCode];void 0===cidToGidMap[cid]&&(map[+charCode]=unicodeCharCode)})}this.toUnicode instanceof IdentityToUnicodeMap||this.toUnicode.forEach(function(charCode,unicodeCharCode){map[+charCode]=unicodeCharCode}),this.toFontChar=map,this.toUnicode=new ToUnicodeMap(map)}else if(/Symbol/i.test(fontName))this.toFontChar=buildToFontChar(SymbolSetEncoding,getGlyphsUnicode(),this.differences);else if(/Dingbats/i.test(fontName))this.toFontChar=buildToFontChar(ZapfDingbatsEncoding,getDingbatsGlyphsUnicode(),this.differences);else if(isStandardFont){const map=buildToFontChar(this.defaultEncoding,getGlyphsUnicode(),this.differences);"CIDFontType2"!==type||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof IdentityToUnicodeMap||this.toUnicode.forEach(function(charCode,unicodeCharCode){map[+charCode]=unicodeCharCode}),this.toFontChar=map}else{const glyphsUnicodeMap=getGlyphsUnicode(),map=[];this.toUnicode.forEach((charCode,unicodeCharCode)=>{var unicode;this.composite||-1!==(unicode=getUnicodeForGlyph(this.differences[charCode]||this.defaultEncoding[charCode],glyphsUnicodeMap))&&(unicodeCharCode=unicode),map[+charCode]=unicodeCharCode}),this.composite&&this.toUnicode instanceof IdentityToUnicodeMap&&/Tahoma|Verdana/i.test(name)&&applyStandardFontGlyphMap(map,getGlyphMapForStandardFonts()),this.toFontChar=map}amendFallbackToUnicode(properties),this.loadedName=fontName.split("-",1)[0]}checkAndRepair(name,font,properties){const VALID_TABLES=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(file,numTables){var tables=Object.create(null);tables["OS/2"]=null,tables.cmap=null,tables.head=null,tables.hhea=null,tables.hmtx=null,tables.maxp=null,tables.name=null,tables.post=null;for(let i=0;i<numTables;i++){var table=function(file){var tag=file.getString(4),checksum=file.getInt32()>>>0,offset=file.getInt32()>>>0,length=file.getInt32()>>>0,previousPosition=file.pos,data=(file.pos=file.start||0,file.skip(offset),file.getBytes(length));file.pos=previousPosition,"head"===tag&&(data[8]=data[9]=data[10]=data[11]=0,data[17]|=32);return{tag:tag,checksum:checksum,length:length,offset:offset,data:data}}(file);VALID_TABLES.includes(table.tag)&&0!==table.length&&(tables[table.tag]=table)}return tables}function readOpenTypeHeader(ttf){return{version:ttf.getString(4),numTables:ttf.getUint16(),searchRange:ttf.getUint16(),entrySelector:ttf.getUint16(),rangeShift:ttf.getUint16()}}function readTrueTypeCollectionData(ttc,fontName){var{numFonts,offsetTable}=function(ttc){var ttcTag=ttc.getString(4),majorVersion=(assert("ttcf"===ttcTag,"Must be a TrueType Collection font."),ttc.getUint16()),minorVersion=ttc.getUint16(),numFonts=ttc.getInt32()>>>0,offsetTable=[];for(let i=0;i<numFonts;i++)offsetTable.push(ttc.getInt32()>>>0);var header={ttcTag:ttcTag,majorVersion:majorVersion,minorVersion:minorVersion,numFonts:numFonts,offsetTable:offsetTable};switch(majorVersion){case 1:return header;case 2:return header.dsigTag=ttc.getInt32()>>>0,header.dsigLength=ttc.getInt32()>>>0,header.dsigOffset=ttc.getInt32()>>>0,header}throw new FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`)}(ttc),fontNameParts=fontName.split("+");let fallbackData;for(let i=0;i<numFonts;i++){ttc.pos=(ttc.start||0)+offsetTable[i];var potentialHeader=readOpenTypeHeader(ttc),potentialTables=readTables(ttc,potentialHeader.numTables);if(!potentialTables.name)throw new FormatError('TrueType Collection font must contain a "name" table.');var[nameTable]=readNameTable(potentialTables.name);for(let j=0,jj=nameTable.length;j<jj;j++)for(let k=0,kk=nameTable[j].length;k<kk;k++){var nameEntry=nameTable[j][k]?.replaceAll(/\s/g,"");if(nameEntry){if(nameEntry===fontName)return{header:potentialHeader,tables:potentialTables};if(!(fontNameParts.length<2))for(const part of fontNameParts)nameEntry===part&&(fallbackData={name:part,header:potentialHeader,tables:potentialTables})}}}if(fallbackData)return warn(`TrueType Collection does not contain "${fontName}" font, `+`falling back to "${fallbackData.name}" font instead.`),{header:fallbackData.header,tables:fallbackData.tables};throw new FormatError(`TrueType Collection does not contain "${fontName}" font.`)}function sanitizeGlyphLocations(loca,glyf,numGlyphs,isGlyphLocationsLong,hintsValid,dupFirstEntry,maxSizeOfInstructions){let itemSize,itemDecode,itemEncode;itemEncode=isGlyphLocationsLong?(itemSize=4,itemDecode=function(data,offset){return data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3]},function(data,offset,value){data[offset]=value>>>24&255,data[offset+1]=value>>16&255,data[offset+2]=value>>8&255,data[offset+3]=255&value}):(itemSize=2,itemDecode=function(data,offset){return data[offset]<<9|data[offset+1]<<1},function(data,offset,value){data[offset]=value>>9&255,data[offset+1]=value>>1&255});var numGlyphsOut=dupFirstEntry?numGlyphs+1:numGlyphs,isGlyphLocationsLong=itemSize*(1+numGlyphsOut),locaData=new Uint8Array(isGlyphLocationsLong),oldGlyfData=(locaData.set(loca.data.subarray(0,isGlyphLocationsLong)),loca.data=locaData,glyf.data),oldGlyfDataLength=oldGlyfData.length,newGlyfData=new Uint8Array(oldGlyfDataLength);let i,j;var locaEntries=[];for(i=0,j=0;i<numGlyphs+1;i++,j+=itemSize){let offset=itemDecode(locaData,j);offset>oldGlyfDataLength&&(offset=oldGlyfDataLength),locaEntries.push({index:i,offset:offset,endOffset:0})}for(locaEntries.sort((a,b)=>a.offset-b.offset),i=0;i<numGlyphs;i++)locaEntries[i].endOffset=locaEntries[i+1].offset;for(locaEntries.sort((a,b)=>a.index-b.index),i=0;i<numGlyphs;i++){var{offset,endOffset}=locaEntries[i];if(0!==offset||0!==endOffset)break;offset=locaEntries[i+1].offset;if(0!==offset){locaEntries[i].endOffset=offset;break}}var isGlyphLocationsLong=locaEntries.at(-2),missingGlyphs=(0!==isGlyphLocationsLong.offset&&0===isGlyphLocationsLong.endOffset&&(isGlyphLocationsLong.endOffset=oldGlyfDataLength),Object.create(null));let writeOffset=0;for(itemEncode(locaData,0,writeOffset),i=0,j=itemSize;i<numGlyphs;i++,j+=itemSize){var glyphProfile=function(source,sourceStart,sourceEnd,dest,destStart,hintsValid){var glyphProfile={length:0,sizeOfInstructions:0};if(!(sourceStart<0||sourceStart>=source.length||sourceEnd>source.length||sourceEnd-sourceStart<=12)){var glyf=source.subarray(sourceStart,sourceEnd),source=signedInt16(glyf[2],glyf[3]),sourceStart=signedInt16(glyf[4],glyf[5]),sourceEnd=signedInt16(glyf[6],glyf[7]),yMax=signedInt16(glyf[8],glyf[9]),contoursCount=(sourceEnd<source&&(writeSignedInt16(glyf,2,sourceEnd),writeSignedInt16(glyf,6,source)),yMax<sourceStart&&(writeSignedInt16(glyf,4,yMax),writeSignedInt16(glyf,8,sourceStart)),signedInt16(glyf[0],glyf[1]));if(contoursCount<0)contoursCount<-1||(dest.set(glyf,destStart),glyphProfile.length=glyf.length);else{let i,j=10,flagsCount=0;for(i=0;i<contoursCount;i++){var endPoint=glyf[j]<<8|glyf[j+1];flagsCount=1+endPoint,j+=2}sourceEnd=j,source=glyf[j]<<8|glyf[j+1],yMax=(glyphProfile.sizeOfInstructions=source,j+=2+source);let coordinatesLength=0;for(i=0;i<flagsCount;i++){var flag=glyf[j++];192&flag&&(glyf[j-1]=63&flag);let xLength=2,yLength=(2&flag?xLength=1:16&flag&&(xLength=0),2);4&flag?yLength=1:32&flag&&(yLength=0);var xyLength=xLength+yLength;coordinatesLength+=xyLength,8&flag&&(0===(flag=glyf[j++])&&(glyf[j-1]^=8),i+=flag,coordinatesLength+=flag*xyLength)}if(0!==coordinatesLength){let glyphDataLength=j+coordinatesLength;glyphDataLength>glyf.length||(!hintsValid&&0<source?(dest.set(glyf.subarray(0,sourceEnd),destStart),dest.set([0,0],destStart+sourceEnd),dest.set(glyf.subarray(yMax,glyphDataLength),destStart+sourceEnd+2),glyphDataLength-=source,3<glyf.length-glyphDataLength&&(glyphDataLength=glyphDataLength+3&-4),glyphProfile.length=glyphDataLength):3<glyf.length-glyphDataLength?(glyphDataLength=glyphDataLength+3&-4,dest.set(glyf.subarray(0,glyphDataLength),destStart),glyphProfile.length=glyphDataLength):(dest.set(glyf,destStart),glyphProfile.length=glyf.length))}}}return glyphProfile}(oldGlyfData,locaEntries[i].offset,locaEntries[i].endOffset,newGlyfData,writeOffset,hintsValid),newLength=glyphProfile.length;0===newLength&&(missingGlyphs[i]=!0),glyphProfile.sizeOfInstructions>maxSizeOfInstructions&&(maxSizeOfInstructions=glyphProfile.sizeOfInstructions),writeOffset+=newLength,itemEncode(locaData,j,writeOffset)}if(0===writeOffset){var simpleGlyph=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(i=0,j=itemSize;i<numGlyphsOut;i++,j+=itemSize)itemEncode(locaData,j,simpleGlyph.length);glyf.data=simpleGlyph}else dupFirstEntry?(isGlyphLocationsLong=itemDecode(locaData,itemSize),newGlyfData.length>isGlyphLocationsLong+writeOffset?glyf.data=newGlyfData.subarray(0,isGlyphLocationsLong+writeOffset):(glyf.data=new Uint8Array(isGlyphLocationsLong+writeOffset),glyf.data.set(newGlyfData.subarray(0,writeOffset))),glyf.data.set(newGlyfData.subarray(0,isGlyphLocationsLong),writeOffset),itemEncode(loca.data,locaData.length-itemSize,writeOffset+isGlyphLocationsLong)):glyf.data=newGlyfData.subarray(0,writeOffset);return{missingGlyphs:missingGlyphs,maxSizeOfInstructions:maxSizeOfInstructions}}function readNameTable(nameTable){var start=(font.start||0)+nameTable.offset,names=(font.pos=start,[[],[]]),records=[],nameTable=nameTable.length,end=start+nameTable,format=font.getUint16();if(!(0!==format||nameTable<6)){var numRecords=font.getUint16(),stringsStart=font.getUint16();let i,ii;for(i=0;i<numRecords&&font.pos+12<=end;i++){var r={platform:font.getUint16(),encoding:font.getUint16(),language:font.getUint16(),name:font.getUint16(),length:font.getUint16(),offset:font.getUint16()};(isMacNameRecord(r)||isWinNameRecord(r))&&records.push(r)}for(i=0,ii=records.length;i<ii;i++){var record=records[i];if(!(record.length<=0)){var pos=start+stringsStart+record.offset;if(!(pos+record.length>end)){font.pos=pos;pos=record.name;if(record.encoding){let str="";for(let j=0,jj=record.length;j<jj;j+=2)str+=String.fromCharCode(font.getUint16());names[1][pos]=str}else names[0][pos]=font.getString(record.length)}}}}return[names,records]}const TTOpsStackDeltas=[0,0,0,0,0,0,0,0,-2,-2,-2,-2,0,0,-2,-5,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,-1,-1,1,-1,-999,0,1,0,-1,-2,0,-1,-2,-1,-1,0,-1,-1,0,0,-999,-999,-1,-1,-1,-1,-2,-999,-2,-2,-999,0,-2,-2,0,0,-2,0,-2,0,0,0,-2,-1,-1,1,1,0,0,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,0,-999,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-2,-999,-999,-999,-999,-999,-1,-1,-2,-2,0,0,0,0,-1,-1,-999,-2,-2,0,0,-1,-2,-2,0,0,0,-1,-1,-1,-2];function sanitizeTTProgram(table,ttContext){let data=table.data,i=0,j,n,b,funcId,pc,lastEndf=0,lastDeff=0;var stack=[],callstack=[],functionsCalled=[];let tooComplexToFollowFunctions=ttContext.tooComplexToFollowFunctions,inFDEF=!1,ifLevel=0,inELSE=0;for(var ii=data.length;i<ii;){var op=data[i++];if(64===op)if(n=data[i++],inFDEF||inELSE)i+=n;else for(j=0;j<n;j++)stack.push(data[i++]);else if(65===op)if(n=data[i++],inFDEF||inELSE)i+=2*n;else for(j=0;j<n;j++)b=data[i++],stack.push(b<<8|data[i++]);else if(176==(248&op))if(n=op-176+1,inFDEF||inELSE)i+=n;else for(j=0;j<n;j++)stack.push(data[i++]);else if(184==(248&op))if(n=op-184+1,inFDEF||inELSE)i+=2*n;else for(j=0;j<n;j++)b=data[i++],stack.push(b<<8|data[i++]);else if(43!==op||tooComplexToFollowFunctions)if(44!==op||tooComplexToFollowFunctions)if(45===op)if(inFDEF)inFDEF=!1,lastEndf=i;else{if(!(pc=callstack.pop()))return warn("TT: ENDF bad stack"),void(ttContext.hintsValid=!1);funcId=functionsCalled.pop(),data=pc.data,i=pc.i,ttContext.functionsStackDeltas[funcId]=stack.length-pc.stackTop}else 137===op?((inFDEF||inELSE)&&(warn("TT: nested IDEFs not allowed"),tooComplexToFollowFunctions=!0),inFDEF=!0,lastDeff=i):88===op?++ifLevel:27===op?inELSE=ifLevel:89===op?(inELSE===ifLevel&&(inELSE=0),--ifLevel):28!==op||inFDEF||inELSE||0<(offset=stack.at(-1))&&(i+=offset-1);else(inFDEF||inELSE)&&(warn("TT: nested FDEFs not allowed"),tooComplexToFollowFunctions=!0),inFDEF=!0,lastDeff=i,funcId=stack.pop(),ttContext.functionsDefined[funcId]={data:data,i:i};else if(!inFDEF&&!inELSE)if(funcId=stack.at(-1),isNaN(funcId))info("TT: CALL empty stack (or invalid entry).");else if(ttContext.functionsUsed[funcId]=!0,funcId in ttContext.functionsStackDeltas){var offset=stack.length+ttContext.functionsStackDeltas[funcId];if(offset<0)return warn("TT: CALL invalid functions stack delta."),void(ttContext.hintsValid=!1);stack.length=offset}else if(funcId in ttContext.functionsDefined&&!functionsCalled.includes(funcId)){if(callstack.push({data:data,i:i,stackTop:stack.length-1}),functionsCalled.push(funcId),!(pc=ttContext.functionsDefined[funcId]))return warn("TT: CALL non-existent function"),void(ttContext.hintsValid=!1);data=pc.data,i=pc.i}if(!inFDEF&&!inELSE){let stackDelta=0;for(op<=142?stackDelta=TTOpsStackDeltas[op]:192<=op&&op<=223?stackDelta=-1:224<=op&&(stackDelta=-2),113<=op&&op<=117&&(n=stack.pop(),isNaN(n)||(stackDelta=2*-n));stackDelta<0&&0<stack.length;)stack.pop(),stackDelta++;for(;0<stackDelta;)stack.push(NaN),stackDelta--}}ttContext.tooComplexToFollowFunctions=tooComplexToFollowFunctions;var content=[data];i>data.length&&content.push(new Uint8Array(i-data.length)),lastDeff>lastEndf&&(warn("TT: complementing a missing function tail"),content.push(new Uint8Array([34,45]))),function(table,content){if(1<content.length){let newLength=0,j,jj;for(j=0,jj=content.length;j<jj;j++)newLength+=content[j].length;newLength=newLength+3&-4;var result=new Uint8Array(newLength);let pos=0;for(j=0,jj=content.length;j<jj;j++)result.set(content[j],pos),pos+=content[j].length;table.data=result,table.length=newLength}}(table,content)}font=new Stream(new Uint8Array(font.getBytes()));let header,tables;let cff,cffFile;var ttcData=!(tables=isTrueTypeCollectionFile(font)?(ttcData=readTrueTypeCollectionData(font,this.name),header=ttcData.header,ttcData.tables):(header=readOpenTypeHeader(font),readTables(font,header.numTables)))["CFF "];if(ttcData){if(!tables.loca)throw new FormatError('Required "loca" table is not found');tables.glyf||(warn('Required "glyf" table is not found -- trying to recover.'),tables.glyf={tag:"glyf",data:new Uint8Array(0)}),this.isOpenType=!1}else{var isComposite=properties.composite&&(0<properties.cidToGidMap?.length||!(properties.cMap instanceof IdentityCMap));if("OTTO"===header.version&&!isComposite||!tables.head||!tables.hhea||!tables.maxp||!tables.post)return cffFile=new Stream(tables["CFF "].data),cff=new CFFFont(cffFile,properties),adjustWidths(properties),this.convert(name,cff,properties);delete tables.glyf,delete tables.loca,delete tables.fpgm,delete tables.prep,delete tables["cvt "],this.isOpenType=!0}if(!tables.maxp)throw new FormatError('Required "maxp" table is not found');font.pos=(font.start||0)+tables.maxp.offset;let version=font.getInt32();const numGlyphs=font.getUint16();if(65536!==version&&20480!==version){if(6===tables.maxp.length)version=20480;else{if(!(32<=tables.maxp.length))throw new FormatError('"maxp" table has a wrong version number');version=65536}writeUint32(tables.maxp.data,0,version)}if(properties.scaleFactors?.length===numGlyphs&&ttcData){var scaleFactors=properties["scaleFactors"],isComposite=int16(tables.head.data[50],tables.head.data[51]),glyphs=new GlyfTable({glyfTable:tables.glyf.data,isGlyphLocationsLong:isComposite,locaTable:tables.loca.data,numGlyphs:numGlyphs}),{glyf:glyphs,loca,isLocationLong}=(glyphs.scale(scaleFactors),glyphs.write()),metrics=(tables.glyf.data=glyphs,tables.loca.data=loca,isLocationLong!==!!isComposite&&(tables.head.data[50]=0,tables.head.data[51]=isLocationLong?1:0),tables.hmtx.data);for(let i=0;i<numGlyphs;i++){var j=4*i,advanceWidth=Math.round(scaleFactors[i]*int16(metrics[j],metrics[1+j])),advanceWidth=(metrics[j]=advanceWidth>>8&255,metrics[1+j]=255&advanceWidth,Math.round(scaleFactors[i]*signedInt16(metrics[2+j],metrics[3+j])));writeSignedInt16(metrics,2+j,advanceWidth)}}let numGlyphsOut=numGlyphs+1,dupFirstEntry=!0,maxFunctionDefs=(65535<numGlyphsOut&&(dupFirstEntry=!1,numGlyphsOut=numGlyphs,warn("Not enough space in glyfs to duplicate first glyph.")),0),maxSizeOfInstructions=0;65536<=version&&32<=tables.maxp.length&&(font.pos+=8,2<font.getUint16()&&(tables.maxp.data[14]=0,tables.maxp.data[15]=2),font.pos+=4,maxFunctionDefs=font.getUint16(),font.pos+=4,maxSizeOfInstructions=font.getUint16()),tables.maxp.data[4]=numGlyphsOut>>8,tables.maxp.data[5]=255&numGlyphsOut;glyphs=function(fpgm,prep,cvt,maxFunctionDefs){var ttContext={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};return fpgm&&sanitizeTTProgram(fpgm,ttContext),prep&&sanitizeTTProgram(prep,ttContext),fpgm&&function(ttContext,maxFunctionDefs){if(!ttContext.tooComplexToFollowFunctions)if(ttContext.functionsDefined.length>maxFunctionDefs)warn("TT: more functions defined than expected"),ttContext.hintsValid=!1;else for(let j=0,jj=ttContext.functionsUsed.length;j<jj;j++){if(j>maxFunctionDefs)return warn("TT: invalid function id: "+j),ttContext.hintsValid=!1;if(ttContext.functionsUsed[j]&&!ttContext.functionsDefined[j])return warn("TT: undefined function: "+j),ttContext.hintsValid=!1}}(ttContext,maxFunctionDefs),cvt&&1&cvt.length&&((prep=new Uint8Array(cvt.length+1)).set(cvt.data),cvt.data=prep),ttContext.hintsValid}(tables.fpgm,tables.prep,tables["cvt "],maxFunctionDefs);if(glyphs||(delete tables.fpgm,delete tables.prep,delete tables["cvt "]),!function(file,header,metrics,headTable,numGlyphs,dupFirstEntry){if(header){file.pos=(file.start||0)+header.offset,file.pos+=4,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2;var caretOffset=file.getUint16();file.pos+=8,file.pos+=2;let numOfMetrics=file.getUint16();0===caretOffset||2&int16(headTable.data[44],headTable.data[45])||(header.data[22]=0,header.data[23]=0),numOfMetrics>numGlyphs&&(info(`The numOfMetrics (${numOfMetrics}) should not be `+`greater than the numGlyphs (${numGlyphs}).`),numOfMetrics=numGlyphs,header.data[34]=(65280&numOfMetrics)>>8,header.data[35]=255&numOfMetrics);file=numGlyphs-numOfMetrics-(metrics.length-4*numOfMetrics>>1);0<file&&((caretOffset=new Uint8Array(metrics.length+2*file)).set(metrics.data),dupFirstEntry&&(caretOffset[metrics.length]=metrics.data[2],caretOffset[metrics.length+1]=metrics.data[3]),metrics.data=caretOffset)}else metrics&&(metrics.data=null)}(font,tables.hhea,tables.hmtx,tables.head,numGlyphsOut,dupFirstEntry),!tables.head)throw new FormatError('Required "head" table is not found');!function(head,numGlyphs,locaLength){var version=int32((head=head.data)[0],head[1],head[2],head[3]);if(version>>16!=1&&(info("Attempting to fix invalid version in head table: "+version),head[0]=0,head[1]=1,head[2]=0,head[3]=0),(version=int16(head[50],head[51]))<0||1<version){info("Attempting to fix invalid indexToLocFormat in head table: "+version);numGlyphs=numGlyphs+1;if(locaLength===numGlyphs<<1)head[50]=0,head[51]=0;else{if(locaLength!==numGlyphs<<2)throw new FormatError("Could not fix indexToLocFormat: "+version);head[50]=0,head[51]=1}}}(tables.head,numGlyphs,ttcData?tables.loca.length:0);let missingGlyphs=Object.create(null);if(ttcData){const isGlyphLocationsLong=int16(tables.head.data[50],tables.head.data[51]);loca=sanitizeGlyphLocations(tables.loca,tables.glyf,numGlyphs,isGlyphLocationsLong,glyphs,dupFirstEntry,maxSizeOfInstructions);missingGlyphs=loca.missingGlyphs,65536<=version&&32<=tables.maxp.length&&(tables.maxp.data[26]=loca.maxSizeOfInstructions>>8,tables.maxp.data[27]=255&loca.maxSizeOfInstructions)}if(!tables.hhea)throw new FormatError('Required "hhea" table is not found');0===tables.hhea.data[10]&&0===tables.hhea.data[11]&&(tables.hhea.data[10]=255,tables.hhea.data[11]=255);isComposite={unitsPerEm:int16(tables.head.data[18],tables.head.data[19]),yMax:signedInt16(tables.head.data[42],tables.head.data[43]),yMin:signedInt16(tables.head.data[38],tables.head.data[39]),ascent:signedInt16(tables.hhea.data[4],tables.hhea.data[5]),descent:signedInt16(tables.hhea.data[6],tables.hhea.data[7]),lineGap:signedInt16(tables.hhea.data[8],tables.hhea.data[9])};this.ascent=isComposite.ascent/isComposite.unitsPerEm,this.descent=isComposite.descent/isComposite.unitsPerEm,this.lineGap=isComposite.lineGap/isComposite.unitsPerEm,this.cssFontInfo?.lineHeight?(this.lineHeight=this.cssFontInfo.metrics.lineHeight,this.lineGap=this.cssFontInfo.metrics.lineGap):this.lineHeight=this.ascent-this.descent+this.lineGap,tables.post&&function(post,propertiesObj,maxpNumGlyphs){var start=(font.start||0)+post.offset,post=(font.pos=start,post.length),end=start+post,version=font.getInt32();font.skip(28);let glyphNames,valid=!0,i;switch(version){case 65536:glyphNames=MacStandardGlyphOrdering;break;case 131072:var numGlyphs=font.getUint16();if(numGlyphs!==maxpNumGlyphs)valid=!1;else{var glyphNameIndexes=[];for(i=0;i<numGlyphs;++i){var index=font.getUint16();if(32768<=index){valid=!1;break}glyphNameIndexes.push(index)}if(valid){for(var customNames=[],strBuf=[];font.pos<end;){var stringLength=font.getByte();for(strBuf.length=stringLength,i=0;i<stringLength;++i)strBuf[i]=String.fromCharCode(font.getByte());customNames.push(strBuf.join(""))}for(glyphNames=[],i=0;i<numGlyphs;++i){var j=glyphNameIndexes[i];j<258?glyphNames.push(MacStandardGlyphOrdering[j]):glyphNames.push(customNames[j-258])}}}break;case 196608:break;default:warn("Unknown/unsupported post table version "+version),valid=!1,propertiesObj.defaultEncoding&&(glyphNames=propertiesObj.defaultEncoding)}propertiesObj.glyphNames=glyphNames,valid}(tables.post,properties,numGlyphs),tables.post={tag:"post",data:createPostTable(properties)};const charCodeToGlyphId=[];function hasGlyph(glyphId){return!missingGlyphs[glyphId]}if(properties.composite){const cidToGidMap=properties.cidToGidMap||[],isCidToGidMapEmpty=0===cidToGidMap.length;properties.cMap.forEach(function(charCode,cid){if(65535<(cid="string"==typeof cid?convertCidString(charCode,cid,!0):cid))throw new FormatError("Max size of CID is 65,535");let glyphId=-1;isCidToGidMapEmpty?glyphId=cid:void 0!==cidToGidMap[cid]&&(glyphId=cidToGidMap[cid]),0<=glyphId&&glyphId<numGlyphs&&hasGlyph(glyphId)&&(charCodeToGlyphId[charCode]=glyphId)})}else{var glyphName,isLocationLong=function(cmap,file,isSymbolicFont,hasEncoding){if(!cmap)return warn("No cmap table available."),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};let segment,start=(file.start||0)+cmap.offset;file.pos=start,file.skip(2);var numTables=file.getUint16();let potentialTable,canBreak=!1;for(let i=0;i<numTables;i++){var nextBytes,platformId=file.getUint16(),encodingId=file.getUint16(),offset=file.getInt32()>>>0;let useTable=!1;if(potentialTable?.platformId!==platformId||potentialTable?.encodingId!==encodingId){if(0!==platformId||0!==encodingId&&1!==encodingId&&3!==encodingId)if(1===platformId&&0===encodingId)useTable=!0;else if(3!==platformId||1!==encodingId||!hasEncoding&&potentialTable){if(isSymbolicFont&&3===platformId&&0===encodingId){let correctlySorted=useTable=!0;(correctlySorted=i<numTables-1&&int16((nextBytes=file.peekBytes(2))[0],nextBytes[1])<platformId?!1:correctlySorted)&&(canBreak=!0)}}else useTable=!0,isSymbolicFont||(canBreak=!0);else useTable=!0;if(useTable&&(potentialTable={platformId:platformId,encodingId:encodingId,offset:offset}),canBreak)break}}if(potentialTable&&(file.pos=start+potentialTable.offset),!potentialTable||-1===file.peekByte())return warn("Could not find a preferred cmap table."),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};cmap=file.getUint16();let hasShortCmap=!1;var mappings=[];let j,glyphId;if(0===cmap){for(file.skip(4),j=0;j<256;j++){var index=file.getByte();index&&mappings.push({charCode:j,glyphId:index})}hasShortCmap=!0}else if(2===cmap){file.skip(4);var subHeaderKeys=[];let maxSubHeaderKey=0;for(let i=0;i<256;i++){var subHeaderKey=file.getUint16()>>3;subHeaderKeys.push(subHeaderKey),maxSubHeaderKey=Math.max(subHeaderKey,maxSubHeaderKey)}var subHeaders=[];for(let i=0;i<=maxSubHeaderKey;i++)subHeaders.push({firstCode:file.getUint16(),entryCount:file.getUint16(),idDelta:signedInt16(file.getByte(),file.getByte()),idRangePos:file.pos+file.getUint16()});for(let i=0;i<256;i++)if(0===subHeaderKeys[i])file.pos=subHeaders[0].idRangePos+2*i,glyphId=file.getUint16(),mappings.push({charCode:i,glyphId:glyphId});else{var s=subHeaders[subHeaderKeys[i]];for(j=0;j<s.entryCount;j++){var charCode=(i<<8)+j+s.firstCode;file.pos=s.idRangePos+2*j,0!==(glyphId=file.getUint16())&&(glyphId=(glyphId+s.idDelta)%65536),mappings.push({charCode:charCode,glyphId:glyphId})}}}else if(4===cmap){file.skip(4);var segCount=file.getUint16()>>1,segments=(file.skip(6),[]);let segIndex;for(segIndex=0;segIndex<segCount;segIndex++)segments.push({end:file.getUint16()});for(file.skip(2),segIndex=0;segIndex<segCount;segIndex++)segments[segIndex].start=file.getUint16();for(segIndex=0;segIndex<segCount;segIndex++)segments[segIndex].delta=file.getUint16();let offsetsCount=0,offsetIndex;for(segIndex=0;segIndex<segCount;segIndex++){segment=segments[segIndex];var rangeOffset=file.getUint16();rangeOffset?(offsetIndex=(rangeOffset>>1)-(segCount-segIndex),segment.offsetIndex=offsetIndex,offsetsCount=Math.max(offsetsCount,offsetIndex+segment.end-segment.start+1)):segment.offsetIndex=-1}var offsets=[];for(j=0;j<offsetsCount;j++)offsets.push(file.getUint16());for(segIndex=0;segIndex<segCount;segIndex++){segment=segments[segIndex],start=segment.start;var end=segment.end,delta=segment.delta;for(offsetIndex=segment.offsetIndex,j=start;j<=end;j++)65535!==j&&(glyphId=(glyphId=offsetIndex<0?j:offsets[offsetIndex+j-start])+delta&65535,mappings.push({charCode:j,glyphId:glyphId}))}}else if(6===cmap){file.skip(4);var firstCode=file.getUint16(),entryCount=file.getUint16();for(j=0;j<entryCount;j++){glyphId=file.getUint16();const charCode=firstCode+j;mappings.push({charCode:charCode,glyphId:glyphId})}}else{if(12!==cmap)return warn("cmap table has unsupported format: "+cmap),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};file.skip(10);var nGroups=file.getInt32()>>>0;for(j=0;j<nGroups;j++){var startCharCode=file.getInt32()>>>0,endCharCode=file.getInt32()>>>0;let glyphCode=file.getInt32()>>>0;for(let charCode=startCharCode;charCode<=endCharCode;charCode++)mappings.push({charCode:charCode,glyphId:glyphCode++})}}mappings.sort(function(a,b){return a.charCode-b.charCode});for(let i=1;i<mappings.length;i++)mappings[i-1].charCode===mappings[i].charCode&&(mappings.splice(i,1),i--);return{platformId:potentialTable.platformId,encodingId:potentialTable.encodingId,mappings:mappings,hasShortCmap:hasShortCmap}}(tables.cmap,font,this.isSymbolicFont,properties.hasEncoding),cmapPlatformId=isLocationLong.platformId,cmapEncodingId=isLocationLong.encodingId,cmapMappings=isLocationLong.mappings;let baseEncoding=[],forcePostTable=!1;if(!properties.hasEncoding||"MacRomanEncoding"!==properties.baseEncodingName&&"WinAnsiEncoding"!==properties.baseEncodingName||(baseEncoding=getEncoding(properties.baseEncodingName)),properties.hasEncoding&&!this.isSymbolicFont&&(3===cmapPlatformId&&1===cmapEncodingId||1===cmapPlatformId&&0===cmapEncodingId)){var glyphsUnicodeMap=getGlyphsUnicode();for(let charCode=0;charCode<256;charCode++){let glyphName;if(glyphName=(void 0!==this.differences[charCode]?this.differences:baseEncoding.length&&""!==baseEncoding[charCode]?baseEncoding:StandardEncoding)[charCode]){var standardGlyphName=recoverGlyphName(glyphName,glyphsUnicodeMap);let unicodeOrCharCode;if(3===cmapPlatformId&&1===cmapEncodingId?unicodeOrCharCode=glyphsUnicodeMap[standardGlyphName]:1===cmapPlatformId&&0===cmapEncodingId&&(unicodeOrCharCode=MacRomanEncoding.indexOf(standardGlyphName)),void 0===unicodeOrCharCode)if(properties.glyphNames||!properties.hasIncludedToUnicodeMap||this.toUnicode instanceof IdentityToUnicodeMap||(standardGlyphName=this.toUnicode.get(charCode))&&(unicodeOrCharCode=standardGlyphName.codePointAt(0)),void 0===unicodeOrCharCode)continue;for(const mapping of cmapMappings)if(mapping.charCode===unicodeOrCharCode){charCodeToGlyphId[charCode]=mapping.glyphId;break}}}}else if(0===cmapPlatformId){for(const mapping of cmapMappings)charCodeToGlyphId[mapping.charCode]=mapping.glyphId;forcePostTable=!0}else if(3===cmapPlatformId&&0===cmapEncodingId)for(const mapping of cmapMappings){let charCode=mapping.charCode;61440<=charCode&&charCode<=61695&&(charCode&=255),charCodeToGlyphId[charCode]=mapping.glyphId}else for(const mapping of cmapMappings)charCodeToGlyphId[mapping.charCode]=mapping.glyphId;if(properties.glyphNames&&(baseEncoding.length||this.differences.length))for(let i=0;i<256;++i)(forcePostTable||void 0===charCodeToGlyphId[i])&&(glyphName=this.differences[i]||baseEncoding[i])&&0<(glyphName=properties.glyphNames.indexOf(glyphName))&&hasGlyph(glyphName)&&(charCodeToGlyphId[i]=glyphName)}0===charCodeToGlyphId.length&&(charCodeToGlyphId[0]=0);let glyphZeroId=numGlyphsOut-1;if(dupFirstEntry||(glyphZeroId=0),properties.cssFontInfo||(glyphs=adjustMapping(charCodeToGlyphId,hasGlyph,glyphZeroId,this.toUnicode),this.toFontChar=glyphs.toFontChar,tables.cmap={tag:"cmap",data:createCmapTable(glyphs.charCodeToGlyphId,glyphs.toUnicodeExtraMap,numGlyphsOut)},tables["OS/2"]&&validateOS2Table(tables["OS/2"],font))||(tables["OS/2"]={tag:"OS/2",data:createOS2Table(properties,glyphs.charCodeToGlyphId,isComposite)}),!ttcData)try{cffFile=new Stream(tables["CFF "].data);var parser=new CFFParser(cffFile,properties,SEAC_ANALYSIS_ENABLED),compiler=((cff=parser.parse()).duplicateFirstGlyph(),new CFFCompiler(cff));tables["CFF "].data=compiler.compile()}catch{warn("Failed to compile font "+properties.loadedName)}tables.name?([loca,isLocationLong]=readNameTable(tables.name),tables.name.data=createNameTable(name,loca),this.psName=loca[0][6]||null,properties.composite||adjustTrueTypeToUnicode(properties,this.isSymbolicFont,isLocationLong)):tables.name={tag:"name",data:createNameTable(this.name)};var builder=new OpenTypeFileBuilder(header.version);for(const tableTag in tables)builder.addTable(tableTag,tables[tableTag].data);return builder.toArray()}convert(fontName,font,properties){properties.fixedPitch=!1,properties.builtInEncoding&&adjustType1ToUnicode(properties,properties.builtInEncoding);let glyphZeroId=1;font instanceof CFFFont&&(glyphZeroId=font.numGlyphs-1);var mapping=font.getGlyphMapping(properties);let newMapping=null,newCharCodeToGlyphId=mapping,toUnicodeExtraMap=null;properties.cssFontInfo||(newMapping=adjustMapping(mapping,font.hasGlyphId.bind(font),glyphZeroId,this.toUnicode),this.toFontChar=newMapping.toFontChar,newCharCodeToGlyphId=newMapping.charCodeToGlyphId,toUnicodeExtraMap=newMapping.toUnicodeExtraMap);const numGlyphs=font.numGlyphs;function createCharCode(charCodeToGlyphId,glyphId){for(const charCode in charCodeToGlyphId)if(glyphId===charCodeToGlyphId[charCode])return 0|charCode;return newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode]=glyphId,newMapping.nextAvailableFontCharCode++}var seacs=font.seacs;if(newMapping&&SEAC_ANALYSIS_ENABLED&&seacs?.length){var glyphId,matrix=properties.fontMatrix||FONT_IDENTITY_MATRIX,charset=font.getCharset(),seacMap=Object.create(null);for(glyphId in seacs){var seac=seacs[glyphId|=0],baseGlyphName=StandardEncoding[seac[2]],accentGlyphName=StandardEncoding[seac[3]],baseGlyphId=charset.indexOf(baseGlyphName),accentGlyphId=charset.indexOf(accentGlyphName);if(!(baseGlyphId<0||accentGlyphId<0)){var accentOffset={x:seac[0]*matrix[0]+seac[1]*matrix[2]+matrix[4],y:seac[0]*matrix[1]+seac[1]*matrix[3]+matrix[5]},baseGlyphName=function(charCodeToGlyphId,glyphId){let charCodes=null;for(const charCode in charCodeToGlyphId)glyphId===charCodeToGlyphId[charCode]&&(charCodes||=[]).push(0|charCode);return charCodes}(mapping,glyphId);if(baseGlyphName)for(const charCode of baseGlyphName){var charCodeToGlyphId=newMapping.charCodeToGlyphId,baseFontCharCode=createCharCode(charCodeToGlyphId,baseGlyphId),charCodeToGlyphId=createCharCode(charCodeToGlyphId,accentGlyphId);seacMap[charCode]={baseFontCharCode:baseFontCharCode,accentFontCharCode:charCodeToGlyphId,accentOffset:accentOffset}}}}properties.seacMap=seacMap}var unitsPerEm=1/(properties.fontMatrix||FONT_IDENTITY_MATRIX)[0],builder=new OpenTypeFileBuilder("OTTO");return builder.addTable("CFF ",font.data),builder.addTable("OS/2",createOS2Table(properties,newCharCodeToGlyphId)),builder.addTable("cmap",createCmapTable(newCharCodeToGlyphId,toUnicodeExtraMap,numGlyphs)),builder.addTable("head","\0\0\0\0\0\0\0\0\0\0_<õ\0\0"+safeString16(unitsPerEm)+"\0\0\0\0\v~'\0\0\0\0\v~'\0\0"+safeString16(properties.descent)+"ÿ"+safeString16(properties.ascent)+string16(properties.italicAngle?2:0)+"\0\0\0\0\0\0\0"),builder.addTable("hhea","\0\0\0"+safeString16(properties.ascent)+safeString16(properties.descent)+"\0\0ÿÿ\0\0\0\0\0\0"+safeString16(properties.capHeight)+safeString16(Math.tan(properties.italicAngle)*properties.xHeight)+"\0\0\0\0\0\0\0\0\0\0\0\0"+string16(numGlyphs)),builder.addTable("hmtx",function(){var charstring,charstrings=font.charstrings,cffWidths=font.cff?font.cff.widths:null;let hmtx="\0\0\0\0";for(let i=1,ii=numGlyphs;i<ii;i++){let width=0;charstrings?(charstring=charstrings[i-1],width="width"in charstring?charstring.width:0):cffWidths&&(width=Math.ceil(cffWidths[i]||0)),hmtx+=string16(width)+string16(0)}return hmtx}()),builder.addTable("maxp","\0\0P\0"+string16(numGlyphs)),builder.addTable("name",createNameTable(fontName)),builder.addTable("post",createPostTable(properties)),builder.toArray()}get spaceWidth(){let width;for(const glyphName of["space","minus","one","i","I"]){if(glyphName in this.widths){width=this.widths[glyphName];break}var glyphUnicode=getGlyphsUnicode()[glyphName];let charcode=0;if((charcode=!(charcode=this.composite&&this.cMap.contains(glyphUnicode)&&"string"==typeof(charcode=this.cMap.lookup(glyphUnicode))?convertCidString(glyphUnicode,charcode):charcode)&&this.toUnicode?this.toUnicode.charCodeOf(glyphUnicode):charcode)<=0&&(charcode=glyphUnicode),width=this.widths[charcode])break}return shadow(this,"spaceWidth",width||this.defaultWidth)}_charToGlyph(charcode,isSpace=!1){var glyph=this._glyphCache[charcode];if(glyph?.isSpace===isSpace)return glyph;let fontCharCode,width,operatorListId,widthCode=charcode;this.cMap?.contains(charcode)&&"string"==typeof(widthCode=this.cMap.lookup(charcode))&&(widthCode=convertCidString(charcode,widthCode)),"number"!=typeof(width=this.widths[widthCode])&&(width=this.defaultWidth);var glyphName,vmetric=this.vmetrics?.[widthCode];let unicode=this.toUnicode.get(charcode)||charcode,isInFont=("number"==typeof unicode&&(unicode=String.fromCharCode(unicode)),void 0!==this.toFontChar[charcode]),accent=(fontCharCode=this.toFontChar[charcode]||charcode,this.missingFile&&(glyphName=this.differences[charcode]||this.defaultEncoding[charcode],fontCharCode=mapSpecialUnicodeValues(fontCharCode=".notdef"!==glyphName&&""!==glyphName||"Type1"!==this.type?fontCharCode:32)),this.isType3Font&&(operatorListId=fontCharCode),null),fontChar=(this.seacMap?.[charcode]&&(isInFont=!0,glyphName=this.seacMap[charcode],fontCharCode=glyphName.baseFontCharCode,accent={fontChar:String.fromCodePoint(glyphName.accentFontCharCode),offset:glyphName.accentOffset}),"");return"number"==typeof fontCharCode&&(fontCharCode<=1114111?fontChar=String.fromCodePoint(fontCharCode):warn("charToGlyph - invalid fontCharCode: "+fontCharCode)),glyph=new fonts_Glyph(charcode,fontChar,unicode,accent,width,vmetric,operatorListId,isSpace,isInFont),this._glyphCache[charcode]=glyph}charsToGlyphs(chars){var glyphs=this._charsCache[chars];if(glyphs)return glyphs;if(glyphs=[],this.cMap){var c=Object.create(null),ii=chars.length;let i=0;for(;i<ii;){this.cMap.readCharCode(chars,i,c);var{charcode,length}=c,charcode=(i+=length,this._charToGlyph(charcode,1===length&&32===chars.charCodeAt(i-1)));glyphs.push(charcode)}}else for(let i=0,ii=chars.length;i<ii;++i){const charcode=chars.charCodeAt(i),glyph=this._charToGlyph(charcode,32===charcode);glyphs.push(glyph)}return this._charsCache[chars]=glyphs}getCharPositions(chars){var positions=[];if(this.cMap){var c=Object.create(null);let i=0;for(;i<chars.length;){this.cMap.readCharCode(chars,i,c);var length=c.length;positions.push([i,i+length]),i+=length}}else for(let i=0,ii=chars.length;i<ii;++i)positions.push([i,i+1]);return positions}get glyphCacheValues(){return Object.values(this._glyphCache)}encodeString(str){const buffers=[];var currentBuf=[],getCharCode=this.toUnicode instanceof IdentityToUnicodeMap?unicode=>this.toUnicode.charCodeOf(unicode):unicode=>this.toUnicode.charCodeOf(String.fromCodePoint(unicode));for(let i=0,ii=str.length;i<ii;i++){var unicode=str.codePointAt(i);if(55295<unicode&&(unicode<57344||65533<unicode)&&i++,this.toUnicode){var charCode=getCharCode(unicode);if(-1!==charCode){buffers.length%2==1&&(buffers.push(currentBuf.join("")),currentBuf.length=0);for(let j=(this.cMap?this.cMap.getCharCodeLength(charCode):1)-1;0<=j;j--)currentBuf.push(String.fromCharCode(charCode>>8*j&255));continue}}buffers.length%2!=1&&(buffers.push(currentBuf.join("")),currentBuf.length=0),currentBuf.push(String.fromCodePoint(unicode))}return buffers.push(currentBuf.join("")),buffers}}class ErrorFont{constructor(error){this.error=error,this.loadedName="g_font_error",this.missingFile=!0}charsToGlyphs(){return[]}encodeString(chars){return[chars]}exportData(extraProperties=0){return{error:this.error}}}const ShadingType={FUNCTION_BASED:1,AXIAL:2,RADIAL:3,FREE_FORM_MESH:4,LATTICE_FORM_MESH:5,COONS_PATCH_MESH:6,TENSOR_PATCH_MESH:7};class Pattern{constructor(){unreachable("Cannot initialize Pattern.")}static parseShading(shading,xref,res,pdfFunctionFactory,localColorSpaceCache){var dict=shading instanceof BaseStream?shading.dict:shading,type=dict.get("ShadingType");try{switch(type){case ShadingType.AXIAL:case ShadingType.RADIAL:return new RadialAxialShading(dict,xref,res,pdfFunctionFactory,localColorSpaceCache);case ShadingType.FREE_FORM_MESH:case ShadingType.LATTICE_FORM_MESH:case ShadingType.COONS_PATCH_MESH:case ShadingType.TENSOR_PATCH_MESH:return new MeshShading(shading,xref,res,pdfFunctionFactory,localColorSpaceCache);default:throw new FormatError("Unsupported ShadingType: "+type)}}catch(ex){if(ex instanceof MissingDataException)throw ex;return warn(ex),new DummyShading}}}class BaseShading{static SMALL_NUMBER=1e-6;constructor(){this.constructor===BaseShading&&unreachable("Cannot initialize BaseShading.")}getIR(){unreachable("Abstract method `getIR` called.")}}class RadialAxialShading extends BaseShading{constructor(dict,xref,resources,pdfFunctionFactory,localColorSpaceCache){super(),this.coordsArr=dict.getArray("Coords"),this.shadingType=dict.get("ShadingType");var y2,r2,cs=ColorSpace.parse({cs:dict.getRaw("CS")||dict.getRaw("ColorSpace"),xref:xref,resources:resources,pdfFunctionFactory:pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache}),xref=dict.getArray("BBox");this.bbox=Array.isArray(xref)&&4===xref.length?Util.normalizeRect(xref):null;let t0=0,t1=1,extendStart=(dict.has("Domain")&&(resources=dict.getArray("Domain"),t0=resources[0],t1=resources[1]),!1),extendEnd=!1;dict.has("Extend")&&(localColorSpaceCache=dict.getArray("Extend"),extendStart=localColorSpaceCache[0],extendEnd=localColorSpaceCache[1]),this.shadingType!==ShadingType.RADIAL||extendStart&&extendEnd||([xref,resources,localColorSpaceCache,x2,y2,r2]=this.coordsArr,localColorSpaceCache<=r2+(xref=Math.hypot(xref-x2,resources-y2))&&r2<=localColorSpaceCache+xref&&warn("Unsupported radial gradient.")),this.extendStart=extendStart,this.extendEnd=extendEnd;var x2=dict.getRaw("Function"),fn=pdfFunctionFactory.createFromArray(x2),step=(t1-t0)/840,colorStops=this.colorStops=[];if(t0>=t1||step<=0)info("Bad shading domain.");else{var color=new Float32Array(cs.numComps),ratio=new Float32Array(1);let rgbColor,iBase=0,rgbBase=(ratio[0]=t0,fn(ratio,0,color,0),cs.getRgb(color,0));resources=Util.makeHexColor(rgbBase[0],rgbBase[1],rgbBase[2]);colorStops.push([0,resources]);let iPrev=1,rgbPrev=(ratio[0]=t0+step,fn(ratio,0,color,0),cs.getRgb(color,0)),maxSlopeR=rgbPrev[0]-rgbBase[0]+1,maxSlopeG=rgbPrev[1]-rgbBase[1]+1,maxSlopeB=rgbPrev[2]-rgbBase[2]+1,minSlopeR=rgbPrev[0]-rgbBase[0]-1,minSlopeG=rgbPrev[1]-rgbBase[1]-1,minSlopeB=rgbPrev[2]-rgbBase[2]-1;for(let i=2;i<840;i++){ratio[0]=t0+i*step,fn(ratio,0,color,0),rgbColor=cs.getRgb(color,0);var run=i-iBase,run=(maxSlopeR=Math.min(maxSlopeR,(rgbColor[0]-rgbBase[0]+1)/run),maxSlopeG=Math.min(maxSlopeG,(rgbColor[1]-rgbBase[1]+1)/run),maxSlopeB=Math.min(maxSlopeB,(rgbColor[2]-rgbBase[2]+1)/run),minSlopeR=Math.max(minSlopeR,(rgbColor[0]-rgbBase[0]-1)/run),minSlopeG=Math.max(minSlopeG,(rgbColor[1]-rgbBase[1]-1)/run),minSlopeB=Math.max(minSlopeB,(rgbColor[2]-rgbBase[2]-1)/run),minSlopeR<=maxSlopeR&&minSlopeG<=maxSlopeG&&minSlopeB<=maxSlopeB);if(!run){const cssColor=Util.makeHexColor(rgbPrev[0],rgbPrev[1],rgbPrev[2]);colorStops.push([iPrev/840,cssColor]),maxSlopeR=rgbColor[0]-rgbPrev[0]+1,maxSlopeG=rgbColor[1]-rgbPrev[1]+1,maxSlopeB=rgbColor[2]-rgbPrev[2]+1,minSlopeR=rgbColor[0]-rgbPrev[0]-1,minSlopeG=rgbColor[1]-rgbPrev[1]-1,minSlopeB=rgbColor[2]-rgbPrev[2]-1,iBase=iPrev,rgbBase=rgbPrev}iPrev=i,rgbPrev=rgbColor}const cssColor=Util.makeHexColor(rgbPrev[0],rgbPrev[1],rgbPrev[2]);colorStops.push([1,cssColor]);let background="transparent";dict.has("Background")&&(rgbColor=cs.getRgb(dict.get("Background"),0),background=Util.makeHexColor(rgbColor[0],rgbColor[1],rgbColor[2])),extendStart||(colorStops.unshift([0,background]),colorStops[1][0]+=BaseShading.SMALL_NUMBER),extendEnd||(colorStops.at(-1)[0]-=BaseShading.SMALL_NUMBER,colorStops.push([1,background])),this.colorStops=colorStops}}getIR(){var coordsArr=this.coordsArr,shadingType=this.shadingType;let type,p0,p1,r0,r1;return shadingType===ShadingType.AXIAL?(p0=[coordsArr[0],coordsArr[1]],p1=[coordsArr[2],coordsArr[3]],r0=null,r1=null,type="axial"):shadingType===ShadingType.RADIAL?(p0=[coordsArr[0],coordsArr[1]],p1=[coordsArr[3],coordsArr[4]],r0=coordsArr[2],r1=coordsArr[5],type="radial"):unreachable("getPattern type unknown: "+shadingType),["RadialAxial",type,this.bbox,this.colorStops,p0,p1,r0,r1]}}class MeshStreamReader{constructor(stream,context){this.stream=stream,this.context=context,this.buffer=0,this.bufferLength=0;stream=context.numComps,this.tmpCompsBuf=new Float32Array(stream),stream=context.colorSpace.numComps;this.tmpCsCompsBuf=context.colorFn?new Float32Array(stream):this.tmpCompsBuf}get hasData(){if(this.stream.end)return this.stream.pos<this.stream.end;if(!(0<this.bufferLength)){var nextByte=this.stream.getByte();if(nextByte<0)return!1;this.buffer=nextByte,this.bufferLength=8}return!0}readBits(n){let buffer=this.buffer,bufferLength=this.bufferLength;if(32===n){if(0===bufferLength)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;buffer=buffer<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var nextByte=this.stream.getByte();return this.buffer=nextByte&(1<<bufferLength)-1,(buffer<<8-bufferLength|(255&nextByte)>>bufferLength)>>>0}if(8===n&&0===bufferLength)return this.stream.getByte();for(;bufferLength<n;)buffer=buffer<<8|this.stream.getByte(),bufferLength+=8;return bufferLength-=n,this.bufferLength=bufferLength,this.buffer=buffer&(1<<bufferLength)-1,buffer>>bufferLength}align(){this.buffer=0,this.bufferLength=0}readFlag(){return this.readBits(this.context.bitsPerFlag)}readCoordinate(){var bitsPerCoordinate=this.context.bitsPerCoordinate,xi=this.readBits(bitsPerCoordinate),yi=this.readBits(bitsPerCoordinate),decode=this.context.decode,bitsPerCoordinate=bitsPerCoordinate<32?1/((1<<bitsPerCoordinate)-1):2.3283064365386963e-10;return[xi*bitsPerCoordinate*(decode[1]-decode[0])+decode[0],yi*bitsPerCoordinate*(decode[3]-decode[2])+decode[2]]}readComponents(){var numComps=this.context.numComps,bitsPerComponent=this.context.bitsPerComponent,scale=bitsPerComponent<32?1/((1<<bitsPerComponent)-1):2.3283064365386963e-10,decode=this.context.decode,components=this.tmpCompsBuf;for(let i=0,j=4;i<numComps;i++,j+=2){var ci=this.readBits(bitsPerComponent);components[i]=ci*scale*(decode[j+1]-decode[j])+decode[j]}var color=this.tmpCsCompsBuf;return this.context.colorFn&&this.context.colorFn(components,0,color,0),this.context.colorSpace.getRgb(color,0)}}let bCache=Object.create(null);function buildB(count){var lut=[];for(let i=0;i<=count;i++){var t=i/count,t_=1-t;lut.push(new Float32Array([t_**3,3*t*t_**2,3*t**2*t_,t**3]))}return lut}function getB(count){return bCache[count]||=buildB(count)}function clearPatternCaches(){bCache=Object.create(null)}class MeshShading extends BaseShading{static MIN_SPLIT_PATCH_CHUNKS_AMOUNT=3;static MAX_SPLIT_PATCH_CHUNKS_AMOUNT=20;static TRIANGLE_DENSITY=20;constructor(stream,xref,resources,pdfFunctionFactory,localColorSpaceCache){if(super(),!(stream instanceof BaseStream))throw new FormatError("Mesh data is not a stream");var dict=stream.dict,bbox=(this.shadingType=dict.get("ShadingType"),dict.getArray("BBox")),bbox=(this.bbox=Array.isArray(bbox)&&4===bbox.length?Util.normalizeRect(bbox):null,ColorSpace.parse({cs:dict.getRaw("CS")||dict.getRaw("ColorSpace"),xref:xref,resources:resources,pdfFunctionFactory:pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache})),xref=(this.background=dict.has("Background")?bbox.getRgb(dict.get("Background"),0):null,dict.getRaw("Function")),resources=xref?pdfFunctionFactory.createFromArray(xref):null,localColorSpaceCache=(this.coords=[],this.colors=[],this.figures=[],{bitsPerCoordinate:dict.get("BitsPerCoordinate"),bitsPerComponent:dict.get("BitsPerComponent"),bitsPerFlag:dict.get("BitsPerFlag"),decode:dict.getArray("Decode"),colorFn:resources,colorSpace:bbox,numComps:resources?1:bbox.numComps}),reader=new MeshStreamReader(stream,localColorSpaceCache);let patchMesh=!1;switch(this.shadingType){case ShadingType.FREE_FORM_MESH:this._decodeType4Shading(reader);break;case ShadingType.LATTICE_FORM_MESH:var verticesPerRow=0|dict.get("VerticesPerRow");if(verticesPerRow<2)throw new FormatError("Invalid VerticesPerRow");this._decodeType5Shading(reader,verticesPerRow);break;case ShadingType.COONS_PATCH_MESH:this._decodeType6Shading(reader),patchMesh=!0;break;case ShadingType.TENSOR_PATCH_MESH:this._decodeType7Shading(reader),patchMesh=!0;break;default:unreachable("Unsupported mesh type.")}if(patchMesh){this._updateBounds();for(let i=0,ii=this.figures.length;i<ii;i++)this._buildFigureFromPatch(i)}this._updateBounds(),this._packData()}_decodeType4Shading(reader){var coords=this.coords,colors=this.colors,operators=[],ps=[];let verticesLeft=0;for(;reader.hasData;){var f=reader.readFlag(),coord=reader.readCoordinate(),color=reader.readComponents();if(0===verticesLeft){if(!(0<=f&&f<=2))throw new FormatError("Unknown type4 flag");switch(f){case 0:verticesLeft=3;break;case 1:ps.push(ps.at(-2),ps.at(-1)),verticesLeft=1;break;case 2:ps.push(ps.at(-3),ps.at(-1)),verticesLeft=1}operators.push(f)}ps.push(coords.length),coords.push(coord),colors.push(color),verticesLeft--,reader.align()}this.figures.push({type:"triangles",coords:new Int32Array(ps),colors:new Int32Array(ps)})}_decodeType5Shading(reader,verticesPerRow){for(var coords=this.coords,colors=this.colors,ps=[];reader.hasData;){var coord=reader.readCoordinate(),color=reader.readComponents();ps.push(coords.length),coords.push(coord),colors.push(color)}this.figures.push({type:"lattice",coords:new Int32Array(ps),colors:new Int32Array(ps),verticesPerRow:verticesPerRow})}_decodeType6Shading(reader){for(var coords=this.coords,colors=this.colors,ps=new Int32Array(16),cs=new Int32Array(4);reader.hasData;){var f=reader.readFlag();if(!(0<=f&&f<=3))throw new FormatError("Unknown type6 flag");var pi=coords.length;for(let i=0,ii=0!==f?8:12;i<ii;i++)coords.push(reader.readCoordinate());var ci=colors.length;for(let i=0,ii=0!==f?2:4;i<ii;i++)colors.push(reader.readComponents());let tmp1,tmp2,tmp3,tmp4;switch(f){case 0:ps[12]=pi+3,ps[13]=pi+4,ps[14]=pi+5,ps[15]=pi+6,ps[8]=pi+2,ps[11]=pi+7,ps[4]=pi+1,ps[7]=pi+8,ps[0]=pi,ps[1]=pi+11,ps[2]=pi+10,ps[3]=pi+9,cs[2]=ci+1,cs[3]=ci+2,cs[0]=ci,cs[1]=ci+3;break;case 1:tmp1=ps[12],tmp2=ps[13],tmp3=ps[14],tmp4=ps[15],ps[12]=tmp4,ps[13]=pi+0,ps[14]=pi+1,ps[15]=pi+2,ps[8]=tmp3,ps[11]=pi+3,ps[4]=tmp2,ps[7]=pi+4,ps[0]=tmp1,ps[1]=pi+7,ps[2]=pi+6,ps[3]=pi+5,tmp1=cs[2],tmp2=cs[3],cs[2]=tmp2,cs[3]=ci,cs[0]=tmp1,cs[1]=ci+1;break;case 2:tmp1=ps[15],tmp2=ps[11],ps[12]=ps[3],ps[13]=pi+0,ps[14]=pi+1,ps[15]=pi+2,ps[8]=ps[7],ps[11]=pi+3,ps[4]=tmp2,ps[7]=pi+4,ps[0]=tmp1,ps[1]=pi+7,ps[2]=pi+6,ps[3]=pi+5,tmp1=cs[3],cs[2]=cs[1],cs[3]=ci,cs[0]=tmp1,cs[1]=ci+1;break;case 3:ps[12]=ps[0],ps[13]=pi+0,ps[14]=pi+1,ps[15]=pi+2,ps[8]=ps[1],ps[11]=pi+3,ps[4]=ps[2],ps[7]=pi+4,ps[0]=ps[3],ps[1]=pi+7,ps[2]=pi+6,ps[3]=pi+5,cs[2]=cs[0],cs[3]=ci,cs[0]=cs[1],cs[1]=ci+1}ps[5]=coords.length,coords.push([(-4*coords[ps[0]][0]-coords[ps[15]][0]+6*(coords[ps[4]][0]+coords[ps[1]][0])-2*(coords[ps[12]][0]+coords[ps[3]][0])+3*(coords[ps[13]][0]+coords[ps[7]][0]))/9,(-4*coords[ps[0]][1]-coords[ps[15]][1]+6*(coords[ps[4]][1]+coords[ps[1]][1])-2*(coords[ps[12]][1]+coords[ps[3]][1])+3*(coords[ps[13]][1]+coords[ps[7]][1]))/9]),ps[6]=coords.length,coords.push([(-4*coords[ps[3]][0]-coords[ps[12]][0]+6*(coords[ps[2]][0]+coords[ps[7]][0])-2*(coords[ps[0]][0]+coords[ps[15]][0])+3*(coords[ps[4]][0]+coords[ps[14]][0]))/9,(-4*coords[ps[3]][1]-coords[ps[12]][1]+6*(coords[ps[2]][1]+coords[ps[7]][1])-2*(coords[ps[0]][1]+coords[ps[15]][1])+3*(coords[ps[4]][1]+coords[ps[14]][1]))/9]),ps[9]=coords.length,coords.push([(-4*coords[ps[12]][0]-coords[ps[3]][0]+6*(coords[ps[8]][0]+coords[ps[13]][0])-2*(coords[ps[0]][0]+coords[ps[15]][0])+3*(coords[ps[11]][0]+coords[ps[1]][0]))/9,(-4*coords[ps[12]][1]-coords[ps[3]][1]+6*(coords[ps[8]][1]+coords[ps[13]][1])-2*(coords[ps[0]][1]+coords[ps[15]][1])+3*(coords[ps[11]][1]+coords[ps[1]][1]))/9]),ps[10]=coords.length,coords.push([(-4*coords[ps[15]][0]-coords[ps[0]][0]+6*(coords[ps[11]][0]+coords[ps[14]][0])-2*(coords[ps[12]][0]+coords[ps[3]][0])+3*(coords[ps[2]][0]+coords[ps[8]][0]))/9,(-4*coords[ps[15]][1]-coords[ps[0]][1]+6*(coords[ps[11]][1]+coords[ps[14]][1])-2*(coords[ps[12]][1]+coords[ps[3]][1])+3*(coords[ps[2]][1]+coords[ps[8]][1]))/9]),this.figures.push({type:"patch",coords:new Int32Array(ps),colors:new Int32Array(cs)})}}_decodeType7Shading(reader){for(var coords=this.coords,colors=this.colors,ps=new Int32Array(16),cs=new Int32Array(4);reader.hasData;){var f=reader.readFlag();if(!(0<=f&&f<=3))throw new FormatError("Unknown type7 flag");var pi=coords.length;for(let i=0,ii=0!==f?12:16;i<ii;i++)coords.push(reader.readCoordinate());var ci=colors.length;for(let i=0,ii=0!==f?2:4;i<ii;i++)colors.push(reader.readComponents());let tmp1,tmp2,tmp3,tmp4;switch(f){case 0:ps[12]=pi+3,ps[13]=pi+4,ps[14]=pi+5,ps[15]=pi+6,ps[8]=pi+2,ps[9]=pi+13,ps[10]=pi+14,ps[11]=pi+7,ps[4]=pi+1,ps[5]=pi+12,ps[6]=pi+15,ps[7]=pi+8,ps[0]=pi,ps[1]=pi+11,ps[2]=pi+10,ps[3]=pi+9,cs[2]=ci+1,cs[3]=ci+2,cs[0]=ci,cs[1]=ci+3;break;case 1:tmp1=ps[12],tmp2=ps[13],tmp3=ps[14],tmp4=ps[15],ps[12]=tmp4,ps[13]=pi+0,ps[14]=pi+1,ps[15]=pi+2,ps[8]=tmp3,ps[9]=pi+9,ps[10]=pi+10,ps[11]=pi+3,ps[4]=tmp2,ps[5]=pi+8,ps[6]=pi+11,ps[7]=pi+4,ps[0]=tmp1,ps[1]=pi+7,ps[2]=pi+6,ps[3]=pi+5,tmp1=cs[2],tmp2=cs[3],cs[2]=tmp2,cs[3]=ci,cs[0]=tmp1,cs[1]=ci+1;break;case 2:tmp1=ps[15],tmp2=ps[11],ps[12]=ps[3],ps[13]=pi+0,ps[14]=pi+1,ps[15]=pi+2,ps[8]=ps[7],ps[9]=pi+9,ps[10]=pi+10,ps[11]=pi+3,ps[4]=tmp2,ps[5]=pi+8,ps[6]=pi+11,ps[7]=pi+4,ps[0]=tmp1,ps[1]=pi+7,ps[2]=pi+6,ps[3]=pi+5,tmp1=cs[3],cs[2]=cs[1],cs[3]=ci,cs[0]=tmp1,cs[1]=ci+1;break;case 3:ps[12]=ps[0],ps[13]=pi+0,ps[14]=pi+1,ps[15]=pi+2,ps[8]=ps[1],ps[9]=pi+9,ps[10]=pi+10,ps[11]=pi+3,ps[4]=ps[2],ps[5]=pi+8,ps[6]=pi+11,ps[7]=pi+4,ps[0]=ps[3],ps[1]=pi+7,ps[2]=pi+6,ps[3]=pi+5,cs[2]=cs[0],cs[3]=ci,cs[0]=cs[1],cs[1]=ci+1}this.figures.push({type:"patch",coords:new Int32Array(ps),colors:new Int32Array(cs)})}}_buildFigureFromPatch(index){var figure=this.figures[index],coords=(assert("patch"===figure.type,"Unexpected patch mesh figure"),this.coords),colors=this.colors,pi=figure.coords,figure=figure.colors,figureMinX=Math.min(coords[pi[0]][0],coords[pi[3]][0],coords[pi[12]][0],coords[pi[15]][0]),figureMinY=Math.min(coords[pi[0]][1],coords[pi[3]][1],coords[pi[12]][1],coords[pi[15]][1]),figureMaxX=Math.max(coords[pi[0]][0],coords[pi[3]][0],coords[pi[12]][0],coords[pi[15]][0]),figureMaxY=Math.max(coords[pi[0]][1],coords[pi[3]][1],coords[pi[12]][1],coords[pi[15]][1]),splitXBy=Math.ceil((figureMaxX-figureMinX)*MeshShading.TRIANGLE_DENSITY/(this.bounds[2]-this.bounds[0])),splitXBy=Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT,splitXBy)),splitYBy=Math.ceil((figureMaxY-figureMinY)*MeshShading.TRIANGLE_DENSITY/(this.bounds[3]-this.bounds[1])),splitYBy=Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT,splitYBy)),figureMaxX=splitXBy+1,figureCoords=new Int32Array((splitYBy+1)*figureMaxX),figureColors=new Int32Array((splitYBy+1)*figureMaxX);let k=0;var cl=new Uint8Array(3),cr=new Uint8Array(3),c0=colors[figure[0]],c1=colors[figure[1]],c2=colors[figure[2]],c3=colors[figure[3]],bRow=getB(splitYBy),bCol=getB(splitXBy);for(let row=0;row<=splitYBy;row++){cl[0]=(c0[0]*(splitYBy-row)+c2[0]*row)/splitYBy|0,cl[1]=(c0[1]*(splitYBy-row)+c2[1]*row)/splitYBy|0,cl[2]=(c0[2]*(splitYBy-row)+c2[2]*row)/splitYBy|0,cr[0]=(c1[0]*(splitYBy-row)+c3[0]*row)/splitYBy|0,cr[1]=(c1[1]*(splitYBy-row)+c3[1]*row)/splitYBy|0,cr[2]=(c1[2]*(splitYBy-row)+c3[2]*row)/splitYBy|0;for(let col=0;col<=splitXBy;col++,k++)if(0!==row&&row!==splitYBy||0!==col&&col!==splitXBy){let x=0,y=0,q=0;for(let i=0;i<=3;i++)for(let j=0;j<=3;j++,q++){var m=bRow[row][i]*bCol[col][j];x+=coords[pi[q]][0]*m,y+=coords[pi[q]][1]*m}figureCoords[k]=coords.length,coords.push([x,y]),figureColors[k]=colors.length;var newColor=new Uint8Array(3);newColor[0]=(cl[0]*(splitXBy-col)+cr[0]*col)/splitXBy|0,newColor[1]=(cl[1]*(splitXBy-col)+cr[1]*col)/splitXBy|0,newColor[2]=(cl[2]*(splitXBy-col)+cr[2]*col)/splitXBy|0,colors.push(newColor)}}figureCoords[0]=pi[0],figureColors[0]=figure[0],figureCoords[splitXBy]=pi[3],figureColors[splitXBy]=figure[1],figureCoords[figureMaxX*splitYBy]=pi[12],figureColors[figureMaxX*splitYBy]=figure[2],figureCoords[figureMaxX*splitYBy+splitXBy]=pi[15],figureColors[figureMaxX*splitYBy+splitXBy]=figure[3],this.figures[index]={type:"lattice",coords:figureCoords,colors:figureColors,verticesPerRow:figureMaxX}}_updateBounds(){let minX=this.coords[0][0],minY=this.coords[0][1],maxX=minX,maxY=minY;for(let i=1,ii=this.coords.length;i<ii;i++){var x=this.coords[i][0],y=this.coords[i][1];minX=minX>x?x:minX,minY=minY>y?y:minY,maxX=maxX<x?x:maxX,maxY=maxY<y?y:maxY}this.bounds=[minX,minY,maxX,maxY]}_packData(){let i,ii,j,jj;var coords=this.coords,coordsPacked=new Float32Array(2*coords.length);for(i=0,j=0,ii=coords.length;i<ii;i++){var xy=coords[i];coordsPacked[j++]=xy[0],coordsPacked[j++]=xy[1]}this.coords=coordsPacked;var colors=this.colors,colorsPacked=new Uint8Array(3*colors.length);for(i=0,j=0,ii=colors.length;i<ii;i++){var c=colors[i];colorsPacked[j++]=c[0],colorsPacked[j++]=c[1],colorsPacked[j++]=c[2]}this.colors=colorsPacked;var figures=this.figures;for(i=0,ii=figures.length;i<ii;i++){var figure=figures[i],ps=figure.coords,cs=figure.colors;for(j=0,jj=ps.length;j<jj;j++)ps[j]*=2,cs[j]*=3}}getIR(){var bounds=this["bounds"];if(bounds[2]-bounds[0]==0||bounds[3]-bounds[1]==0)throw new FormatError(`Invalid MeshShading bounds: [${bounds}].`);return["Mesh",this.shadingType,this.coords,this.colors,this.figures,bounds,this.bbox,this.background]}}class DummyShading extends BaseShading{getIR(){return["Dummy"]}}function getTilingPatternIR(operatorList,dict,color){var matrix=dict.getArray("Matrix"),bbox=Util.normalizeRect(dict.getArray("BBox")),xstep=dict.get("XStep"),ystep=dict.get("YStep"),paintType=dict.get("PaintType"),dict=dict.get("TilingType");if(bbox[2]-bbox[0]==0||bbox[3]-bbox[1]==0)throw new FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);return["TilingPattern",color,operatorList,matrix,bbox,xstep,ystep,paintType,dict]}const CalibriBoldFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.54657,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.73293,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.9121,.86943,.79795,.88198,.77958,.70864,.81055,.90399,.88653,.96017,.82577,.77892,.78257,.97507,1.54657,.97507,.85284,.89552,.90176,.88762,.8785,.75241,.8785,.90518,.95015,.77618,.8785,.88401,.91916,.86304,.88401,.91488,.8785,.8801,.8785,.8785,.91343,.7173,1.04106,.8785,.85075,.95794,.82616,.85162,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.12401,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.73293,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.9121,.86943,.86943,.86943,.86943,.86943,.85284,.87508,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.88762,.88762,.88762,.88762,.88762,.88762,.8715,.75241,.90518,.90518,.90518,.90518,.88401,.88401,.88401,.88401,.8785,.8785,.8801,.8801,.8801,.8801,.8801,.90747,.89049,.8785,.8785,.8785,.8785,.85162,.8785,.85162,.83908,.88762,.83908,.88762,.83908,.88762,.73293,.75241,.73293,.75241,.73293,.75241,.73293,.75241,.87289,.83016,.88506,.93125,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.81921,.77618,.81921,.77618,.81921,.77618,1,1,.87356,.8785,.91075,.89608,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76229,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.79468,.91926,.88175,.70823,.94903,.9121,.8785,1,1,.9121,.8785,.87802,.88656,.8785,.86943,.8801,.86943,.8801,.86943,.8801,.87402,.89291,.77958,.91343,1,1,.77958,.91343,.70864,.7173,.70864,.7173,.70864,.7173,.70864,.7173,1,1,.81055,.75841,.81055,1.06452,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.96017,.95794,.77892,.85162,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.88762,.77539,.8715,.87508,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70674,.98387,.94721,1.33431,1.45894,.95161,1.06303,.83908,.80352,.57184,.6965,.56289,.82001,.56029,.81235,1.02988,.83908,.7762,.68156,.80367,.73133,.78257,.87356,.86943,.95958,.75727,.89019,1.04924,.9121,.7648,.86943,.87356,.79795,.78275,.81055,.77892,.9762,.82577,.99819,.84896,.95958,.77892,.96108,1.01407,.89049,1.02988,.94211,.96108,.8936,.84021,.87842,.96399,.79109,.89049,1.00813,1.02988,.86077,.87445,.92099,.84723,.86513,.8801,.75638,.85714,.78216,.79586,.87965,.94211,.97747,.78287,.97926,.84971,1.02988,.94211,.8801,.94211,.84971,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90264,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.90518,1,1,1,1,1,1,1,1,1,1,1,1,.90548,1,1,1,1,1,1,.96017,.95794,.96017,.95794,.96017,.95794,.77892,.85162,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.92794,.87012,.87012,.87012,.89552,.89552,1.42259,.71143,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.93835,.83406,.91133,.84107,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90527,1.81055,.90527,1.81055,1.31006,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],CalibriBoldMetrics={lineHeight:1.2207,lineGap:.2207},CalibriBoldItalicFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.56239,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.71805,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.90872,.85938,.79795,.87068,.77958,.69766,.81055,.90399,.88653,.96068,.82577,.77892,.78257,.97507,1.529,.97507,.85284,.89552,.90176,.94908,.86411,.74012,.86411,.88323,.95015,.86411,.86331,.88401,.91916,.86304,.88401,.9039,.86331,.86331,.86411,.86411,.90464,.70852,1.04106,.86331,.84372,.95794,.82616,.84548,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.19129,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.71805,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.90872,.85938,.85938,.85938,.85938,.85938,.85284,.87068,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.94908,.94908,.94908,.94908,.94908,.94908,.85887,.74012,.88323,.88323,.88323,.88323,.88401,.88401,.88401,.88401,.8785,.86331,.86331,.86331,.86331,.86331,.86331,.90747,.89049,.86331,.86331,.86331,.86331,.84548,.86411,.84548,.83908,.94908,.83908,.94908,.83908,.94908,.71805,.74012,.71805,.74012,.71805,.74012,.71805,.74012,.87289,.79538,.88506,.92726,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.81921,.86411,.81921,.86411,.81921,.86411,1,1,.87356,.86331,.91075,.8777,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76467,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.77312,.91926,.88175,.70823,.94903,.90872,.86331,1,1,.90872,.86331,.86906,.88116,.86331,.85938,.86331,.85938,.86331,.85938,.86331,.87402,.86549,.77958,.90464,1,1,.77958,.90464,.69766,.70852,.69766,.70852,.69766,.70852,.69766,.70852,1,1,.81055,.75841,.81055,1.06452,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.96068,.95794,.77892,.84548,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.94908,.77539,.85887,.87068,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70088,.98387,.94721,1.33431,1.45894,.95161,1.48387,.83908,.80352,.57118,.6965,.56347,.79179,.55853,.80346,1.02988,.83908,.7762,.67174,.86036,.73133,.78257,.87356,.86441,.95958,.75727,.89019,1.04924,.90872,.74889,.85938,.87891,.79795,.7957,.81055,.77892,.97447,.82577,.97466,.87179,.95958,.77892,.94252,.95612,.8753,1.02988,.92733,.94252,.87411,.84021,.8728,.95612,.74081,.8753,1.02189,1.02988,.84814,.87445,.91822,.84723,.85668,.86331,.81344,.87581,.76422,.82046,.96057,.92733,.99375,.78022,.95452,.86015,1.02988,.92733,.86331,.92733,.86015,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90631,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.88323,1,1,1,1,1,1,1,1,1,1,1,1,.85174,1,1,1,1,1,1,.96068,.95794,.96068,.95794,.96068,.95794,.77892,.84548,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.89807,.87012,.87012,.87012,.89552,.89552,1.42259,.71094,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.92972,.83406,.91133,.83326,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90616,1.81055,.90527,1.81055,1.3107,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],CalibriBoldItalicMetrics={lineHeight:1.2207,lineGap:.2207},CalibriItalicFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39543,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.72346,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89249,.84118,.77452,.85374,.75186,.67789,.79776,.88844,.85066,.94309,.77818,.7306,.76659,1.10369,1.38313,1.10369,1.06139,.89552,.8739,.9245,.9245,.83203,.9245,.85865,1.09842,.9245,.9245,1.03297,1.07692,.90918,1.03297,.94959,.9245,.92274,.9245,.9245,1.02933,.77832,1.20562,.9245,.8916,.98986,.86621,.89453,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.16359,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.72346,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89249,.84118,.84118,.84118,.84118,.84118,.85284,.84557,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.9245,.9245,.9245,.9245,.9245,.9245,.84843,.83203,.85865,.85865,.85865,.85865,.82601,.82601,.82601,.82601,.94469,.9245,.92274,.92274,.92274,.92274,.92274,.90747,.86651,.9245,.9245,.9245,.9245,.89453,.9245,.89453,.8675,.9245,.8675,.9245,.8675,.9245,.72346,.83203,.72346,.83203,.72346,.83203,.72346,.83203,.85193,.8875,.86477,.99034,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.81105,.9245,.81105,.9245,.81105,.9245,1,1,.86275,.9245,.90872,.93591,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77896,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.9375,.98156,.93407,.77261,1.11429,.89249,.9245,1,1,.89249,.9245,.92534,.86698,.9245,.84118,.92274,.84118,.92274,.84118,.92274,.8667,.86291,.75186,1.02933,1,1,.75186,1.02933,.67789,.77832,.67789,.77832,.67789,.77832,.67789,.77832,1,1,.79776,.97655,.79776,1.23023,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.94309,.98986,.7306,.89453,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.9245,.76318,.84843,.84557,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67009,.96334,.93695,1.35191,1.40909,.95161,1.48387,.8675,.90861,.6192,.7363,.64824,.82411,.56321,.85696,1.23516,.8675,.81552,.7286,.84134,.73206,.76659,.86275,.84369,.90685,.77892,.85871,1.02638,.89249,.75828,.84118,.85984,.77452,.76466,.79776,.7306,.90782,.77818,.903,.87291,.90685,.7306,.99058,1.03667,.94635,1.23516,.9849,.99058,.92393,.8916,.942,1.03667,.75026,.94635,1.0297,1.23516,.90918,.94048,.98217,.89746,.84153,.92274,.82507,.88832,.84438,.88178,1.03525,.9849,1.00225,.78086,.97248,.89404,1.23516,.9849,.92274,.9849,.89404,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.89693,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.85865,1,1,1,1,1,1,1,1,1,1,1,1,.90933,1,1,1,1,1,1,.94309,.98986,.94309,.98986,.94309,.98986,.7306,.89453,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.68994,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.97858,.82616,.91133,.83437,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90572,1.81055,.90749,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85284,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],CalibriItalicMetrics={lineHeight:1.2207,lineGap:.2207},CalibriRegularFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39016,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.73834,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89385,.85122,.77452,.86503,.75186,.68887,.79776,.88844,.85066,.94258,.77818,.7306,.76659,1.10369,1.39016,1.10369,1.06139,.89552,.8739,.86128,.94469,.8457,.94469,.89464,1.09842,.84636,.94469,1.03297,1.07692,.90918,1.03297,.95897,.94469,.9482,.94469,.94469,1.04692,.78223,1.20562,.94469,.90332,.98986,.86621,.90527,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.08707,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.73834,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89385,.85122,.85122,.85122,.85122,.85122,.85284,.85311,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.86128,.86128,.86128,.86128,.86128,.86128,.8693,.8457,.89464,.89464,.89464,.89464,.82601,.82601,.82601,.82601,.94469,.94469,.9482,.9482,.9482,.9482,.9482,.90747,.86651,.94469,.94469,.94469,.94469,.90527,.94469,.90527,.8675,.86128,.8675,.86128,.8675,.86128,.73834,.8457,.73834,.8457,.73834,.8457,.73834,.8457,.85193,.92454,.86477,.9921,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.81105,.84636,.81105,.84636,.81105,.84636,1,1,.86275,.94469,.90872,.95786,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77741,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.90452,.98156,1.11842,.77261,1.11429,.89385,.94469,1,1,.89385,.94469,.95877,.86901,.94469,.85122,.9482,.85122,.9482,.85122,.9482,.8667,.90016,.75186,1.04692,1,1,.75186,1.04692,.68887,.78223,.68887,.78223,.68887,.78223,.68887,.78223,1,1,.79776,.92188,.79776,1.23023,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.94258,.98986,.7306,.90527,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.86128,.76318,.8693,.85311,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67742,.96334,.93695,1.35191,1.40909,.95161,1.48387,.86686,.90861,.62267,.74359,.65649,.85498,.56963,.88254,1.23516,.8675,.81552,.75443,.84503,.73206,.76659,.86275,.85122,.90685,.77892,.85746,1.02638,.89385,.75657,.85122,.86275,.77452,.74171,.79776,.7306,.95165,.77818,.89772,.88831,.90685,.7306,.98142,1.02191,.96576,1.23516,.99018,.98142,.9236,.89258,.94035,1.02191,.78848,.96576,.9561,1.23516,.90918,.92578,.95424,.89746,.83969,.9482,.80113,.89442,.85208,.86155,.98022,.99018,1.00452,.81209,.99247,.89181,1.23516,.99018,.9482,.99018,.89181,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.88844,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89464,1,1,1,1,1,1,1,1,1,1,1,1,.96766,1,1,1,1,1,1,.94258,.98986,.94258,.98986,.94258,.98986,.7306,.90527,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.69043,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.99331,.82616,.91133,.84286,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90527,1.81055,.90527,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1.07185,.99413,.96334,1.08065,1,1,1,1,1,1,1,1,1,1,1],CalibriRegularMetrics={lineHeight:1.2207,lineGap:.2207},HelveticaBoldFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.03374,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.00042,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.03828,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00034,.99977,1,.99997,1.00026,1.00078,1.00036,.99973,1.00013,1.0006,.99977,.99977,.99988,.85148,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,1.00069,1.00022,.99977,1.00001,.99984,1.00026,1.00001,1.00024,1.00001,.9999,1,1.0006,1.00001,1.00041,.99962,1.00026,1.0006,.99995,1.00041,.99942,.99973,.99927,1.00082,.99902,1.00026,1.00087,1.0006,1.00069,.99973,.99867,.99973,.9993,1.00026,1.00049,1.00056,1,.99988,.99935,.99995,.99954,1.00055,.99945,1.00032,1.0006,.99995,1.00026,.99995,1.00032,1.00001,1.00008,.99971,1.00019,.9994,1.00001,1.0006,1.00044,.99973,1.00023,1.00047,1,.99942,.99561,.99989,1.00035,.99977,1.00035,.99977,1.00019,.99944,1.00001,1.00021,.99926,1.00035,1.00035,.99942,1.00048,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.99989,1.00057,1.00001,.99936,1.00052,1.00012,.99996,1.00043,1,1.00035,.9994,.99976,1.00035,.99973,1.00052,1.00041,1.00119,1.00037,.99973,1.00002,.99986,1.00041,1.00041,.99902,.9996,1.00034,.99999,1.00026,.99999,1.00026,.99973,1.00052,.99973,1,.99973,1.00041,1.00075,.9994,1.0003,.99999,1,1.00041,.99955,1,.99915,.99973,.99973,1.00026,1.00119,.99955,.99973,1.0006,.99911,1.0006,1.00026,.99972,1.00026,.99902,1.00041,.99973,.99999,1,1,1.00038,1.0005,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,1.00047,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1],HelveticaBoldMetrics={lineHeight:1.2,lineGap:.2},HelveticaBoldItalicFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.0044,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99971,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.01011,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99977,1,1,1.00026,.99969,.99972,.99981,.9998,1.0006,.99977,.99977,1.00022,.91155,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,.99966,1.00022,1.00032,1.00001,.99944,1.00026,1.00001,.99968,1.00001,1.00047,1,1.0006,1.00001,.99981,1.00101,1.00026,1.0006,.99948,.99981,1.00064,.99973,.99942,1.00101,1.00061,1.00026,1.00069,1.0006,1.00014,.99973,1.01322,.99973,1.00065,1.00026,1.00012,.99923,1,1.00064,1.00076,.99948,1.00055,1.00063,1.00007,.99943,1.0006,.99948,1.00026,.99948,.99943,1.00001,1.00001,1.00029,1.00038,1.00035,1.00001,1.0006,1.0006,.99973,.99978,1.00001,1.00057,.99989,.99967,.99964,.99967,.99977,.99999,.99977,1.00038,.99977,1.00001,.99973,1.00066,.99967,.99967,1.00041,.99998,.99999,.99977,1.00022,.99967,1.00001,.99977,1.00026,.99964,1.00031,1.00001,.99999,.99999,1,1.00023,1,1,.99999,1.00035,1.00001,.99999,.99973,.99977,.99999,1.00058,.99973,.99973,.99955,.9995,1.00026,1.00026,1.00032,.99989,1.00034,.99999,1.00026,1.00026,1.00026,.99973,.45998,.99973,1.00026,.99973,1.00001,.99999,.99982,.99994,.99996,1,1.00042,1.00044,1.00029,1.00023,.99973,.99973,1.00026,.99949,1.00002,.99973,1.0006,1.0006,1.0006,.99975,1.00026,1.00026,1.00032,.98685,.99973,1.00026,1,1,.99966,1.00044,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1,.99973,.99971,.99978,1,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00098,1,1,1,1.00049,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1],HelveticaBoldItalicMetrics={lineHeight:1.35,lineGap:.2},HelveticaItalicFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.0288,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,.99946,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.06311,.99973,1.00024,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,1.00041,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.89547,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00001,1,1.00054,.99977,1.00084,1.00007,.99973,1.00013,.99924,1.00001,1.00001,.99945,.91221,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00001,.99999,.99977,.99933,1.00022,1.00054,1.00001,1.00065,1.00026,1.00001,1.0001,1.00001,1.00052,1,1.0006,1.00001,.99945,.99897,.99968,.99924,1.00036,.99945,.99949,1,1.0006,.99897,.99918,.99968,.99911,.99924,1,.99962,1.01487,1,1.0005,.99973,1.00012,1.00043,1,.99995,.99994,1.00036,.99947,1.00019,1.00063,1.00025,.99924,1.00036,.99973,1.00036,1.00025,1.00001,1.00001,1.00027,1.0001,1.00068,1.00001,1.0006,1.0006,1,1.00008,.99957,.99972,.9994,.99954,.99975,1.00051,1.00001,1.00019,1.00001,1.0001,.99986,1.00001,1.00001,1.00038,.99954,.99954,.9994,1.00066,.99999,.99977,1.00022,1.00054,1.00001,.99977,1.00026,.99975,1.0001,1.00001,.99993,.9995,.99955,1.00016,.99978,.99974,1.00019,1.00022,.99955,1.00053,.99973,1.00089,1.00005,.99967,1.00048,.99973,1.00002,1.00034,.99973,.99973,.99964,1.00006,1.00066,.99947,.99973,.98894,.99973,1,.44898,1,.99946,1,1.00039,1.00082,.99991,.99991,.99985,1.00022,1.00023,1.00061,1.00006,.99966,.99973,.99973,.99973,1.00019,1.0008,1,.99924,.99924,.99924,.99983,1.00044,.99973,.99964,.98332,1,.99973,1,1,.99962,.99895,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,1.00423,.99925,.99999,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00049,1,1.00245,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,1.00003,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1],HelveticaItalicMetrics={lineHeight:1.35,lineGap:.2},HelveticaRegularFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.04596,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,1.00019,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.02572,.99973,1.00005,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,.99999,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.84533,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99928,1,.99977,1.00013,1.00055,.99947,.99945,.99941,.99924,1.00001,1.00001,1.0004,.91621,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00005,.99999,.99977,1.00015,1.00022,.99977,1.00001,.99973,1.00026,1.00001,1.00019,1.00001,.99946,1,1.0006,1.00001,.99978,1.00045,.99973,.99924,1.00023,.99978,.99966,1,1.00065,1.00045,1.00019,.99973,.99973,.99924,1,1,.96499,1,1.00055,.99973,1.00008,1.00027,1,.9997,.99995,1.00023,.99933,1.00019,1.00015,1.00031,.99924,1.00023,.99973,1.00023,1.00031,1.00001,.99928,1.00029,1.00092,1.00035,1.00001,1.0006,1.0006,1,.99988,.99975,1,1.00082,.99561,.9996,1.00035,1.00001,.99962,1.00001,1.00092,.99964,1.00001,.99963,.99999,1.00035,1.00035,1.00082,.99962,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.9996,.99967,1.00001,1.00034,1.00074,1.00054,1.00053,1.00063,.99971,.99962,1.00035,.99975,.99977,.99973,1.00043,.99953,1.0007,.99915,.99973,1.00008,.99892,1.00073,1.00073,1.00114,.99915,1.00073,.99955,.99973,1.00092,.99973,1,.99998,1,1.0003,1,1.00043,1.00001,.99969,1.0003,1,1.00035,1.00001,.9995,1,1.00092,.99973,.99973,.99973,1.0007,.9995,1,.99924,1.0006,.99924,.99972,1.00062,.99973,1.00114,1.00073,1,.99955,1,1,1.00047,.99968,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,.99925,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],HelveticaRegularMetrics={lineHeight:1.2,lineGap:.2},LiberationSansBoldWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,719,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,785,556,556,278,722,556,556,611,278,611,278,611,385,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,465,722,333,853,906,474,825,927,838,278,722,722,601,719,667,611,722,778,278,722,667,833,722,644,778,722,667,600,611,667,821,667,809,802,278,667,615,451,611,278,582,615,610,556,606,475,460,611,541,278,558,556,612,556,445,611,766,619,520,684,446,582,715,576,753,845,278,582,611,582,845,667,669,885,567,711,667,278,276,556,1094,1062,875,610,722,622,719,722,719,722,567,712,667,904,626,719,719,610,702,833,722,778,719,667,722,611,622,854,667,730,703,1005,1019,870,979,719,711,1031,719,556,618,615,417,635,556,709,497,615,615,500,635,740,604,611,604,611,556,490,556,875,556,615,581,833,844,729,854,615,552,854,583,556,556,611,417,552,556,278,281,278,969,906,611,500,615,556,604,778,611,487,447,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1094,556,885,489,1115,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333],LiberationSansBoldMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],LiberationSansBoldItalicWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,740,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,782,556,556,278,722,556,556,611,278,611,278,611,396,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,333,722,333,854,906,473,844,930,847,278,722,722,610,671,667,611,722,778,278,722,667,833,722,657,778,718,667,590,611,667,822,667,829,781,278,667,620,479,611,278,591,620,621,556,610,479,492,611,558,278,566,556,603,556,450,611,712,605,532,664,409,591,704,578,773,834,278,591,611,591,834,667,667,886,614,719,667,278,278,556,1094,1042,854,622,719,677,719,722,708,722,614,722,667,927,643,719,719,615,687,833,722,778,719,667,722,611,677,781,667,729,708,979,989,854,1e3,708,719,1042,729,556,619,604,534,618,556,736,510,611,611,507,622,740,604,611,611,611,556,889,556,885,556,646,583,889,935,707,854,594,552,865,589,556,556,611,469,563,556,278,278,278,969,906,611,507,619,556,611,778,611,575,467,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1104,556,885,516,1146,1e3,768,600,834,834,834,834,999,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333],LiberationSansBoldItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],LiberationSansItalicWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,625,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,733,444,500,222,667,500,500,556,222,556,222,556,281,556,400,556,222,722,556,722,556,722,556,615,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,354,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,789,846,389,794,865,775,222,667,667,570,671,667,611,722,778,278,667,667,833,722,648,778,725,667,600,611,667,837,667,831,761,278,667,570,439,555,222,550,570,571,500,556,439,463,555,542,222,500,492,548,500,447,556,670,573,486,603,374,550,652,546,728,779,222,550,556,550,779,667,667,843,544,708,667,278,278,500,1066,982,844,589,715,639,724,667,651,667,544,704,667,917,614,715,715,589,686,833,722,778,725,667,722,611,639,795,667,727,673,920,923,805,886,651,694,1022,682,556,562,522,493,553,556,688,465,556,556,472,564,686,550,556,556,556,500,833,500,835,500,572,518,830,851,621,736,526,492,752,534,556,556,556,378,496,500,222,222,222,910,828,556,472,565,500,556,778,556,492,339,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1083,1e3,768,600,834,834,834,834,1e3,500,998,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,584,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285],LiberationSansItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],LiberationSansRegularWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,615,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,735,444,500,222,667,500,500,556,222,556,222,556,292,556,334,556,222,722,556,722,556,722,556,604,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,375,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,784,838,384,774,855,752,222,667,667,551,668,667,611,722,778,278,667,668,833,722,650,778,722,667,618,611,667,798,667,835,748,278,667,578,446,556,222,547,578,575,500,557,446,441,556,556,222,500,500,576,500,448,556,690,569,482,617,395,547,648,525,713,781,222,547,556,547,781,667,667,865,542,719,667,278,278,500,1057,1010,854,583,722,635,719,667,656,667,542,677,667,923,604,719,719,583,656,833,722,778,719,667,722,611,635,760,667,740,667,917,938,792,885,656,719,1010,722,556,573,531,365,583,556,669,458,559,559,438,583,688,552,556,542,556,500,458,500,823,500,573,521,802,823,625,719,521,510,750,542,556,556,556,365,510,500,222,278,222,906,812,556,438,559,500,552,778,556,489,411,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1073,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285],LiberationSansRegularMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],MyriadProBoldFactors=[1.36898,1,1,.72706,.80479,.83734,.98894,.99793,.9897,.93884,.86209,.94292,.94292,1.16661,1.02058,.93582,.96694,.93582,1.19137,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.78076,.78076,1.02058,1.02058,1.02058,.72851,.78966,.90838,.83637,.82391,.96376,.80061,.86275,.8768,.95407,1.0258,.73901,.85022,.83655,1.0156,.95546,.92179,.87107,.92179,.82114,.8096,.89713,.94438,.95353,.94083,.91905,.90406,.9446,.94292,1.18777,.94292,1.02058,.89903,.90088,.94938,.97898,.81093,.97571,.94938,1.024,.9577,.95933,.98621,1.0474,.97455,.98981,.9672,.95933,.9446,.97898,.97407,.97646,.78036,1.10208,.95442,.95298,.97579,.9332,.94039,.938,.80687,1.01149,.80687,1.02058,.80479,.99793,.99793,.99793,.99793,1.01149,1.00872,.90088,.91882,1.0213,.8361,1.02058,.62295,.54324,.89022,1.08595,1,1,.90088,1,.97455,.93582,.90088,1,1.05686,.8361,.99642,.99642,.99642,.72851,.90838,.90838,.90838,.90838,.90838,.90838,.868,.82391,.80061,.80061,.80061,.80061,1.0258,1.0258,1.0258,1.0258,.97484,.95546,.92179,.92179,.92179,.92179,.92179,1.02058,.92179,.94438,.94438,.94438,.94438,.90406,.86958,.98225,.94938,.94938,.94938,.94938,.94938,.94938,.9031,.81093,.94938,.94938,.94938,.94938,.98621,.98621,.98621,.98621,.93969,.95933,.9446,.9446,.9446,.9446,.9446,1.08595,.9446,.95442,.95442,.95442,.95442,.94039,.97898,.94039,.90838,.94938,.90838,.94938,.90838,.94938,.82391,.81093,.82391,.81093,.82391,.81093,.82391,.81093,.96376,.84313,.97484,.97571,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.8768,.9577,.8768,.9577,.8768,.9577,1,1,.95407,.95933,.97069,.95933,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,.887,1.01591,.73901,1.0474,1,1,.97455,.83655,.98981,1,1,.83655,.73977,.83655,.73903,.84638,1.033,.95546,.95933,1,1,.95546,.95933,.8271,.95417,.95933,.92179,.9446,.92179,.9446,.92179,.9446,.936,.91964,.82114,.97646,1,1,.82114,.97646,.8096,.78036,.8096,.78036,1,1,.8096,.78036,1,1,.89713,.77452,.89713,1.10208,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94083,.97579,.90406,.94039,.90406,.9446,.938,.9446,.938,.9446,.938,1,.99793,.90838,.94938,.868,.9031,.92179,.9446,1,1,.89713,1.10208,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90989,.9358,.91945,.83181,.75261,.87992,.82976,.96034,.83689,.97268,1.0078,.90838,.83637,.8019,.90157,.80061,.9446,.95407,.92436,1.0258,.85022,.97153,1.0156,.95546,.89192,.92179,.92361,.87107,.96318,.89713,.93704,.95638,.91905,.91709,.92796,1.0258,.93704,.94836,1.0373,.95933,1.0078,.95871,.94836,.96174,.92601,.9498,.98607,.95776,.95933,1.05453,1.0078,.98275,.9314,.95617,.91701,1.05993,.9446,.78367,.9553,1,.86832,1.0128,.95871,.99394,.87548,.96361,.86774,1.0078,.95871,.9446,.95871,.86774,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.94083,.97579,.94083,.97579,.94083,.97579,.90406,.94039,.96694,1,.89903,1,1,1,.93582,.93582,.93582,1,.908,.908,.918,.94219,.94219,.96544,1,1.285,1,1,.81079,.81079,1,1,.74854,1,1,1,1,.99793,1,1,1,.65,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.17173,1,.80535,.76169,1.02058,1.0732,1.05486,1,1,1.30692,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.16161,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],MyriadProBoldMetrics={lineHeight:1.2,lineGap:.2},MyriadProBoldItalicFactors=[1.36898,1,1,.66227,.80779,.81625,.97276,.97276,.97733,.92222,.83266,.94292,.94292,1.16148,1.02058,.93582,.96694,.93582,1.17337,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.78076,.78076,1.02058,1.02058,1.02058,.71541,.76813,.85576,.80591,.80729,.94299,.77512,.83655,.86523,.92222,.98621,.71743,.81698,.79726,.98558,.92222,.90637,.83809,.90637,.80729,.76463,.86275,.90699,.91605,.9154,.85308,.85458,.90531,.94292,1.21296,.94292,1.02058,.89903,1.18616,.99613,.91677,.78216,.91677,.90083,.98796,.9135,.92168,.95381,.98981,.95298,.95381,.93459,.92168,.91513,.92004,.91677,.95077,.748,1.04502,.91677,.92061,.94236,.89544,.89364,.9,.80687,.8578,.80687,1.02058,.80779,.97276,.97276,.97276,.97276,.8578,.99973,1.18616,.91339,1.08074,.82891,1.02058,.55509,.71526,.89022,1.08595,1,1,1.18616,1,.96736,.93582,1.18616,1,1.04864,.82711,.99043,.99043,.99043,.71541,.85576,.85576,.85576,.85576,.85576,.85576,.845,.80729,.77512,.77512,.77512,.77512,.98621,.98621,.98621,.98621,.95961,.92222,.90637,.90637,.90637,.90637,.90637,1.02058,.90251,.90699,.90699,.90699,.90699,.85458,.83659,.94951,.99613,.99613,.99613,.99613,.99613,.99613,.85811,.78216,.90083,.90083,.90083,.90083,.95381,.95381,.95381,.95381,.9135,.92168,.91513,.91513,.91513,.91513,.91513,1.08595,.91677,.91677,.91677,.91677,.91677,.89364,.92332,.89364,.85576,.99613,.85576,.99613,.85576,.99613,.80729,.78216,.80729,.78216,.80729,.78216,.80729,.78216,.94299,.76783,.95961,.91677,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.86523,.9135,.86523,.9135,.86523,.9135,1,1,.92222,.92168,.92222,.92168,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.86036,.97096,.71743,.98981,1,1,.95298,.79726,.95381,1,1,.79726,.6894,.79726,.74321,.81691,1.0006,.92222,.92168,1,1,.92222,.92168,.79464,.92098,.92168,.90637,.91513,.90637,.91513,.90637,.91513,.909,.87514,.80729,.95077,1,1,.80729,.95077,.76463,.748,.76463,.748,1,1,.76463,.748,1,1,.86275,.72651,.86275,1.04502,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.9154,.94236,.85458,.89364,.85458,.90531,.9,.90531,.9,.90531,.9,1,.97276,.85576,.99613,.845,.85811,.90251,.91677,1,1,.86275,1.04502,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.00899,1.30628,.85576,.80178,.66862,.7927,.69323,.88127,.72459,.89711,.95381,.85576,.80591,.7805,.94729,.77512,.90531,.92222,.90637,.98621,.81698,.92655,.98558,.92222,.85359,.90637,.90976,.83809,.94523,.86275,.83509,.93157,.85308,.83392,.92346,.98621,.83509,.92886,.91324,.92168,.95381,.90646,.92886,.90557,.86847,.90276,.91324,.86842,.92168,.99531,.95381,.9224,.85408,.92699,.86847,1.0051,.91513,.80487,.93481,1,.88159,1.05214,.90646,.97355,.81539,.89398,.85923,.95381,.90646,.91513,.90646,.85923,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9154,.94236,.9154,.94236,.9154,.94236,.85458,.89364,.96694,1,.89903,1,1,1,.91782,.91782,.91782,1,.896,.896,.896,.9332,.9332,.95973,1,1.26,1,1,.80479,.80178,1,1,.85633,1,1,1,1,.97276,1,1,1,.698,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.14542,1,.79199,.78694,1.02058,1.03493,1.05486,1,1,1.23026,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.20006,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],MyriadProBoldItalicMetrics={lineHeight:1.2,lineGap:.2},MyriadProItalicFactors=[1.36898,1,1,.65507,.84943,.85639,.88465,.88465,.86936,.88307,.86948,.85283,.85283,1.06383,1.02058,.75945,.9219,.75945,1.17337,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.75945,.75945,1.02058,1.02058,1.02058,.69046,.70926,.85158,.77812,.76852,.89591,.70466,.76125,.80094,.86822,.83864,.728,.77212,.79475,.93637,.87514,.8588,.76013,.8588,.72421,.69866,.77598,.85991,.80811,.87832,.78112,.77512,.8562,1.0222,1.18417,1.0222,1.27014,.89903,1.15012,.93859,.94399,.846,.94399,.81453,1.0186,.94219,.96017,1.03075,1.02175,.912,1.03075,.96998,.96017,.93859,.94399,.94399,.95493,.746,1.12658,.94578,.91,.979,.882,.882,.83,.85034,.83537,.85034,1.02058,.70869,.88465,.88465,.88465,.88465,.83537,.90083,1.15012,.9161,.94565,.73541,1.02058,.53609,.69353,.79519,1.08595,1,1,1.15012,1,.91974,.75945,1.15012,1,.9446,.73361,.9005,.9005,.9005,.62864,.85158,.85158,.85158,.85158,.85158,.85158,.773,.76852,.70466,.70466,.70466,.70466,.83864,.83864,.83864,.83864,.90561,.87514,.8588,.8588,.8588,.8588,.8588,1.02058,.85751,.85991,.85991,.85991,.85991,.77512,.76013,.88075,.93859,.93859,.93859,.93859,.93859,.93859,.8075,.846,.81453,.81453,.81453,.81453,.82424,.82424,.82424,.82424,.9278,.96017,.93859,.93859,.93859,.93859,.93859,1.08595,.8562,.94578,.94578,.94578,.94578,.882,.94578,.882,.85158,.93859,.85158,.93859,.85158,.93859,.76852,.846,.76852,.846,.76852,.846,.76852,.846,.89591,.8544,.90561,.94399,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.80094,.94219,.80094,.94219,.80094,.94219,1,1,.86822,.96017,.86822,.96017,.83864,.82424,.83864,.82424,.83864,.82424,.83864,1.03075,.83864,.82424,.81402,1.02738,.728,1.02175,1,1,.912,.79475,1.03075,1,1,.79475,.83911,.79475,.66266,.80553,1.06676,.87514,.96017,1,1,.87514,.96017,.86865,.87396,.96017,.8588,.93859,.8588,.93859,.8588,.93859,.867,.84759,.72421,.95493,1,1,.72421,.95493,.69866,.746,.69866,.746,1,1,.69866,.746,1,1,.77598,.88417,.77598,1.12658,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.87832,.979,.77512,.882,.77512,.8562,.83,.8562,.83,.8562,.83,1,.88465,.85158,.93859,.773,.8075,.85751,.8562,1,1,.77598,1.12658,1.15012,1.15012,1.15012,1.15012,1.15012,1.15313,1.15012,1.15012,1.15012,1.08106,1.03901,.85158,.77025,.62264,.7646,.65351,.86026,.69461,.89947,1.03075,.85158,.77812,.76449,.88836,.70466,.8562,.86822,.8588,.83864,.77212,.85308,.93637,.87514,.82352,.8588,.85701,.76013,.89058,.77598,.8156,.82565,.78112,.77899,.89386,.83864,.8156,.9486,.92388,.96186,1.03075,.91123,.9486,.93298,.878,.93942,.92388,.84596,.96186,.95119,1.03075,.922,.88787,.95829,.88,.93559,.93859,.78815,.93758,1,.89217,1.03737,.91123,.93969,.77487,.85769,.86799,1.03075,.91123,.93859,.91123,.86799,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87832,.979,.87832,.979,.87832,.979,.77512,.882,.9219,1,.89903,1,1,1,.87321,.87321,.87321,1,1.027,1.027,1.027,.86847,.86847,.79121,1,1.124,1,1,.73572,.73572,1,1,.85034,1,1,1,1,.88465,1,1,1,.669,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.04828,1,.74948,.75187,1.02058,.98391,1.02119,1,1,1.06233,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05233,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],MyriadProItalicMetrics={lineHeight:1.2,lineGap:.2},MyriadProRegularFactors=[1.36898,1,1,.76305,.82784,.94935,.89364,.92241,.89073,.90706,.98472,.85283,.85283,1.0664,1.02058,.74505,.9219,.74505,1.23456,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.74505,.74505,1.02058,1.02058,1.02058,.73002,.72601,.91755,.8126,.80314,.92222,.73764,.79726,.83051,.90284,.86023,.74,.8126,.84869,.96518,.91115,.8858,.79761,.8858,.74498,.73914,.81363,.89591,.83659,.89633,.85608,.8111,.90531,1.0222,1.22736,1.0222,1.27014,.89903,.90088,.86667,1.0231,.896,1.01411,.90083,1.05099,1.00512,.99793,1.05326,1.09377,.938,1.06226,1.00119,.99793,.98714,1.0231,1.01231,.98196,.792,1.19137,.99074,.962,1.01915,.926,.942,.856,.85034,.92006,.85034,1.02058,.69067,.92241,.92241,.92241,.92241,.92006,.9332,.90088,.91882,.93484,.75339,1.02058,.56866,.54324,.79519,1.08595,1,1,.90088,1,.95325,.74505,.90088,1,.97198,.75339,.91009,.91009,.91009,.66466,.91755,.91755,.91755,.91755,.91755,.91755,.788,.80314,.73764,.73764,.73764,.73764,.86023,.86023,.86023,.86023,.92915,.91115,.8858,.8858,.8858,.8858,.8858,1.02058,.8858,.89591,.89591,.89591,.89591,.8111,.79611,.89713,.86667,.86667,.86667,.86667,.86667,.86667,.86936,.896,.90083,.90083,.90083,.90083,.84224,.84224,.84224,.84224,.97276,.99793,.98714,.98714,.98714,.98714,.98714,1.08595,.89876,.99074,.99074,.99074,.99074,.942,1.0231,.942,.91755,.86667,.91755,.86667,.91755,.86667,.80314,.896,.80314,.896,.80314,.896,.80314,.896,.92222,.93372,.92915,1.01411,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.83051,1.00512,.83051,1.00512,.83051,1.00512,1,1,.90284,.99793,.90976,.99793,.86023,.84224,.86023,.84224,.86023,.84224,.86023,1.05326,.86023,.84224,.82873,1.07469,.74,1.09377,1,1,.938,.84869,1.06226,1,1,.84869,.83704,.84869,.81441,.85588,1.08927,.91115,.99793,1,1,.91115,.99793,.91887,.90991,.99793,.8858,.98714,.8858,.98714,.8858,.98714,.894,.91434,.74498,.98196,1,1,.74498,.98196,.73914,.792,.73914,.792,1,1,.73914,.792,1,1,.81363,.904,.81363,1.19137,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89633,1.01915,.8111,.942,.8111,.90531,.856,.90531,.856,.90531,.856,1,.92241,.91755,.86667,.788,.86936,.8858,.89876,1,1,.81363,1.19137,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90388,1.03901,.92138,.78105,.7154,.86169,.80513,.94007,.82528,.98612,1.06226,.91755,.8126,.81884,.92819,.73764,.90531,.90284,.8858,.86023,.8126,.91172,.96518,.91115,.83089,.8858,.87791,.79761,.89297,.81363,.88157,.89992,.85608,.81992,.94307,.86023,.88157,.95308,.98699,.99793,1.06226,.95817,.95308,.97358,.928,.98088,.98699,.92761,.99793,.96017,1.06226,.986,.944,.95978,.938,.96705,.98714,.80442,.98972,1,.89762,1.04552,.95817,.99007,.87064,.91879,.88888,1.06226,.95817,.98714,.95817,.88888,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89633,1.01915,.89633,1.01915,.89633,1.01915,.8111,.942,.9219,1,.89903,1,1,1,.93173,.93173,.93173,1,1.06304,1.06304,1.06904,.89903,.89903,.80549,1,1.156,1,1,.76575,.76575,1,1,.72458,1,1,1,1,.92241,1,1,1,.619,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.07257,1,.74705,.71119,1.02058,1.024,1.02119,1,1,1.1536,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05638,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],MyriadProRegularMetrics={lineHeight:1.2,lineGap:.2},SegoeuiBoldFactors=[1.76738,1,1,.99297,.9824,1.04016,1.06497,1.03424,.97529,1.17647,1.23203,1.1085,1.1085,1.16939,1.2107,.9754,1.21408,.9754,1.59578,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,.81378,.81378,1.2107,1.2107,1.2107,.71703,.97847,.97363,.88776,.8641,1.02096,.79795,.85132,.914,1.06085,1.1406,.8007,.89858,.83693,1.14889,1.09398,.97489,.92094,.97489,.90399,.84041,.95923,1.00135,1,1.06467,.98243,.90996,.99361,1.1085,1.56942,1.1085,1.2107,.74627,.94282,.96752,1.01519,.86304,1.01359,.97278,1.15103,1.01359,.98561,1.02285,1.02285,1.00527,1.02285,1.0302,.99041,1.0008,1.01519,1.01359,1.02258,.79104,1.16862,.99041,.97454,1.02511,.99298,.96752,.95801,.94856,1.16579,.94856,1.2107,.9824,1.03424,1.03424,1,1.03424,1.16579,.8727,1.3871,1.18622,1.10818,1.04478,1.2107,1.18622,.75155,.94994,1.28826,1.21408,1.21408,.91056,1,.91572,.9754,.64663,1.18328,1.24866,1.04478,1.14169,1.15749,1.17389,.71703,.97363,.97363,.97363,.97363,.97363,.97363,.93506,.8641,.79795,.79795,.79795,.79795,1.1406,1.1406,1.1406,1.1406,1.02096,1.09398,.97426,.97426,.97426,.97426,.97426,1.2107,.97489,1.00135,1.00135,1.00135,1.00135,.90996,.92094,1.02798,.96752,.96752,.96752,.96752,.96752,.96752,.93136,.86304,.97278,.97278,.97278,.97278,1.02285,1.02285,1.02285,1.02285,.97122,.99041,1,1,1,1,1,1.28826,1.0008,.99041,.99041,.99041,.99041,.96752,1.01519,.96752,.97363,.96752,.97363,.96752,.97363,.96752,.8641,.86304,.8641,.86304,.8641,.86304,.8641,.86304,1.02096,1.03057,1.02096,1.03517,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.914,1.01359,.914,1.01359,.914,1.01359,1,1,1.06085,.98561,1.06085,1.00879,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,.97138,1.08692,.8007,1.02285,1,1,1.00527,.83693,1.02285,1,1,.83693,.9455,.83693,.90418,.83693,1.13005,1.09398,.99041,1,1,1.09398,.99041,.96692,1.09251,.99041,.97489,1.0008,.97489,1.0008,.97489,1.0008,.93994,.97931,.90399,1.02258,1,1,.90399,1.02258,.84041,.79104,.84041,.79104,.84041,.79104,.84041,.79104,1,1,.95923,1.07034,.95923,1.16862,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.06467,1.02511,.90996,.96752,.90996,.99361,.95801,.99361,.95801,.99361,.95801,1.07733,1.03424,.97363,.96752,.93506,.93136,.97489,1.0008,1,1,.95923,1.16862,1.15103,1.15103,1.01173,1.03959,.75953,.81378,.79912,1.15103,1.21994,.95161,.87815,1.01149,.81525,.7676,.98167,1.01134,1.02546,.84097,1.03089,1.18102,.97363,.88776,.85134,.97826,.79795,.99361,1.06085,.97489,1.1406,.89858,1.0388,1.14889,1.09398,.86039,.97489,1.0595,.92094,.94793,.95923,.90996,.99346,.98243,1.02112,.95493,1.1406,.90996,1.03574,1.02597,1.0008,1.18102,1.06628,1.03574,1.0192,1.01932,1.00886,.97531,1.0106,1.0008,1.13189,1.18102,1.02277,.98683,1.0016,.99561,1.07237,1.0008,.90434,.99921,.93803,.8965,1.23085,1.06628,1.04983,.96268,1.0499,.98439,1.18102,1.06628,1.0008,1.06628,.98439,.79795,1,1,1,1,1,1,1,1,1,1,1,1,1.09466,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.97278,1,1,1,1,1,1,1,1,1,1,1,1,1.02065,1,1,1,1,1,1,1.06467,1.02511,1.06467,1.02511,1.06467,1.02511,.90996,.96752,1,1.21408,.89903,1,1,.75155,1.04394,1.04394,1.04394,1.04394,.98633,.98633,.98633,.73047,.73047,1.20642,.91211,1.25635,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.12454,.93503,1.03424,1.19687,1.03424,1,1,1,.771,1,1,1.15749,1.15749,1.15749,1.10948,.86279,.94434,.86279,.94434,.86182,1,1,1.16897,1,.96085,.90137,1.2107,1.18416,1.13973,.69825,.9716,2.10339,1.29004,1.29004,1.21172,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18874,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.09193,1.09193,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],SegoeuiBoldMetrics={lineHeight:1.33008,lineGap:0},SegoeuiBoldItalicFactors=[1.76738,1,1,.98946,1.03959,1.04016,1.02809,1.036,.97639,1.10953,1.23203,1.11144,1.11144,1.16939,1.21237,.9754,1.21261,.9754,1.59754,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,.81378,.81378,1.21237,1.21237,1.21237,.73541,.97847,.97363,.89723,.87897,1.0426,.79429,.85292,.91149,1.05815,1.1406,.79631,.90128,.83853,1.04396,1.10615,.97552,.94436,.97552,.88641,.80527,.96083,1.00135,1,1.06777,.9817,.91142,.99361,1.11144,1.57293,1.11144,1.21237,.74627,1.31818,1.06585,.97042,.83055,.97042,.93503,1.1261,.97042,.97922,1.14236,.94552,1.01054,1.14236,1.02471,.97922,.94165,.97042,.97042,1.0276,.78929,1.1261,.97922,.95874,1.02197,.98507,.96752,.97168,.95107,1.16579,.95107,1.21237,1.03959,1.036,1.036,1,1.036,1.16579,.87357,1.31818,1.18754,1.26781,1.05356,1.21237,1.18622,.79487,.94994,1.29004,1.24047,1.24047,1.31818,1,.91484,.9754,1.31818,1.1349,1.24866,1.05356,1.13934,1.15574,1.17389,.73541,.97363,.97363,.97363,.97363,.97363,.97363,.94385,.87897,.79429,.79429,.79429,.79429,1.1406,1.1406,1.1406,1.1406,1.0426,1.10615,.97552,.97552,.97552,.97552,.97552,1.21237,.97552,1.00135,1.00135,1.00135,1.00135,.91142,.94436,.98721,1.06585,1.06585,1.06585,1.06585,1.06585,1.06585,.96705,.83055,.93503,.93503,.93503,.93503,1.14236,1.14236,1.14236,1.14236,.93125,.97922,.94165,.94165,.94165,.94165,.94165,1.29004,.94165,.97922,.97922,.97922,.97922,.96752,.97042,.96752,.97363,1.06585,.97363,1.06585,.97363,1.06585,.87897,.83055,.87897,.83055,.87897,.83055,.87897,.83055,1.0426,1.0033,1.0426,.97042,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.91149,.97042,.91149,.97042,.91149,.97042,1,1,1.05815,.97922,1.05815,.97922,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,.97441,1.04302,.79631,1.01582,1,1,1.01054,.83853,1.14236,1,1,.83853,1.09125,.83853,.90418,.83853,1.19508,1.10615,.97922,1,1,1.10615,.97922,1.01034,1.10466,.97922,.97552,.94165,.97552,.94165,.97552,.94165,.91602,.91981,.88641,1.0276,1,1,.88641,1.0276,.80527,.78929,.80527,.78929,.80527,.78929,.80527,.78929,1,1,.96083,1.05403,.95923,1.16862,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.06777,1.02197,.91142,.96752,.91142,.99361,.97168,.99361,.97168,.99361,.97168,1.23199,1.036,.97363,1.06585,.94385,.96705,.97552,.94165,1,1,.96083,1.1261,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,.95161,1.27126,1.00811,.83284,.77702,.99137,.95253,1.0347,.86142,1.07205,1.14236,.97363,.89723,.86869,1.09818,.79429,.99361,1.05815,.97552,1.1406,.90128,1.06662,1.04396,1.10615,.84918,.97552,1.04694,.94436,.98015,.96083,.91142,1.00356,.9817,1.01945,.98999,1.1406,.91142,1.04961,.9898,1.00639,1.14236,1.07514,1.04961,.99607,1.02897,1.008,.9898,.95134,1.00639,1.11121,1.14236,1.00518,.97981,1.02186,1,1.08578,.94165,.99314,.98387,.93028,.93377,1.35125,1.07514,1.10687,.93491,1.04232,1.00351,1.14236,1.07514,.94165,1.07514,1.00351,.79429,1,1,1,1,1,1,1,1,1,1,1,1,1.09097,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.93503,1,1,1,1,1,1,1,1,1,1,1,1,.96609,1,1,1,1,1,1,1.06777,1.02197,1.06777,1.02197,1.06777,1.02197,.91142,.96752,1,1.21261,.89903,1,1,.75155,1.04745,1.04745,1.04745,1.04394,.98633,.98633,.98633,.72959,.72959,1.20502,.91406,1.26514,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.09125,.93327,1.03336,1.16541,1.036,1,1,1,.771,1,1,1.15574,1.15574,1.15574,1.15574,.86364,.94434,.86279,.94434,.86224,1,1,1.16798,1,.96085,.90068,1.21237,1.18416,1.13904,.69825,.9716,2.10339,1.29004,1.29004,1.21339,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18775,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.13269,1.13269,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],SegoeuiBoldItalicMetrics={lineHeight:1.33008,lineGap:0},SegoeuiItalicFactors=[1.76738,1,1,.98946,1.14763,1.05365,1.06234,.96927,.92586,1.15373,1.18414,.91349,.91349,1.07403,1.17308,.78383,1.20088,.78383,1.42531,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78383,.78383,1.17308,1.17308,1.17308,.77349,.94565,.94729,.85944,.88506,.9858,.74817,.80016,.88449,.98039,.95782,.69238,.89898,.83231,.98183,1.03989,.96924,.86237,.96924,.80595,.74524,.86091,.95402,.94143,.98448,.8858,.83089,.93285,1.0949,1.39016,1.0949,1.45994,.74627,1.04839,.97454,.97454,.87207,.97454,.87533,1.06151,.97454,1.00176,1.16484,1.08132,.98047,1.16484,1.02989,1.01054,.96225,.97454,.97454,1.06598,.79004,1.16344,1.00351,.94629,.9973,.91016,.96777,.9043,.91082,.92481,.91082,1.17308,.95748,.96927,.96927,1,.96927,.92481,.80597,1.04839,1.23393,1.1781,.9245,1.17308,1.20808,.63218,.94261,1.24822,1.09971,1.09971,1.04839,1,.85273,.78032,1.04839,1.09971,1.22326,.9245,1.09836,1.13525,1.15222,.70424,.94729,.94729,.94729,.94729,.94729,.94729,.85498,.88506,.74817,.74817,.74817,.74817,.95782,.95782,.95782,.95782,.9858,1.03989,.96924,.96924,.96924,.96924,.96924,1.17308,.96924,.95402,.95402,.95402,.95402,.83089,.86237,.88409,.97454,.97454,.97454,.97454,.97454,.97454,.92916,.87207,.87533,.87533,.87533,.87533,.93146,.93146,.93146,.93146,.93854,1.01054,.96225,.96225,.96225,.96225,.96225,1.24822,.8761,1.00351,1.00351,1.00351,1.00351,.96777,.97454,.96777,.94729,.97454,.94729,.97454,.94729,.97454,.88506,.87207,.88506,.87207,.88506,.87207,.88506,.87207,.9858,.95391,.9858,.97454,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.88449,.97454,.88449,.97454,.88449,.97454,1,1,.98039,1.00176,.98039,1.00176,.95782,.93146,.95782,.93146,.95782,.93146,.95782,1.16484,.95782,.93146,.84421,1.12761,.69238,1.08132,1,1,.98047,.83231,1.16484,1,1,.84723,1.04861,.84723,.78755,.83231,1.23736,1.03989,1.01054,1,1,1.03989,1.01054,.9857,1.03849,1.01054,.96924,.96225,.96924,.96225,.96924,.96225,.92383,.90171,.80595,1.06598,1,1,.80595,1.06598,.74524,.79004,.74524,.79004,.74524,.79004,.74524,.79004,1,1,.86091,1.02759,.85771,1.16344,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.98448,.9973,.83089,.96777,.83089,.93285,.9043,.93285,.9043,.93285,.9043,1.31868,.96927,.94729,.97454,.85498,.92916,.96924,.8761,1,1,.86091,1.16344,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,.81965,.81965,.94729,.78032,.71022,.90883,.84171,.99877,.77596,1.05734,1.2,.94729,.85944,.82791,.9607,.74817,.93285,.98039,.96924,.95782,.89898,.98316,.98183,1.03989,.78614,.96924,.97642,.86237,.86075,.86091,.83089,.90082,.8858,.97296,1.01284,.95782,.83089,1.0976,1.04,1.03342,1.2,1.0675,1.0976,.98205,1.03809,1.05097,1.04,.95364,1.03342,1.05401,1.2,1.02148,1.0119,1.04724,1.0127,1.02732,.96225,.8965,.97783,.93574,.94818,1.30679,1.0675,1.11826,.99821,1.0557,1.0326,1.2,1.0675,.96225,1.0675,1.0326,.74817,1,1,1,1,1,1,1,1,1,1,1,1,1.03754,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87533,1,1,1,1,1,1,1,1,1,1,1,1,.98705,1,1,1,1,1,1,.98448,.9973,.98448,.9973,.98448,.9973,.83089,.96777,1,1.20088,.89903,1,1,.75155,.94945,.94945,.94945,.94945,1.12317,1.12317,1.12317,.67603,.67603,1.15621,.73584,1.21191,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87709,.96927,1.01473,.96927,1,1,1,.77295,1,1,1.09836,1.09836,1.09836,1.01522,.86321,.94434,.8649,.94434,.86182,1,1,1.083,1,.91578,.86438,1.17308,1.18416,1.14589,.69825,.97622,1.96791,1.24822,1.24822,1.17308,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.17984,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10742,1.10742,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],SegoeuiItalicMetrics={lineHeight:1.33008,lineGap:0},SegoeuiRegularFactors=[1.76738,1,1,.98594,1.02285,1.10454,1.06234,.96927,.92037,1.19985,1.2046,.90616,.90616,1.07152,1.1714,.78032,1.20088,.78032,1.40246,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78032,.78032,1.1714,1.1714,1.1714,.80597,.94084,.96706,.85944,.85734,.97093,.75842,.79936,.88198,.9831,.95782,.71387,.86969,.84636,1.07796,1.03584,.96924,.83968,.96924,.82826,.79649,.85771,.95132,.93119,.98965,.88433,.8287,.93365,1.08612,1.3638,1.08612,1.45786,.74627,.80499,.91484,1.05707,.92383,1.05882,.9403,1.12654,1.05882,1.01756,1.09011,1.09011,.99414,1.09011,1.034,1.01756,1.05356,1.05707,1.05882,1.04399,.84863,1.21968,1.01756,.95801,1.00068,.91797,.96777,.9043,.90351,.92105,.90351,1.1714,.85337,.96927,.96927,.99912,.96927,.92105,.80597,1.2434,1.20808,1.05937,.90957,1.1714,1.20808,.75155,.94261,1.24644,1.09971,1.09971,.84751,1,.85273,.78032,.61584,1.05425,1.17914,.90957,1.08665,1.11593,1.14169,.73381,.96706,.96706,.96706,.96706,.96706,.96706,.86035,.85734,.75842,.75842,.75842,.75842,.95782,.95782,.95782,.95782,.97093,1.03584,.96924,.96924,.96924,.96924,.96924,1.1714,.96924,.95132,.95132,.95132,.95132,.8287,.83968,.89049,.91484,.91484,.91484,.91484,.91484,.91484,.93575,.92383,.9403,.9403,.9403,.9403,.8717,.8717,.8717,.8717,1.00527,1.01756,1.05356,1.05356,1.05356,1.05356,1.05356,1.24644,.95923,1.01756,1.01756,1.01756,1.01756,.96777,1.05707,.96777,.96706,.91484,.96706,.91484,.96706,.91484,.85734,.92383,.85734,.92383,.85734,.92383,.85734,.92383,.97093,1.0969,.97093,1.05882,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.88198,1.05882,.88198,1.05882,.88198,1.05882,1,1,.9831,1.01756,.9831,1.01756,.95782,.8717,.95782,.8717,.95782,.8717,.95782,1.09011,.95782,.8717,.84784,1.11551,.71387,1.09011,1,1,.99414,.84636,1.09011,1,1,.84636,1.0536,.84636,.94298,.84636,1.23297,1.03584,1.01756,1,1,1.03584,1.01756,1.00323,1.03444,1.01756,.96924,1.05356,.96924,1.05356,.96924,1.05356,.93066,.98293,.82826,1.04399,1,1,.82826,1.04399,.79649,.84863,.79649,.84863,.79649,.84863,.79649,.84863,1,1,.85771,1.17318,.85771,1.21968,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.98965,1.00068,.8287,.96777,.8287,.93365,.9043,.93365,.9043,.93365,.9043,1.08571,.96927,.96706,.91484,.86035,.93575,.96924,.95923,1,1,.85771,1.21968,1.11437,1.11437,.93109,.91202,.60411,.84164,.55572,1.01173,.97361,.81818,.81818,.96635,.78032,.72727,.92366,.98601,1.03405,.77968,1.09799,1.2,.96706,.85944,.85638,.96491,.75842,.93365,.9831,.96924,.95782,.86969,.94152,1.07796,1.03584,.78437,.96924,.98715,.83968,.83491,.85771,.8287,.94492,.88433,.9287,1.0098,.95782,.8287,1.0625,.98248,1.03424,1.2,1.01071,1.0625,.95246,1.03809,1.04912,.98248,1.00221,1.03424,1.05443,1.2,1.04785,.99609,1.00169,1.05176,.99346,1.05356,.9087,1.03004,.95542,.93117,1.23362,1.01071,1.07831,1.02512,1.05205,1.03502,1.2,1.01071,1.05356,1.01071,1.03502,.75842,1,1,1,1,1,1,1,1,1,1,1,1,1.03719,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9403,1,1,1,1,1,1,1,1,1,1,1,1,1.04021,1,1,1,1,1,1,.98965,1.00068,.98965,1.00068,.98965,1.00068,.8287,.96777,1,1.20088,.89903,1,1,.75155,1.03077,1.03077,1.03077,1.03077,1.13196,1.13196,1.13196,.67428,.67428,1.16039,.73291,1.20996,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87796,.96927,1.01518,.96927,1,1,1,.77295,1,1,1.10539,1.10539,1.11358,1.06967,.86279,.94434,.86279,.94434,.86182,1,1,1.083,1,.91578,.86507,1.1714,1.18416,1.14589,.69825,.97622,1.9697,1.24822,1.24822,1.17238,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18083,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10938,1.10938,1,1,1,1.05425,1.09971,1.09971,1.09971,1,1,1,1,1,1,1,1,1,1,1],SegoeuiRegularMetrics={lineHeight:1.33008,lineGap:0},getXFAFontMap=getLookupTableFactory(function(t){t["MyriadPro-Regular"]=t["PdfJS-Fallback-Regular"]={name:"LiberationSans-Regular",factors:MyriadProRegularFactors,baseWidths:LiberationSansRegularWidths,baseMapping:LiberationSansRegularMapping,metrics:MyriadProRegularMetrics},t["MyriadPro-Bold"]=t["PdfJS-Fallback-Bold"]={name:"LiberationSans-Bold",factors:MyriadProBoldFactors,baseWidths:LiberationSansBoldWidths,baseMapping:LiberationSansBoldMapping,metrics:MyriadProBoldMetrics},t["MyriadPro-It"]=t["MyriadPro-Italic"]=t["PdfJS-Fallback-Italic"]={name:"LiberationSans-Italic",factors:MyriadProItalicFactors,baseWidths:LiberationSansItalicWidths,baseMapping:LiberationSansItalicMapping,metrics:MyriadProItalicMetrics},t["MyriadPro-BoldIt"]=t["MyriadPro-BoldItalic"]=t["PdfJS-Fallback-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:MyriadProBoldItalicFactors,baseWidths:LiberationSansBoldItalicWidths,baseMapping:LiberationSansBoldItalicMapping,metrics:MyriadProBoldItalicMetrics},t.ArialMT=t.Arial=t["Arial-Regular"]={name:"LiberationSans-Regular",baseWidths:LiberationSansRegularWidths,baseMapping:LiberationSansRegularMapping},t["Arial-BoldMT"]=t["Arial-Bold"]={name:"LiberationSans-Bold",baseWidths:LiberationSansBoldWidths,baseMapping:LiberationSansBoldMapping},t["Arial-ItalicMT"]=t["Arial-Italic"]={name:"LiberationSans-Italic",baseWidths:LiberationSansItalicWidths,baseMapping:LiberationSansItalicMapping},t["Arial-BoldItalicMT"]=t["Arial-BoldItalic"]={name:"LiberationSans-BoldItalic",baseWidths:LiberationSansBoldItalicWidths,baseMapping:LiberationSansBoldItalicMapping},t["Calibri-Regular"]={name:"LiberationSans-Regular",factors:CalibriRegularFactors,baseWidths:LiberationSansRegularWidths,baseMapping:LiberationSansRegularMapping,metrics:CalibriRegularMetrics},t["Calibri-Bold"]={name:"LiberationSans-Bold",factors:CalibriBoldFactors,baseWidths:LiberationSansBoldWidths,baseMapping:LiberationSansBoldMapping,metrics:CalibriBoldMetrics},t["Calibri-Italic"]={name:"LiberationSans-Italic",factors:CalibriItalicFactors,baseWidths:LiberationSansItalicWidths,baseMapping:LiberationSansItalicMapping,metrics:CalibriItalicMetrics},t["Calibri-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:CalibriBoldItalicFactors,baseWidths:LiberationSansBoldItalicWidths,baseMapping:LiberationSansBoldItalicMapping,metrics:CalibriBoldItalicMetrics},t["Segoeui-Regular"]={name:"LiberationSans-Regular",factors:SegoeuiRegularFactors,baseWidths:LiberationSansRegularWidths,baseMapping:LiberationSansRegularMapping,metrics:SegoeuiRegularMetrics},t["Segoeui-Bold"]={name:"LiberationSans-Bold",factors:SegoeuiBoldFactors,baseWidths:LiberationSansBoldWidths,baseMapping:LiberationSansBoldMapping,metrics:SegoeuiBoldMetrics},t["Segoeui-Italic"]={name:"LiberationSans-Italic",factors:SegoeuiItalicFactors,baseWidths:LiberationSansItalicWidths,baseMapping:LiberationSansItalicMapping,metrics:SegoeuiItalicMetrics},t["Segoeui-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:SegoeuiBoldItalicFactors,baseWidths:LiberationSansBoldItalicWidths,baseMapping:LiberationSansBoldItalicMapping,metrics:SegoeuiBoldItalicMetrics},t["Helvetica-Regular"]=t.Helvetica={name:"LiberationSans-Regular",factors:HelveticaRegularFactors,baseWidths:LiberationSansRegularWidths,baseMapping:LiberationSansRegularMapping,metrics:HelveticaRegularMetrics},t["Helvetica-Bold"]={name:"LiberationSans-Bold",factors:HelveticaBoldFactors,baseWidths:LiberationSansBoldWidths,baseMapping:LiberationSansBoldMapping,metrics:HelveticaBoldMetrics},t["Helvetica-Italic"]={name:"LiberationSans-Italic",factors:HelveticaItalicFactors,baseWidths:LiberationSansItalicWidths,baseMapping:LiberationSansItalicMapping,metrics:HelveticaItalicMetrics},t["Helvetica-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:HelveticaBoldItalicFactors,baseWidths:LiberationSansBoldItalicWidths,baseMapping:LiberationSansBoldItalicMapping,metrics:HelveticaBoldItalicMetrics}});function getXfaFontName(name){name=normalizeFontName(name);return getXFAFontMap()[name]}function getXfaFontWidths(name){name=getXfaFontName(name);if(!name)return null;const{baseWidths,baseMapping,factors}=name;var rescaledBaseWidths=factors?baseWidths.map((w,i)=>w*factors[i]):baseWidths;let currentCode=-2,currentArray;var unicode,glyphIndex,newWidths=[];for([unicode,glyphIndex]of baseMapping.map((charUnicode,index)=>[charUnicode,index]).sort(([unicode1],[unicode2])=>unicode1-unicode2))-1!==unicode&&(unicode===currentCode+1?(currentArray.push(rescaledBaseWidths[glyphIndex]),currentCode+=1):(currentCode=unicode,currentArray=[rescaledBaseWidths[glyphIndex]],newWidths.push(unicode,currentArray)));return newWidths}function getXfaFontDict(name){var widths=getXfaFontWidths(name),dict=new Dict(null),name=(dict.set("BaseFont",Name.get(name)),dict.set("Type",Name.get("Font")),dict.set("Subtype",Name.get("CIDFontType2")),dict.set("Encoding",Name.get("Identity-H")),dict.set("CIDToGIDMap",Name.get("Identity")),dict.set("W",widths),dict.set("FirstChar",widths[0]),dict.set("LastChar",widths.at(-2)+widths.at(-1).length-1),new Dict(null)),widths=(dict.set("FontDescriptor",name),new Dict(null));return widths.set("Ordering","Identity"),widths.set("Registry","Adobe"),widths.set("Supplement",0),dict.set("CIDSystemInfo",widths),dict}class PostScriptParser{constructor(lexer){this.lexer=lexer,this.operators=[],this.token=null,this.prev=null}nextToken(){this.prev=this.token,this.token=this.lexer.getToken()}accept(type){return this.token.type===type&&(this.nextToken(),!0)}expect(type){if(this.accept(type))return!0;throw new FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`)}parse(){return this.nextToken(),this.expect(PostScriptTokenTypes.LBRACE),this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.operators}parseBlock(){for(;;)if(this.accept(PostScriptTokenTypes.NUMBER))this.operators.push(this.prev.value);else if(this.accept(PostScriptTokenTypes.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(PostScriptTokenTypes.LBRACE))return;this.parseCondition()}}parseCondition(){var conditionLocation=this.operators.length;if(this.operators.push(null,null),this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.accept(PostScriptTokenTypes.IF))this.operators[conditionLocation]=this.operators.length;else{if(!this.accept(PostScriptTokenTypes.LBRACE))throw new FormatError("PS Function: error parsing conditional.");var jumpLocation=this.operators.length,endOfTrue=(this.operators.push(null,null),this.operators.length);this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.expect(PostScriptTokenTypes.IFELSE),this.operators[jumpLocation]=this.operators.length,this.operators[jumpLocation+1]="j",this.operators[conditionLocation]=endOfTrue}this.operators[conditionLocation+1]="jz"}}const PostScriptTokenTypes={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};class PostScriptToken{static get opCache(){return shadow(this,"opCache",Object.create(null))}constructor(type,value){this.type=type,this.value=value}static getOperator(op){return PostScriptToken.opCache[op]||=new PostScriptToken(PostScriptTokenTypes.OPERATOR,op)}static get LBRACE(){return shadow(this,"LBRACE",new PostScriptToken(PostScriptTokenTypes.LBRACE,"{"))}static get RBRACE(){return shadow(this,"RBRACE",new PostScriptToken(PostScriptTokenTypes.RBRACE,"}"))}static get IF(){return shadow(this,"IF",new PostScriptToken(PostScriptTokenTypes.IF,"IF"))}static get IFELSE(){return shadow(this,"IFELSE",new PostScriptToken(PostScriptTokenTypes.IFELSE,"IFELSE"))}}class PostScriptLexer{constructor(stream){this.stream=stream,this.nextChar(),this.strBuf=[]}nextChar(){return this.currentChar=this.stream.getByte()}getToken(){let comment=!1,ch=this.currentChar;for(;;){if(ch<0)return EOF;if(comment)10!==ch&&13!==ch||(comment=!1);else if(37===ch)comment=!0;else if(!isWhiteSpace(ch))break;ch=this.nextChar()}switch(0|ch){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new PostScriptToken(PostScriptTokenTypes.NUMBER,this.getNumber());case 123:return this.nextChar(),PostScriptToken.LBRACE;case 125:return this.nextChar(),PostScriptToken.RBRACE}var strBuf=this.strBuf;for(strBuf.length=0,strBuf[0]=String.fromCharCode(ch);0<=(ch=this.nextChar())&&(65<=ch&&ch<=90||97<=ch&&ch<=122);)strBuf.push(String.fromCharCode(ch));var str=strBuf.join("");switch(str.toLowerCase()){case"if":return PostScriptToken.IF;case"ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(str)}}getNumber(){var ch=this.currentChar,strBuf=this.strBuf;for(strBuf.length=0,strBuf[0]=String.fromCharCode(ch);0<=(ch=this.nextChar())&&(48<=ch&&ch<=57||45===ch||46===ch);)strBuf.push(String.fromCharCode(ch));var value=parseFloat(strBuf.join(""));if(isNaN(value))throw new FormatError("Invalid floating point number: "+value);return value}}class BaseLocalCache{constructor(options){this.constructor===BaseLocalCache&&unreachable("Cannot initialize BaseLocalCache."),this._onlyRefs=!0===options?.onlyRefs,this._onlyRefs||(this._nameRefMap=new Map,this._imageMap=new Map),this._imageCache=new RefSetCache}getByName(name){this._onlyRefs&&unreachable("Should not call `getByName` method.");var ref=this._nameRefMap.get(name);return ref?this.getByRef(ref):this._imageMap.get(name)||null}getByRef(ref){return this._imageCache.get(ref)||null}set(name,ref,data){unreachable("Abstract method `set` called.")}}class LocalImageCache extends BaseLocalCache{set(name,ref=null,data){if("string"!=typeof name)throw new Error('LocalImageCache.set - expected "name" argument.');if(ref)return this._imageCache.has(ref)?void 0:(this._nameRefMap.set(name,ref),void this._imageCache.put(ref,data));this._imageMap.has(name)||this._imageMap.set(name,data)}}class LocalColorSpaceCache extends BaseLocalCache{set(name=null,ref=null,data){if("string"!=typeof name&&!ref)throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');if(ref)return this._imageCache.has(ref)?void 0:(null!==name&&this._nameRefMap.set(name,ref),void this._imageCache.put(ref,data));this._imageMap.has(name)||this._imageMap.set(name,data)}}class LocalFunctionCache extends BaseLocalCache{constructor(options){super({onlyRefs:!0})}set(name=0,ref,data){if(!ref)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(ref)||this._imageCache.put(ref,data)}}class LocalGStateCache extends BaseLocalCache{set(name,ref=null,data){if("string"!=typeof name)throw new Error('LocalGStateCache.set - expected "name" argument.');if(ref)return this._imageCache.has(ref)?void 0:(this._nameRefMap.set(name,ref),void this._imageCache.put(ref,data));this._imageMap.has(name)||this._imageMap.set(name,data)}}class LocalTilingPatternCache extends BaseLocalCache{constructor(options){super({onlyRefs:!0})}set(name=0,ref,data){if(!ref)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(ref)||this._imageCache.put(ref,data)}}class RegionalImageCache extends BaseLocalCache{constructor(options){super({onlyRefs:!0})}set(name=0,ref,data){if(!ref)throw new Error('RegionalImageCache.set - expected "ref" argument.');this._imageCache.has(ref)||this._imageCache.put(ref,data)}}class GlobalImageCache{static NUM_PAGES_THRESHOLD=2;static MIN_IMAGES_TO_CACHE=10;static MAX_BYTE_SIZE=5*MAX_IMAGE_SIZE_TO_CACHE;constructor(){this._refCache=new RefSetCache,this._imageCache=new RefSetCache}get _byteSize(){let byteSize=0;for(const imageData of this._imageCache)byteSize+=imageData.byteSize;return byteSize}get _cacheLimitReached(){return!(this._imageCache.size<GlobalImageCache.MIN_IMAGES_TO_CACHE||this._byteSize<GlobalImageCache.MAX_BYTE_SIZE)}shouldCache(ref,pageIndex){let pageIndexSet=this._refCache.get(ref);return pageIndexSet||(pageIndexSet=new Set,this._refCache.put(ref,pageIndexSet)),pageIndexSet.add(pageIndex),!(pageIndexSet.size<GlobalImageCache.NUM_PAGES_THRESHOLD||!this._imageCache.has(ref)&&this._cacheLimitReached)}addByteSize(ref,byteSize){ref=this._imageCache.get(ref);ref&&!ref.byteSize&&(ref.byteSize=byteSize)}getData(ref,pageIndex){var pageIndexSet=this._refCache.get(ref);return pageIndexSet&&!(pageIndexSet.size<GlobalImageCache.NUM_PAGES_THRESHOLD)&&(ref=this._imageCache.get(ref))?(pageIndexSet.add(pageIndex),ref):null}setData(ref,data){if(!this._refCache.has(ref))throw new Error('GlobalImageCache.setData - expected "shouldCache" to have been called.');this._imageCache.has(ref)||(this._cacheLimitReached?warn("GlobalImageCache.setData - cache limit reached."):this._imageCache.put(ref,data))}clear(onlyData=!1){onlyData||this._refCache.clear(),this._imageCache.clear()}}class PDFFunctionFactory{constructor({xref,isEvalSupported=!0}){this.xref=xref,this.isEvalSupported=!1!==isEvalSupported}create(fn){var cachedFunction=this.getCached(fn);return cachedFunction||(cachedFunction=PDFFunction.parse({xref:this.xref,isEvalSupported:this.isEvalSupported,fn:fn instanceof Ref?this.xref.fetch(fn):fn}),this._cache(fn,cachedFunction),cachedFunction)}createFromArray(fnObj){var cachedFunction=this.getCached(fnObj);return cachedFunction||(cachedFunction=PDFFunction.parseArray({xref:this.xref,isEvalSupported:this.isEvalSupported,fnObj:fnObj instanceof Ref?this.xref.fetch(fnObj):fnObj}),this._cache(fnObj,cachedFunction),cachedFunction)}getCached(cacheKey){let fnRef;if(cacheKey instanceof Ref?fnRef=cacheKey:cacheKey instanceof Dict?fnRef=cacheKey.objId:cacheKey instanceof BaseStream&&(fnRef=cacheKey.dict?.objId),fnRef){cacheKey=this._localFunctionCache.getByRef(fnRef);if(cacheKey)return cacheKey}return null}_cache(cacheKey,parsedFunction){if(!parsedFunction)throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.');let fnRef;cacheKey instanceof Ref?fnRef=cacheKey:cacheKey instanceof Dict?fnRef=cacheKey.objId:cacheKey instanceof BaseStream&&(fnRef=cacheKey.dict?.objId),fnRef&&this._localFunctionCache.set(null,fnRef,parsedFunction)}get _localFunctionCache(){return shadow(this,"_localFunctionCache",new LocalFunctionCache)}}function toNumberArray(arr){return Array.isArray(arr)?isNumberArray(arr,null)?arr:arr.map(x=>+x):null}class PDFFunction{static getSampleArray(size,outputSize,bps,stream){let i,ii,length=1;for(i=0,ii=size.length;i<ii;i++)length*=size[i];length*=outputSize;var array=new Array(length);let codeSize=0,codeBuf=0;var sampleMul=1/(2**bps-1),strBytes=stream.getBytes((length*bps+7)/8);let strIdx=0;for(i=0;i<length;i++){for(;codeSize<bps;)codeBuf=(codeBuf<<=8)|strBytes[strIdx++],codeSize+=8;codeSize-=bps,array[i]=(codeBuf>>codeSize)*sampleMul,codeBuf&=(1<<codeSize)-1}return array}static parse({xref,isEvalSupported,fn}){var dict=fn.dict||fn;switch(dict.get("FunctionType")){case 0:return this.constructSampled({xref:xref,isEvalSupported:isEvalSupported,fn:fn,dict:dict});case 1:break;case 2:return this.constructInterpolated({xref:xref,isEvalSupported:isEvalSupported,dict:dict});case 3:return this.constructStiched({xref:xref,isEvalSupported:isEvalSupported,dict:dict});case 4:return this.constructPostScript({xref:xref,isEvalSupported:isEvalSupported,fn:fn,dict:dict})}throw new FormatError("Unknown type of function")}static parseArray({xref,isEvalSupported,fnObj}){if(!Array.isArray(fnObj))return this.parse({xref:xref,isEvalSupported:isEvalSupported,fn:fnObj});const fnArray=[];for(const fn of fnObj)fnArray.push(this.parse({xref:xref,isEvalSupported:isEvalSupported,fn:xref.fetchIfRef(fn)}));return function(src,srcOffset,dest,destOffset){for(let i=0,ii=fnArray.length;i<ii;i++)fnArray[i](src,srcOffset,dest,destOffset+i)}}static constructSampled({fn,dict}){function toMultiArray(arr){var inputLength=arr.length,out=[];let index=0;for(let i=0;i<inputLength;i+=2)out[index++]=[arr[i],arr[i+1]];return out}function interpolate(x,xmin,xmax,ymin,ymax){return ymin+(ymax-ymin)/(xmax-xmin)*(x-xmin)}let domain=toNumberArray(dict.getArray("Domain")),range=toNumberArray(dict.getArray("Range"));if(!domain||!range)throw new FormatError("No domain or range");const inputSize=domain.length/2,outputSize=range.length/2,size=(domain=toMultiArray(domain),range=toMultiArray(range),toNumberArray(dict.getArray("Size")));var bps=dict.get("BitsPerSample"),order=dict.get("Order")||1;1!==order&&info("No support for cubic spline interpolation: "+order);let encode=toNumberArray(dict.getArray("Encode"));if(encode)encode=toMultiArray(encode);else{encode=[];for(let i=0;i<inputSize;++i)encode.push([0,size[i]-1])}let decode=toNumberArray(dict.getArray("Decode"));decode=decode?toMultiArray(decode):range;const samples=this.getSampleArray(size,outputSize,bps,fn);return function(src,srcOffset,dest,destOffset){var cubeVertices=1<<inputSize,cubeN=new Float64Array(cubeVertices),cubeVertex=new Uint32Array(cubeVertices);let i,j;for(j=0;j<cubeVertices;j++)cubeN[j]=1;let k=outputSize,pos=1;for(i=0;i<inputSize;++i){var domain_2i=domain[i][0],domain_2i_1=domain[i][1],domain_2i=interpolate(Math.min(Math.max(src[srcOffset+i],domain_2i),domain_2i_1),domain_2i,domain_2i_1,encode[i][0],encode[i][1]),domain_2i_1=size[i],e0=(domain_2i=Math.min(Math.max(domain_2i,0),domain_2i_1-1))<domain_2i_1-1?Math.floor(domain_2i):domain_2i-1,n0=e0+1-domain_2i,n1=domain_2i-e0,offset0=e0*k,offset1=offset0+k;for(j=0;j<cubeVertices;j++)j&pos?(cubeN[j]*=n1,cubeVertex[j]+=offset1):(cubeN[j]*=n0,cubeVertex[j]+=offset0);k*=domain_2i_1,pos<<=1}for(j=0;j<outputSize;++j){let rj=0;for(i=0;i<cubeVertices;i++)rj+=samples[cubeVertex[i]+j]*cubeN[i];rj=interpolate(rj,0,1,decode[j][0],decode[j][1]),dest[destOffset+j]=Math.min(Math.max(rj,range[j][0]),range[j][1])}}}static constructInterpolated({dict}){const c0=toNumberArray(dict.getArray("C0"))||[0];var c1=toNumberArray(dict.getArray("C1"))||[1];const n=dict.get("N"),diff=[];for(let i=0,ii=c0.length;i<ii;++i)diff.push(c1[i]-c0[i]);const length=diff.length;return function(src,srcOffset,dest,destOffset){var x=1===n?src[srcOffset]:src[srcOffset]**n;for(let j=0;j<length;++j)dest[destOffset+j]=c0[j]+x*diff[j]}}static constructStiched({xref,isEvalSupported,dict}){const domain=toNumberArray(dict.getArray("Domain"));if(!domain)throw new FormatError("No domain");if(1!=domain.length/2)throw new FormatError("Bad domain for stiched function");const fns=[];for(const fn of dict.get("Functions"))fns.push(this.parse({xref:xref,isEvalSupported:isEvalSupported,fn:xref.fetchIfRef(fn)}));const bounds=toNumberArray(dict.getArray("Bounds")),encode=toNumberArray(dict.getArray("Encode")),tmpBuf=new Float32Array(1);return function(src,srcOffset,dest,destOffset){var v=function(v,min,max){return max<v?v=max:v<min&&(v=min),v}(src[srcOffset],domain[0],domain[1]),length=bounds.length;let i;for(i=0;i<length&&!(v<bounds[i]);++i);let dmin=domain[0],dmax=(0<i&&(dmin=bounds[i-1]),domain[1]);i<bounds.length&&(dmax=bounds[i]);src=encode[2*i],srcOffset=encode[2*i+1];tmpBuf[0]=dmin===dmax?src:src+(v-dmin)*(srcOffset-src)/(dmax-dmin),fns[i](tmpBuf,0,dest,destOffset)}}static constructPostScript({isEvalSupported,fn,dict}){var domain=toNumberArray(dict.getArray("Domain"));const range=toNumberArray(dict.getArray("Range"));if(!domain)throw new FormatError("No domain.");if(!range)throw new FormatError("No range.");dict=new PostScriptLexer(fn),fn=new PostScriptParser(dict).parse();if(isEvalSupported&&FeatureTest.isEvalSupported){dict=(new PostScriptCompiler).compile(fn,domain,range);if(dict)return new Function("src","srcOffset","dest","destOffset",dict)}info("Unable to compile PS function");const numOutputs=range.length>>1,numInputs=domain.length>>1,evaluator=new PostScriptEvaluator(fn),cache=Object.create(null);let cache_available=8192;const tmpBuf=new Float32Array(numInputs);return function(src,srcOffset,dest,destOffset){let i,value,key="";var input=tmpBuf;for(i=0;i<numInputs;i++)value=src[srcOffset+i],input[i]=value,key+=value+"_";var cachedValue=cache[key];if(void 0!==cachedValue)dest.set(cachedValue,destOffset);else{var output=new Float32Array(numOutputs),stack=evaluator.execute(input),stackIndex=stack.length-numOutputs;for(i=0;i<numOutputs;i++){value=stack[stackIndex+i];var bound=range[2*i];(value<bound||(bound=range[2*i+1],value>bound))&&(value=bound),output[i]=value}0<cache_available&&(cache_available--,cache[key]=output),dest.set(output,destOffset)}}}}function isPDFFunction(v){let fnDict;if(v instanceof Dict)fnDict=v;else{if(!(v instanceof BaseStream))return!1;fnDict=v.dict}return fnDict.has("FunctionType")}class PostScriptStack{static MAX_STACK_SIZE=100;constructor(initialStack){this.stack=initialStack?Array.from(initialStack):[]}push(value){if(this.stack.length>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(value)}pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}copy(n){if(this.stack.length+n>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");var stack=this.stack;for(let i=stack.length-n,j=n-1;0<=j;j--,i++)stack.push(stack[i])}index(n){this.push(this.stack[this.stack.length-n-1])}roll(n,p){var stack=this.stack,l=stack.length-n,r=stack.length-1,p=l+(p-Math.floor(p/n)*n);for(let i=l,j=r;i<j;i++,j--){var t=stack[i];stack[i]=stack[j],stack[j]=t}for(let i=l,j=p-1;i<j;i++,j--){const t=stack[i];stack[i]=stack[j],stack[j]=t}for(let i=p,j=r;i<j;i++,j--){const t=stack[i];stack[i]=stack[j],stack[j]=t}}}class PostScriptEvaluator{constructor(operators){this.operators=operators}execute(initialStack){var stack=new PostScriptStack(initialStack);let counter=0;var operators=this.operators,length=operators.length;let operator,a,b;for(;counter<length;)if("number"==typeof(operator=operators[counter++]))stack.push(operator);else switch(operator){case"jz":b=stack.pop(),(a=stack.pop())||(counter=b);break;case"j":a=stack.pop(),counter=a;break;case"abs":a=stack.pop(),stack.push(Math.abs(a));break;case"add":b=stack.pop(),a=stack.pop(),stack.push(a+b);break;case"and":b=stack.pop(),"boolean"==typeof(a=stack.pop())&&"boolean"==typeof b?stack.push(a&&b):stack.push(a&b);break;case"atan":b=stack.pop(),a=stack.pop(),(a=Math.atan2(a,b)/Math.PI*180)<0&&(a+=360),stack.push(a);break;case"bitshift":b=stack.pop(),0<(a=stack.pop())?stack.push(a<<b):stack.push(a>>b);break;case"ceiling":a=stack.pop(),stack.push(Math.ceil(a));break;case"copy":a=stack.pop(),stack.copy(a);break;case"cos":a=stack.pop(),stack.push(Math.cos(a%360/180*Math.PI));break;case"cvi":a=0|stack.pop(),stack.push(a);break;case"cvr":break;case"div":b=stack.pop(),a=stack.pop(),stack.push(a/b);break;case"dup":stack.copy(1);break;case"eq":b=stack.pop(),a=stack.pop(),stack.push(a===b);break;case"exch":stack.roll(2,1);break;case"exp":b=stack.pop(),a=stack.pop(),stack.push(a**b);break;case"false":stack.push(!1);break;case"floor":a=stack.pop(),stack.push(Math.floor(a));break;case"ge":b=stack.pop(),a=stack.pop(),stack.push(a>=b);break;case"gt":b=stack.pop(),a=stack.pop(),stack.push(a>b);break;case"idiv":b=stack.pop(),a=stack.pop(),stack.push(a/b|0);break;case"index":a=stack.pop(),stack.index(a);break;case"le":b=stack.pop(),a=stack.pop(),stack.push(a<=b);break;case"ln":a=stack.pop(),stack.push(Math.log(a));break;case"log":a=stack.pop(),stack.push(Math.log10(a));break;case"lt":b=stack.pop(),a=stack.pop(),stack.push(a<b);break;case"mod":b=stack.pop(),a=stack.pop(),stack.push(a%b);break;case"mul":b=stack.pop(),a=stack.pop(),stack.push(a*b);break;case"ne":b=stack.pop(),a=stack.pop(),stack.push(a!==b);break;case"neg":a=stack.pop(),stack.push(-a);break;case"not":"boolean"==typeof(a=stack.pop())?stack.push(!a):stack.push(~a);break;case"or":b=stack.pop(),"boolean"==typeof(a=stack.pop())&&"boolean"==typeof b?stack.push(a||b):stack.push(a|b);break;case"pop":stack.pop();break;case"roll":b=stack.pop(),a=stack.pop(),stack.roll(a,b);break;case"round":a=stack.pop(),stack.push(Math.round(a));break;case"sin":a=stack.pop(),stack.push(Math.sin(a%360/180*Math.PI));break;case"sqrt":a=stack.pop(),stack.push(Math.sqrt(a));break;case"sub":b=stack.pop(),a=stack.pop(),stack.push(a-b);break;case"true":stack.push(!0);break;case"truncate":a=(a=stack.pop())<0?Math.ceil(a):Math.floor(a),stack.push(a);break;case"xor":b=stack.pop(),"boolean"==typeof(a=stack.pop())&&"boolean"==typeof b?stack.push(a!==b):stack.push(a^b);break;default:throw new FormatError("Unknown operator "+operator)}return stack.stack}}class AstNode{constructor(type){this.type=type}visit(visitor){unreachable("abstract method")}}class AstArgument extends AstNode{constructor(index,min,max){super("args"),this.index=index,this.min=min,this.max=max}visit(visitor){visitor.visitArgument(this)}}class AstLiteral extends AstNode{constructor(number){super("literal"),this.number=number,this.min=number,this.max=number}visit(visitor){visitor.visitLiteral(this)}}class AstBinaryOperation extends AstNode{constructor(op,arg1,arg2,min,max){super("binary"),this.op=op,this.arg1=arg1,this.arg2=arg2,this.min=min,this.max=max}visit(visitor){visitor.visitBinaryOperation(this)}}class AstMin extends AstNode{constructor(arg,max){super("max"),this.arg=arg,this.min=arg.min,this.max=max}visit(visitor){visitor.visitMin(this)}}class AstVariable extends AstNode{constructor(index,min,max){super("var"),this.index=index,this.min=min,this.max=max}visit(visitor){visitor.visitVariable(this)}}class AstVariableDefinition extends AstNode{constructor(variable,arg){super("definition"),this.variable=variable,this.arg=arg}visit(visitor){visitor.visitVariableDefinition(this)}}class ExpressionBuilderVisitor{constructor(){this.parts=[]}visitArgument(arg){this.parts.push("Math.max(",arg.min,", Math.min(",arg.max,", src[srcOffset + ",arg.index,"]))")}visitVariable(variable){this.parts.push("v",variable.index)}visitLiteral(literal){this.parts.push(literal.number)}visitBinaryOperation(operation){this.parts.push("("),operation.arg1.visit(this),this.parts.push(" ",operation.op," "),operation.arg2.visit(this),this.parts.push(")")}visitVariableDefinition(definition){this.parts.push("var "),definition.variable.visit(this),this.parts.push(" = "),definition.arg.visit(this),this.parts.push(";")}visitMin(max){this.parts.push("Math.min("),max.arg.visit(this),this.parts.push(", ",max.max,")")}toString(){return this.parts.join("")}}function buildAddOperation(num1,num2){return"literal"===num2.type&&0===num2.number?num1:"literal"===num1.type&&0===num1.number?num2:"literal"===num2.type&&"literal"===num1.type?new AstLiteral(num1.number+num2.number):new AstBinaryOperation("+",num1,num2,num1.min+num2.min,num1.max+num2.max)}function buildMulOperation(num1,num2){if("literal"===num2.type){if(0===num2.number)return new AstLiteral(0);if(1===num2.number)return num1;if("literal"===num1.type)return new AstLiteral(num1.number*num2.number)}if("literal"===num1.type){if(0===num1.number)return new AstLiteral(0);if(1===num1.number)return num2}var min=Math.min(num1.min*num2.min,num1.min*num2.max,num1.max*num2.min,num1.max*num2.max),max=Math.max(num1.min*num2.min,num1.min*num2.max,num1.max*num2.min,num1.max*num2.max);return new AstBinaryOperation("*",num1,num2,min,max)}function buildSubOperation(num1,num2){if("literal"===num2.type){if(0===num2.number)return num1;if("literal"===num1.type)return new AstLiteral(num1.number-num2.number)}return"binary"===num2.type&&"-"===num2.op&&"literal"===num1.type&&1===num1.number&&"literal"===num2.arg1.type&&1===num2.arg1.number?num2.arg2:new AstBinaryOperation("-",num1,num2,num1.min-num2.max,num1.max-num2.min)}function buildMinOperation(num1,max){return num1.min>=max?new AstLiteral(max):num1.max<=max?num1:new AstMin(num1,max)}class PostScriptCompiler{compile(code,domain,range){var stack=[],instructions=[],inputSize=domain.length>>1,outputSize=range.length>>1;let lastRegister=0,n,j,num1,num2,ast1,ast2,tmpVar,item;for(let i=0;i<inputSize;i++)stack.push(new AstArgument(i,domain[2*i],domain[2*i+1]));for(let i=0,ii=code.length;i<ii;i++)if("number"==typeof(item=code[i]))stack.push(new AstLiteral(item));else switch(item){case"add":if(stack.length<2)return null;num2=stack.pop(),num1=stack.pop(),stack.push(buildAddOperation(num1,num2));break;case"cvr":if(stack.length<1)return null;break;case"mul":if(stack.length<2)return null;num2=stack.pop(),num1=stack.pop(),stack.push(buildMulOperation(num1,num2));break;case"sub":if(stack.length<2)return null;num2=stack.pop(),num1=stack.pop(),stack.push(buildSubOperation(num1,num2));break;case"exch":if(stack.length<2)return null;ast1=stack.pop(),ast2=stack.pop(),stack.push(ast1,ast2);break;case"pop":if(stack.length<1)return null;stack.pop();break;case"index":if(stack.length<1)return null;if("literal"!==(num1=stack.pop()).type)return null;if((n=num1.number)<0||!Number.isInteger(n)||stack.length<n)return null;"literal"===(ast1=stack[stack.length-n-1]).type||"var"===ast1.type?stack.push(ast1):(tmpVar=new AstVariable(lastRegister++,ast1.min,ast1.max),stack[stack.length-n-1]=tmpVar,stack.push(tmpVar),instructions.push(new AstVariableDefinition(tmpVar,ast1)));break;case"dup":if(stack.length<1)return null;"number"==typeof code[i+1]&&"gt"===code[i+2]&&code[i+3]===i+7&&"jz"===code[i+4]&&"pop"===code[i+5]&&code[i+6]===code[i+1]?(num1=stack.pop(),stack.push(buildMinOperation(num1,code[i+1])),i+=6):"literal"===(ast1=stack.at(-1)).type||"var"===ast1.type?stack.push(ast1):(tmpVar=new AstVariable(lastRegister++,ast1.min,ast1.max),stack[stack.length-1]=tmpVar,stack.push(tmpVar),instructions.push(new AstVariableDefinition(tmpVar,ast1)));break;case"roll":if(stack.length<2)return null;if(num2=stack.pop(),num1=stack.pop(),"literal"!==num2.type||"literal"!==num1.type)return null;if(j=num2.number,(n=num1.number)<=0||!Number.isInteger(n)||!Number.isInteger(j)||stack.length<n)return null;0!=(j=(j%n+n)%n)&&stack.push(...stack.splice(stack.length-n,n-j));break;default:return null}if(stack.length!==outputSize)return null;var result=[];for(const instruction of instructions){var statementBuilder=new ExpressionBuilderVisitor;instruction.visit(statementBuilder),result.push(statementBuilder.toString())}for(let i=0,ii=stack.length;i<ii;i++){const expr=stack[i],statementBuilder=new ExpressionBuilderVisitor;expr.visit(statementBuilder);var min=range[2*i],max=range[2*i+1],out=[statementBuilder.toString()];min>expr.min&&(out.unshift("Math.max(",min,", "),out.push(")")),max<expr.max&&(out.unshift("Math.min(",max,", "),out.push(")")),out.unshift("dest[destOffset + ",i,"] = "),out.push(";"),result.push(out.join(""))}return result.join("\n")}}const baseTypes=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],arabicTypes=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(i){return 0!=(1&i)}function isEven(i){return 0==(1&i)}function findUnequal(arr,start,value){let j,jj;for(j=start,jj=arr.length;j<jj;++j)if(arr[j]!==value)return j;return j}function setValues(arr,start,end,value){for(let j=start;j<end;++j)arr[j]=value}function reverseValues(arr,start,end){for(let i=start,j=end-1;i<j;++i,--j){var temp=arr[i];arr[i]=arr[j],arr[j]=temp}}function createBidiText(str,isLTR,vertical=!1){let dir="ltr";return vertical?dir="ttb":isLTR||(dir="rtl"),{str:str,dir:dir}}const chars=[],types=[];function bidi(str,startLevel=-1,vertical=!1){let isLTR=!0;var strLength=str.length;if(0===strLength||vertical)return createBidiText(str,isLTR,vertical);chars.length=strLength,types.length=strLength;let numBidi=0,i,ii;for(i=0;i<strLength;++i){chars[i]=str.charAt(i);var charCode=str.charCodeAt(i);let charType="L";charCode<=255?charType=baseTypes[charCode]:1424<=charCode&&charCode<=1524?charType="R":1536<=charCode&&charCode<=1791?(charType=arabicTypes[255&charCode])||warn("Bidi: invalid Unicode character "+charCode.toString(16)):(1792<=charCode&&charCode<=2220||64336<=charCode&&charCode<=65023||65136<=charCode&&charCode<=65279)&&(charType="AL"),"R"!==charType&&"AL"!==charType&&"AN"!==charType||numBidi++,types[i]=charType}if(0===numBidi)return createBidiText(str,isLTR=!0);-1===startLevel&&(startLevel=numBidi/strLength<.3&&4<strLength?(isLTR=!0,0):(isLTR=!1,1));var levels=[];for(i=0;i<strLength;++i)levels[i]=startLevel;var e=isOdd(startLevel)?"R":"L",sor=e,eor=sor;let lastType=sor;for(i=0;i<strLength;++i)"NSM"===types[i]?types[i]=lastType:lastType=types[i];lastType=sor;let t;for(i=0;i<strLength;++i)"EN"===(t=types[i])?types[i]="AL"===lastType?"AN":"EN":"R"!==t&&"L"!==t&&"AL"!==t||(lastType=t);for(i=0;i<strLength;++i)"AL"===(t=types[i])&&(types[i]="R");for(i=1;i<strLength-1;++i)"ES"===types[i]&&"EN"===types[i-1]&&"EN"===types[i+1]&&(types[i]="EN"),"CS"!==types[i]||"EN"!==types[i-1]&&"AN"!==types[i-1]||types[i+1]!==types[i-1]||(types[i]=types[i-1]);for(i=0;i<strLength;++i)if("EN"===types[i]){for(let j=i-1;0<=j&&"ET"===types[j];--j)types[j]="EN";for(let j=i+1;j<strLength&&"ET"===types[j];++j)types[j]="EN"}for(i=0;i<strLength;++i)"WS"!==(t=types[i])&&"ES"!==t&&"ET"!==t&&"CS"!==t||(types[i]="ON");for(lastType=sor,i=0;i<strLength;++i)"EN"===(t=types[i])?types[i]="L"===lastType?"L":"EN":"R"!==t&&"L"!==t||(lastType=t);for(i=0;i<strLength;++i)if("ON"===types[i]){var end=findUnequal(types,i+1,"ON");let before=sor,after=(0<i&&(before=types[i-1]),eor);end+1<strLength&&(after=types[end+1]),"L"!==before&&(before="R"),"L"!==after&&(after="R"),before===after&&setValues(types,i,end,before),i=end-1}for(i=0;i<strLength;++i)"ON"===types[i]&&(types[i]=e);for(i=0;i<strLength;++i)t=types[i],isEven(levels[i])?"R"===t?levels[i]+=1:"AN"!==t&&"EN"!==t||(levels[i]+=2):"L"!==t&&"AN"!==t&&"EN"!==t||(levels[i]+=1);let highestLevel=-1,lowestOddLevel=99,level;for(i=0,ii=levels.length;i<ii;++i)level=levels[i],highestLevel<level&&(highestLevel=level),lowestOddLevel>level&&isOdd(level)&&(lowestOddLevel=level);for(level=highestLevel;level>=lowestOddLevel;--level){let start=-1;for(i=0,ii=levels.length;i<ii;++i)levels[i]<level?0<=start&&(reverseValues(chars,start,i),start=-1):start<0&&(start=i);0<=start&&reverseValues(chars,start,levels.length)}for(i=0,ii=chars.length;i<ii;++i){var ch=chars[i];"<"!==ch&&">"!==ch||(chars[i]="")}return createBidiText(chars.join(""),isLTR)}const NORMAL={style:"normal",weight:"normal"},BOLD={style:"normal",weight:"bold"},ITALIC={style:"italic",weight:"normal"},BOLDITALIC={style:"italic",weight:"bold"},substitutionMap=new Map([["Times-Roman",{local:["Times New Roman","Times-Roman","Times","Liberation Serif","Nimbus Roman","Nimbus Roman L","Tinos","Thorndale","TeX Gyre Termes","FreeSerif","Linux Libertine O","Libertinus Serif","DejaVu Serif","Bitstream Vera Serif","Ubuntu"],style:NORMAL,ultimate:"serif"}],["Times-Bold",{alias:"Times-Roman",style:BOLD,ultimate:"serif"}],["Times-Italic",{alias:"Times-Roman",style:ITALIC,ultimate:"serif"}],["Times-BoldItalic",{alias:"Times-Roman",style:BOLDITALIC,ultimate:"serif"}],["Helvetica",{local:["Helvetica","Helvetica Neue","Arial","Arial Nova","Liberation Sans","Arimo","Nimbus Sans","Nimbus Sans L","A030","TeX Gyre Heros","FreeSans","DejaVu Sans","Albany","Bitstream Vera Sans","Arial Unicode MS","Microsoft Sans Serif","Apple Symbols","Cantarell"],path:"LiberationSans-Regular.ttf",style:NORMAL,ultimate:"sans-serif"}],["Helvetica-Bold",{alias:"Helvetica",path:"LiberationSans-Bold.ttf",style:BOLD,ultimate:"sans-serif"}],["Helvetica-Oblique",{alias:"Helvetica",path:"LiberationSans-Italic.ttf",style:ITALIC,ultimate:"sans-serif"}],["Helvetica-BoldOblique",{alias:"Helvetica",path:"LiberationSans-BoldItalic.ttf",style:BOLDITALIC,ultimate:"sans-serif"}],["Courier",{local:["Courier","Courier New","Liberation Mono","Nimbus Mono","Nimbus Mono L","Cousine","Cumberland","TeX Gyre Cursor","FreeMono","Linux Libertine Mono O","Libertinus Mono"],style:NORMAL,ultimate:"monospace"}],["Courier-Bold",{alias:"Courier",style:BOLD,ultimate:"monospace"}],["Courier-Oblique",{alias:"Courier",style:ITALIC,ultimate:"monospace"}],["Courier-BoldOblique",{alias:"Courier",style:BOLDITALIC,ultimate:"monospace"}],["ArialBlack",{local:["Arial Black"],style:{style:"normal",weight:"900"},fallback:"Helvetica-Bold"}],["ArialBlack-Bold",{alias:"ArialBlack"}],["ArialBlack-Italic",{alias:"ArialBlack",style:{style:"italic",weight:"900"},fallback:"Helvetica-BoldOblique"}],["ArialBlack-BoldItalic",{alias:"ArialBlack-Italic"}],["ArialNarrow",{local:["Arial Narrow","Liberation Sans Narrow","Helvetica Condensed","Nimbus Sans Narrow","TeX Gyre Heros Cn"],style:NORMAL,fallback:"Helvetica"}],["ArialNarrow-Bold",{alias:"ArialNarrow",style:BOLD,fallback:"Helvetica-Bold"}],["ArialNarrow-Italic",{alias:"ArialNarrow",style:ITALIC,fallback:"Helvetica-Oblique"}],["ArialNarrow-BoldItalic",{alias:"ArialNarrow",style:BOLDITALIC,fallback:"Helvetica-BoldOblique"}],["Calibri",{local:["Calibri","Carlito"],style:NORMAL,fallback:"Helvetica"}],["Calibri-Bold",{alias:"Calibri",style:BOLD,fallback:"Helvetica-Bold"}],["Calibri-Italic",{alias:"Calibri",style:ITALIC,fallback:"Helvetica-Oblique"}],["Calibri-BoldItalic",{alias:"Calibri",style:BOLDITALIC,fallback:"Helvetica-BoldOblique"}],["Wingdings",{local:["Wingdings","URW Dingbats"],style:NORMAL}],["Wingdings-Regular",{alias:"Wingdings"}],["Wingdings-Bold",{alias:"Wingdings"}]]),fontAliases=new Map([["Arial-Black","ArialBlack"]]);function getStyleToAppend(style){switch(style){case BOLD:return"Bold";case ITALIC:return"Italic";case BOLDITALIC:return"Bold Italic";default:if("bold"===style?.weight)return"Bold";if("italic"===style?.style)return"Italic"}return""}function getFamilyName(str){const keywords=new Set(["thin","extralight","ultralight","demilight","semilight","light","book","regular","normal","medium","demibold","semibold","bold","extrabold","ultrabold","black","heavy","extrablack","ultrablack","roman","italic","oblique","ultracondensed","extracondensed","condensed","semicondensed","normal","semiexpanded","expanded","extraexpanded","ultraexpanded","bolditalic"]);return str.split(/[- ,+]+/g).filter(tok=>!keywords.has(tok.toLowerCase())).join(" ")}function generateFont({alias,local,path,fallback,style,ultimate},src,localFontPath,useFallback=!0,usePath=!0,append=""){var result={style:null,ultimate:null};if(local){var extra=append?" "+append:"";for(const name of local)src.push(`local(${name}${extra})`)}return alias&&(local=substitutionMap.get(alias),alias=append||getStyleToAppend(style),Object.assign(result,generateFont(local,src,localFontPath,useFallback&&!fallback,usePath&&!path,alias))),style&&(result.style=style),ultimate&&(result.ultimate=ultimate),useFallback&&fallback&&(local=generateFont(substitutionMap.get(fallback),src,localFontPath,useFallback,usePath&&!path,append)["ultimate"],result.ultimate||=local),usePath&&path&&localFontPath&&src.push(`url(${localFontPath}${path})`),result}function getFontSubstitution(systemFontCache,idFactory,localFontPath,baseFontName,standardFontName,type){if(baseFontName.startsWith("InvalidPDFjsFont_"))return null;type=baseFontName=normalizeFontName(baseFontName="TrueType"!==type&&"Type1"!==type||!/^[A-Z]{6}\+/.test(baseFontName)?baseFontName:baseFontName.slice(7));let substitutionInfo=systemFontCache.get(type);if(!substitutionInfo){let substitution=substitutionMap.get(baseFontName);if(!substitution)for(var[alias,subst]of fontAliases)if(baseFontName.startsWith(alias)){baseFontName=""+subst+baseFontName.substring(alias.length),substitution=substitutionMap.get(baseFontName);break}let mustAddBaseFont=!1;substitution||(substitution=substitutionMap.get(standardFontName),mustAddBaseFont=!0);standardFontName=idFactory.getDocId()+"_s"+idFactory.createFontId();if(substitution){idFactory=[];mustAddBaseFont&&validateFontName(baseFontName)&&idFactory.push(`local(${baseFontName})`);const{style,ultimate}=generateFont(substitution,idFactory,localFontPath);var localFontPath=null===ultimate,fallback=localFontPath?"":","+ultimate;substitutionInfo={css:`"${getFamilyName(baseFontName)}",`+standardFontName+fallback,guessFallback:localFontPath,loadedName:standardFontName,baseFontName:baseFontName,src:idFactory.join(","),style:style}}else{if(!validateFontName(baseFontName))return warn("Cannot substitute the font because of its name: "+baseFontName),systemFontCache.set(type,null),null;fallback=/bold/gi.test(baseFontName),localFontPath=/oblique|italic/gi.test(baseFontName);const style=fallback&&localFontPath&&BOLDITALIC||fallback&&BOLD||localFontPath&&ITALIC||NORMAL;substitutionInfo={css:`"${getFamilyName(baseFontName)}",`+standardFontName,guessFallback:!0,loadedName:standardFontName,baseFontName:baseFontName,src:`local(${baseFontName})`,style:style}}systemFontCache.set(type,substitutionInfo)}return substitutionInfo}const MIN_IMAGE_DIM=2048,MAX_IMAGE_DIM=65537,MAX_ERROR=128;class ImageResizer{constructor(imgData,isMask){this._imgData=imgData,this._isMask=isMask}static needsToBeResized(width,height){var MAX_DIM,area;return!(width<=this._goodSquareLength&&height<=this._goodSquareLength)&&(MAX_DIM=this["MAX_DIM"],MAX_DIM<width||MAX_DIM<height||(area=width*height,this._hasMaxArea?area>this.MAX_AREA:!(area<this._goodSquareLength**2)&&(this._areGoodDims(width,height)?(this._goodSquareLength=Math.max(this._goodSquareLength,Math.floor(Math.sqrt(width*height))),!1):(this._goodSquareLength=this._guessMax(this._goodSquareLength,MAX_DIM,MAX_ERROR,0),(this.MAX_AREA=this._goodSquareLength**2)<area))))}static get MAX_DIM(){return shadow(this,"MAX_DIM",this._guessMax(MIN_IMAGE_DIM,MAX_IMAGE_DIM,0,1))}static get MAX_AREA(){return this._hasMaxArea=!0,shadow(this,"MAX_AREA",this._guessMax(ImageResizer._goodSquareLength,this.MAX_DIM,MAX_ERROR,0)**2)}static set MAX_AREA(area){0<=area&&(this._hasMaxArea=!0,shadow(this,"MAX_AREA",area))}static setMaxArea(area){this._hasMaxArea||(this.MAX_AREA=area>>2)}static _areGoodDims(width,height){try{var canvas=new OffscreenCanvas(width,height),ctx=canvas.getContext("2d"),opacity=(ctx.fillRect(0,0,1,1),ctx.getImageData(0,0,1,1).data[3]);return canvas.width=canvas.height=1,0!==opacity}catch{return!1}}static _guessMax(start,end,tolerance,defaultHeight){for(;start+tolerance+1<end;){var middle=Math.floor((start+end)/2);this._areGoodDims(middle,defaultHeight||middle)?start=middle:end=middle}return start}static async createImage(imgData,isMask=!1){return new ImageResizer(imgData,isMask)._createImage()}async _createImage(){var data=this._encodeBMP(),data=new Blob([data.buffer],{type:"image/bmp"}),data=createImageBitmap(data),{MAX_AREA,MAX_DIM}=ImageResizer,imgData=this["_imgData"],{width,height}=imgData,MAX_DIM=Math.max(width/MAX_DIM,height/MAX_DIM,Math.sqrt(width*height/MAX_AREA)),MAX_AREA=Math.max(MAX_DIM,2),MAX_DIM=Math.round(10*(MAX_DIM+1.25))/10/MAX_AREA,N=Math.floor(Math.log2(MAX_DIM)),steps=new Array(N+2).fill(2);steps[0]=MAX_AREA,steps.splice(-1,1,MAX_DIM/(1<<N));let newWidth=width,newHeight=height,bitmap=await data;for(const step of steps){var prevWidth=newWidth,prevHeight=newHeight,canvas=(newWidth=Math.floor(newWidth/step)-1,newHeight=Math.floor(newHeight/step)-1,new OffscreenCanvas(newWidth,newHeight));canvas.getContext("2d").drawImage(bitmap,0,0,prevWidth,prevHeight,0,0,newWidth,newHeight),bitmap=canvas.transferToImageBitmap()}return imgData.data=null,imgData.bitmap=bitmap,imgData.width=newWidth,imgData.height=newHeight,imgData}_encodeBMP(){var{width,height,kind}=this._imgData;let data=this._imgData.data,bitPerPixel,colorTable=new Uint8Array(0),maskTable=colorTable,compression=0;switch(kind){case ImageKind.GRAYSCALE_1BPP:bitPerPixel=1,colorTable=new Uint8Array(this._isMask?[255,255,255,255,0,0,0,0]:[0,0,0,0,255,255,255,255]);var rowLen=width+7>>3,rowSize=3+rowLen&-4;if(rowLen!=rowSize){var newData=new Uint8Array(rowSize*height);let k=0;for(let i=0,ii=height*rowLen;i<ii;i+=rowLen,k+=rowSize)newData.set(data.subarray(i,i+rowLen),k);data=newData}break;case ImageKind.RGB_24BPP:if(bitPerPixel=24,3&width){const rowLen=3*width,rowSize=3+rowLen&-4;var extraLen=rowSize-rowLen;const newData=new Uint8Array(rowSize*height);let k=0;for(let i=0,ii=height*rowLen;i<ii;i+=rowLen){var row=data.subarray(i,i+rowLen);for(let j=0;j<rowLen;j+=3)newData[k++]=row[j+2],newData[k++]=row[j+1],newData[k++]=row[j];k+=extraLen}data=newData}else for(let i=0,ii=data.length;i<ii;i+=3){var tmp=data[i];data[i]=data[i+2],data[i+2]=tmp}break;case ImageKind.RGBA_32BPP:bitPerPixel=32,compression=3,maskTable=new Uint8Array(68);const view=new DataView(maskTable.buffer);FeatureTest.isLittleEndian?(view.setUint32(0,255,!0),view.setUint32(4,65280,!0),view.setUint32(8,16711680,!0),view.setUint32(12,4278190080,!0)):(view.setUint32(0,4278190080,!0),view.setUint32(4,16711680,!0),view.setUint32(8,65280,!0),view.setUint32(12,255,!0));break;default:throw new Error("invalid format")}var kind=0,headerLength=40+maskTable.length,fileLength=14+headerLength+colorTable.length+data.length,bmpData=new Uint8Array(fileLength);const view=new DataView(bmpData.buffer);return view.setUint16(0,19778,!0),kind+=2,view.setUint32(2,fileLength,!0),kind+=4,view.setUint32(6,0,!0),kind+=4,view.setUint32(10,14+headerLength+colorTable.length,!0),kind+=4,view.setUint32(14,headerLength,!0),kind+=4,view.setInt32(18,width,!0),kind+=4,view.setInt32(22,-height,!0),kind+=4,view.setUint16(26,1,!0),kind+=2,view.setUint16(28,bitPerPixel,!0),kind+=2,view.setUint32(30,compression,!0),kind+=4,view.setUint32(34,0,!0),kind+=4,view.setInt32(38,0,!0),kind+=4,view.setInt32(42,0,!0),kind+=4,view.setUint32(46,colorTable.length/4,!0),kind+=4,view.setUint32(50,0,!0),kind+=4,bmpData.set(maskTable,54),kind+=maskTable.length,bmpData.set(colorTable,kind),kind+=colorTable.length,bmpData.set(data,kind),bmpData}}ImageResizer._goodSquareLength=MIN_IMAGE_DIM;const SEED=3285377520,MASK_HIGH=4294901760,MASK_LOW=65535;class MurmurHash3_64{constructor(seed){this.h1=seed?4294967295&seed:SEED,this.h2=seed?4294967295&seed:SEED}update(input){let data,length;if("string"==typeof input){data=new Uint8Array(2*input.length);for(let i=length=0,ii=input.length;i<ii;i++){var code=input.charCodeAt(i);code<=255?data[length++]=code:(data[length++]=code>>>8,data[length++]=255&code)}}else{if(!ArrayBuffer.isView(input))throw new Error("Invalid data format, must be a string or TypedArray.");data=input.slice(),length=data.byteLength}var blockCounts=length>>2,tailLength=length-4*blockCounts,dataUint32=new Uint32Array(data.buffer,0,blockCounts);let k1=0,k2,h1=this.h1,h2=this.h2;var C1=3432918353,C2=461845907,C1_LOW=C1&MASK_LOW,C2_LOW=C2&MASK_LOW;for(let i=0;i<blockCounts;i++)1&i?(k1=(k1=(k1=(k1=dataUint32[i])*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW)<<15|k1>>>17)*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW,h1=5*(h1=(h1^=k1)<<13|h1>>>19)+3864292196):(k2=(k2=(k2=(k2=dataUint32[i])*C1&MASK_HIGH|k2*C1_LOW&MASK_LOW)<<15|k2>>>17)*C2&MASK_HIGH|k2*C2_LOW&MASK_LOW,h2=5*(h2=(h2^=k2)<<13|h2>>>19)+3864292196);switch(k1=0,tailLength){case 3:k1^=data[4*blockCounts+2]<<16;case 2:k1^=data[4*blockCounts+1]<<8;case 1:k1=(k1=(k1=(k1^=data[4*blockCounts])*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW)<<15|k1>>>17)*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW,1&blockCounts?h1^=k1:h2^=k1}this.h1=h1,this.h2=h2}hexdigest(){var h1=this.h1,h2=this.h2,h1=3981806797*(h1^=h2>>>1)&MASK_HIGH|36045*h1&MASK_LOW;return h1=444984403*(h1^=(h2=4283543511*h2&MASK_HIGH|(2950163797*(h2<<16|h1>>>16)&MASK_HIGH)>>>16)>>>1)&MASK_HIGH|60499*h1&MASK_LOW,((h1^=(h2=3301882366*h2&MASK_HIGH|(3120437893*(h2<<16|h1>>>16)&MASK_HIGH)>>>16)>>>1)>>>0).toString(16).padStart(8,"0")+(h2>>>0).toString(16).padStart(8,"0")}}function addState(parentState,pattern,checkFn,iterateFn,processFn){let state=parentState;for(let i=0,ii=pattern.length-1;i<ii;i++){var item=pattern[i];state=state[item]||=[]}state[pattern.at(-1)]={checkFn:checkFn,iterateFn:iterateFn,processFn:processFn}}const InitialState=[];addState(InitialState,[OPS.save,OPS.transform,OPS.paintInlineImageXObject,OPS.restore],null,function(context,i){var fnArray=context.fnArray,context=(i-(context.iCurr-3))%4;switch(context){case 0:return fnArray[i]===OPS.save;case 1:return fnArray[i]===OPS.transform;case 2:return fnArray[i]===OPS.paintInlineImageXObject;case 3:return fnArray[i]===OPS.restore}throw new Error("iterateInlineImageGroup - invalid pos: "+context)},function(context,i){var fnArray=context.fnArray,argsArray=context.argsArray,curr=context.iCurr,iFirstSave=curr-3,iFirstTransform=curr-2,iFirstPIIXO=curr-1,count=Math.min(Math.floor((i-iFirstSave)/4),200);if(count<10)return i-(i-iFirstSave)%4;let maxX=0;var map=[];let maxLineHeight=0,currentX=1,currentY=1;for(let q=0;q<count;q++){var transform=argsArray[iFirstTransform+(q<<2)];const img=argsArray[iFirstPIIXO+(q<<2)][0];1e3<currentX+img.width&&(maxX=Math.max(maxX,currentX),currentY+=maxLineHeight+2,currentX=0,maxLineHeight=0),map.push({transform:transform,x:currentX,y:currentY,w:img.width,h:img.height}),currentX+=img.width+2,maxLineHeight=Math.max(maxLineHeight,img.height)}var imgWidth=Math.max(maxX,currentX)+1,curr=currentY+maxLineHeight+1,imgData=new Uint8Array(imgWidth*curr*4),imgRowSize=imgWidth<<2;for(let q=0;q<count;q++){var data=argsArray[iFirstPIIXO+(q<<2)][0].data,rowSize=map[q].w<<2;let dataOffset=0,offset=map[q].x+map[q].y*imgWidth<<2;imgData.set(data.subarray(0,rowSize),offset-imgRowSize);for(let k=0,kk=map[q].h;k<kk;k++)imgData.set(data.subarray(dataOffset,dataOffset+rowSize),offset),dataOffset+=rowSize,offset+=imgRowSize;for(imgData.set(data.subarray(dataOffset-rowSize,dataOffset),offset);0<=offset;)data[offset-4]=data[offset],data[offset-3]=data[offset+1],data[offset-2]=data[offset+2],data[offset-1]=data[offset+3],data[offset+rowSize]=data[offset+rowSize-4],data[offset+rowSize+1]=data[offset+rowSize-3],data[offset+rowSize+2]=data[offset+rowSize-2],data[offset+rowSize+3]=data[offset+rowSize-1],offset-=imgRowSize}const img={width:imgWidth,height:curr};return context.isOffscreenCanvasSupported?((i=new OffscreenCanvas(imgWidth,curr)).getContext("2d").putImageData(new ImageData(new Uint8ClampedArray(imgData.buffer),imgWidth,curr),0,0),img.bitmap=i.transferToImageBitmap(),img.data=null):(img.kind=ImageKind.RGBA_32BPP,img.data=imgData),fnArray.splice(iFirstSave,4*count,OPS.paintInlineImageXObjectGroup),argsArray.splice(iFirstSave,4*count,[img,map]),1+iFirstSave}),addState(InitialState,[OPS.save,OPS.transform,OPS.paintImageMaskXObject,OPS.restore],null,function(context,i){var fnArray=context.fnArray,context=(i-(context.iCurr-3))%4;switch(context){case 0:return fnArray[i]===OPS.save;case 1:return fnArray[i]===OPS.transform;case 2:return fnArray[i]===OPS.paintImageMaskXObject;case 3:return fnArray[i]===OPS.restore}throw new Error("iterateImageMaskGroup - invalid pos: "+context)},function(context,i){var fnArray=context.fnArray,argsArray=context.argsArray,context=context.iCurr,iFirstSave=context-3,iFirstTransform=context-2,iFirstPIMXO=context-1;let count=Math.floor((i-iFirstSave)/4);if(count<10)return i-(i-iFirstSave)%4;let isSameImage=!1,iTransform,transformArgs;var firstPIMXOArg0=argsArray[iFirstPIMXO][0],firstTransformArg0=argsArray[iFirstTransform][0],firstTransformArg1=argsArray[iFirstTransform][1],firstTransformArg2=argsArray[iFirstTransform][2],firstTransformArg3=argsArray[iFirstTransform][3];if(firstTransformArg1===firstTransformArg2){isSameImage=!0,iTransform=4+iFirstTransform;let iPIMXO=4+iFirstPIMXO;for(let q=1;q<count;q++,iTransform+=4,iPIMXO+=4)if(transformArgs=argsArray[iTransform],argsArray[iPIMXO][0]!==firstPIMXOArg0||transformArgs[0]!==firstTransformArg0||transformArgs[1]!==firstTransformArg1||transformArgs[2]!==firstTransformArg2||transformArgs[3]!==firstTransformArg3){q<10?isSameImage=!1:count=q;break}}if(isSameImage){count=Math.min(count,1e3);var positions=new Float32Array(2*count);iTransform=iFirstTransform;for(let q=0;q<count;q++,iTransform+=4)transformArgs=argsArray[iTransform],positions[q<<1]=transformArgs[4],positions[1+(q<<1)]=transformArgs[5];fnArray.splice(iFirstSave,4*count,OPS.paintImageMaskXObjectRepeat),argsArray.splice(iFirstSave,4*count,[firstPIMXOArg0,firstTransformArg0,firstTransformArg1,firstTransformArg2,firstTransformArg3,positions])}else{count=Math.min(count,100);var images=[];for(let q=0;q<count;q++){transformArgs=argsArray[iFirstTransform+(q<<2)];var maskParams=argsArray[iFirstPIMXO+(q<<2)][0];images.push({data:maskParams.data,width:maskParams.width,height:maskParams.height,interpolate:maskParams.interpolate,count:maskParams.count,transform:transformArgs})}fnArray.splice(iFirstSave,4*count,OPS.paintImageMaskXObjectGroup),argsArray.splice(iFirstSave,4*count,[images])}return 1+iFirstSave}),addState(InitialState,[OPS.save,OPS.transform,OPS.paintImageXObject,OPS.restore],function(context){var argsArray=context.argsArray,context=context.iCurr-2;return 0===argsArray[context][1]&&0===argsArray[context][2]},function(context,i){var iFirstTransform,firstTransformArg0,fnArray=context.fnArray,argsArray=context.argsArray,pos=(i-(context.iCurr-3))%4;switch(pos){case 0:return fnArray[i]===OPS.save;case 1:return fnArray[i]!==OPS.transform?!1:(firstTransformArg0=argsArray[iFirstTransform=context.iCurr-2][0],iFirstTransform=argsArray[iFirstTransform][3],argsArray[i][0]===firstTransformArg0&&0===argsArray[i][1]&&0===argsArray[i][2]&&argsArray[i][3]===iFirstTransform);case 2:return fnArray[i]!==OPS.paintImageXObject?!1:(firstTransformArg0=argsArray[context.iCurr-1][0],argsArray[i][0]===firstTransformArg0);case 3:return fnArray[i]===OPS.restore}throw new Error("iterateImageGroup - invalid pos: "+pos)},function(context,i){var fnArray=context.fnArray,argsArray=context.argsArray,context=context.iCurr,iFirstSave=context-3,iFirstTransform=context-2,context=argsArray[context-1][0],firstTransformArg0=argsArray[iFirstTransform][0],firstTransformArg3=argsArray[iFirstTransform][3],count=Math.min(Math.floor((i-iFirstSave)/4),1e3);if(count<3)return i-(i-iFirstSave)%4;var positions=new Float32Array(2*count);let iTransform=iFirstTransform;for(let q=0;q<count;q++,iTransform+=4){var transformArgs=argsArray[iTransform];positions[q<<1]=transformArgs[4],positions[1+(q<<1)]=transformArgs[5]}i=[context,firstTransformArg0,firstTransformArg3,positions];return fnArray.splice(iFirstSave,4*count,OPS.paintImageXObjectRepeat),argsArray.splice(iFirstSave,4*count,i),1+iFirstSave}),addState(InitialState,[OPS.beginText,OPS.setFont,OPS.setTextMatrix,OPS.showText,OPS.endText],null,function(context,i){var firstSetFontArg0,iFirstSetFont,fnArray=context.fnArray,argsArray=context.argsArray,pos=(i-(context.iCurr-4))%5;switch(pos){case 0:return fnArray[i]===OPS.beginText;case 1:return fnArray[i]===OPS.setFont;case 2:return fnArray[i]===OPS.setTextMatrix;case 3:return fnArray[i]!==OPS.showText?!1:(firstSetFontArg0=argsArray[iFirstSetFont=context.iCurr-3][0],iFirstSetFont=argsArray[iFirstSetFont][1],argsArray[i][0]===firstSetFontArg0&&argsArray[i][1]===iFirstSetFont);case 4:return fnArray[i]===OPS.endText}throw new Error("iterateShowTextGroup - invalid pos: "+pos)},function(context,i){var fnArray=context.fnArray,argsArray=context.argsArray,context=context.iCurr,iFirstBeginText=context-4,iFirstSetFont=context-3,iFirstSetTextMatrix=context-2,iFirstShowText=context-1,firstSetFontArg0=argsArray[iFirstSetFont][0],firstSetFontArg1=argsArray[iFirstSetFont][1];let count=Math.min(Math.floor((i-iFirstBeginText)/5),1e3);if(count<3)return i-(i-iFirstBeginText)%5;let iFirst=iFirstBeginText,iEndText=(4<=iFirstBeginText&&fnArray[iFirstBeginText-4]===fnArray[iFirstSetFont]&&fnArray[iFirstBeginText-3]===fnArray[iFirstSetTextMatrix]&&fnArray[iFirstBeginText-2]===fnArray[iFirstShowText]&&fnArray[iFirstBeginText-1]===fnArray[context]&&argsArray[iFirstBeginText-4][0]===firstSetFontArg0&&argsArray[iFirstBeginText-4][1]===firstSetFontArg1&&(count++,iFirst-=5),iFirst+4);for(let q=1;q<count;q++)fnArray.splice(iEndText,3),argsArray.splice(iEndText,3),iEndText+=2;return iEndText+1});class NullOptimizer{constructor(queue){this.queue=queue}_optimize(){}push(fn,args){this.queue.fnArray.push(fn),this.queue.argsArray.push(args),this._optimize()}flush(){}reset(){}}class QueueOptimizer extends NullOptimizer{constructor(queue){super(queue),this.state=null,this.context={iCurr:0,fnArray:queue.fnArray,argsArray:queue.argsArray,isOffscreenCanvasSupported:!1},this.match=null,this.lastProcessed=0}set isOffscreenCanvasSupported(value){this.context.isOffscreenCanvasSupported=value}_optimize(){var fnArray=this.queue.fnArray;let i=this.lastProcessed,ii=fnArray.length,state=this.state,match=this.match;if(state||match||i+1!==ii||InitialState[fnArray[i]]){for(var context=this.context;i<ii;){if(match){if((0,match.iterateFn)(context,i)){i++;continue}if(i=(0,match.processFn)(context,i+1),ii=fnArray.length,match=null,state=null,i>=ii)break}!(state=(state||InitialState)[fnArray[i]])||Array.isArray(state)?i++:(context.iCurr=i,i++,state=(state.checkFn&&!(0,state.checkFn)(context)||(match=state),null))}this.state=state,this.match=match,this.lastProcessed=i}else this.lastProcessed=ii}flush(){for(;this.match;){var length=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,length),this.match=null,this.state=null,this._optimize()}}reset(){this.state=null,this.match=null,this.lastProcessed=0}}class OperatorList{static CHUNK_SIZE=1e3;static CHUNK_SIZE_ABOUT=this.CHUNK_SIZE-5;constructor(intent=0,streamSink){this._streamSink=streamSink,this.fnArray=[],this.argsArray=[],this.optimizer=new(!streamSink||intent&RenderingIntentFlag.OPLIST?NullOptimizer:QueueOptimizer)(this),this.dependencies=new Set,this._totalLength=0,this.weight=0,this._resolved=streamSink?null:Promise.resolve()}set isOffscreenCanvasSupported(value){this.optimizer.isOffscreenCanvasSupported=value}get length(){return this.argsArray.length}get ready(){return this._resolved||this._streamSink.ready}get totalLength(){return this._totalLength+this.length}addOp(fn,args){this.optimizer.push(fn,args),this.weight++,this._streamSink&&(this.weight>=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(fn===OPS.restore||fn===OPS.endText))&&this.flush()}addImageOps(fn,args,optionalContent){void 0!==optionalContent&&this.addOp(OPS.beginMarkedContentProps,["OC",optionalContent]),this.addOp(fn,args),void 0!==optionalContent&&this.addOp(OPS.endMarkedContent,[])}addDependency(dependency){this.dependencies.has(dependency)||(this.dependencies.add(dependency),this.addOp(OPS.dependency,[dependency]))}addDependencies(dependencies){for(const dependency of dependencies)this.addDependency(dependency)}addOpList(opList){if(opList instanceof OperatorList){for(const dependency of opList.dependencies)this.dependencies.add(dependency);for(let i=0,ii=opList.length;i<ii;i++)this.addOp(opList.fnArray[i],opList.argsArray[i])}else warn('addOpList - ignoring invalid "opList" parameter.')}getIR(){return{fnArray:this.fnArray,argsArray:this.argsArray,length:this.length}}get _transfers(){var transfers=[],{fnArray,argsArray,length}=this;for(let i=0;i<length;i++)switch(fnArray[i]){case OPS.paintInlineImageXObject:case OPS.paintInlineImageXObjectGroup:case OPS.paintImageMaskXObject:var arg=argsArray[i][0];!arg.cached&&arg.data?.buffer instanceof ArrayBuffer&&transfers.push(arg.data.buffer)}return transfers}flush(lastChunk=!1,separateAnnots=null){this.optimizer.flush();var length=this.length;this._totalLength+=length,this._streamSink.enqueue({fnArray:this.fnArray,argsArray:this.argsArray,lastChunk:lastChunk,separateAnnots:separateAnnots,length:length},1,this._transfers),this.dependencies.clear(),this.fnArray.length=0,this.argsArray.length=0,this.weight=0,this.optimizer.reset()}}function decodeAndClamp(value,addend,coefficient,max){return(value=addend+value*coefficient)<0?value=0:max<value&&(value=max),value}function resizeImageMask(src,bpc,w1,h1,w2,h2){var length=w2*h2;let dest;dest=new(bpc<=8?Uint8Array:bpc<=16?Uint16Array:Uint32Array)(length);var xRatio=w1/w2,yRatio=h1/h2;let i,j,py,newIndex=0,oldIndex;var xScaled=new Uint16Array(w2),w1Scanline=w1;for(i=0;i<w2;i++)xScaled[i]=Math.floor(i*xRatio);for(i=0;i<h2;i++)for(py=Math.floor(i*yRatio)*w1Scanline,j=0;j<w2;j++)oldIndex=py+xScaled[j],dest[newIndex++]=src[oldIndex];return dest}class PDFImage{constructor({xref,res,image,isInline=!1,smask=null,mask=null,isMask=!1,pdfFunctionFactory,localColorSpaceCache}){let jpxDecode=!1;var dict=(this.image=image).dict,filter=dict.get("F","Filter");let filterName;switch(filter instanceof Name?filterName=filter.name:Array.isArray(filter)&&(filter=xref.fetchIfRef(filter[0]))instanceof Name&&(filterName=filter.name),filterName){case"JPXDecode":({width:image.width,height:image.height,componentsCount:image.numComps,bitsPerComponent:image.bitsPerComponent}=JpxImage.parseImageProperties(image.stream)),image.stream.reset(),jpxDecode=!0;break;case"JBIG2Decode":image.bitsPerComponent=1,image.numComps=1}let width=dict.get("W","Width"),height=dict.get("H","Height");if(Number.isInteger(image.width)&&0<image.width&&Number.isInteger(image.height)&&0<image.height&&(image.width!==width||image.height!==height)&&(warn("PDFImage - using the Width/Height of the image data, rather than the image dictionary."),width=image.width,height=image.height),width<1||height<1)throw new FormatError(`Invalid image width: ${width} or height: `+height);this.width=width,this.height=height,this.interpolate=dict.get("I","Interpolate"),this.imageMask=dict.get("IM","ImageMask")||!1,this.matte=dict.get("Matte")||!1;let bitsPerComponent=image.bitsPerComponent;if(!bitsPerComponent&&!(bitsPerComponent=dict.get("BPC","BitsPerComponent"))){if(!this.imageMask)throw new FormatError("Bits per component missing in image: "+this.imageMask);bitsPerComponent=1}if(this.bpc=bitsPerComponent,!this.imageMask){let colorSpace=dict.getRaw("CS")||dict.getRaw("ColorSpace");if(!colorSpace)switch(info("JPX images (which do not require color spaces)"),image.numComps){case 1:colorSpace=Name.get("DeviceGray");break;case 3:colorSpace=Name.get("DeviceRGB");break;case 4:colorSpace=Name.get("DeviceCMYK");break;default:throw new Error(`JPX images with ${image.numComps} color components not supported.`)}this.colorSpace=ColorSpace.parse({cs:colorSpace,xref:xref,resources:isInline?res:null,pdfFunctionFactory:pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache}),this.numComps=this.colorSpace.numComps,this.ignoreColorSpace=jpxDecode&&"Indexed"===this.colorSpace.name}if(this.decode=dict.getArray("D","Decode"),this.needsDecode=!1,this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,bitsPerComponent)||isMask&&!ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;var max=(1<<bitsPerComponent)-1,isIndexed=(this.decodeCoefficients=[],this.decodeAddends=[],"Indexed"===this.colorSpace?.name);for(let i=0,j=0;i<this.decode.length;i+=2,++j){var dmin=this.decode[i],dmax=this.decode[i+1];this.decodeCoefficients[j]=isIndexed?(dmax-dmin)/max:dmax-dmin,this.decodeAddends[j]=isIndexed?dmin:max*dmin}}smask?this.smask=new PDFImage({xref:xref,res:res,image:smask,isInline:isInline,pdfFunctionFactory:pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache}):mask&&(mask instanceof BaseStream?mask.dict.get("IM","ImageMask")?this.mask=new PDFImage({xref:xref,res:res,image:mask,isInline:isInline,isMask:!0,pdfFunctionFactory:pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache}):warn("Ignoring /Mask in image without /ImageMask."):this.mask=mask)}static async buildImage({xref,res,image,isInline=!1,pdfFunctionFactory,localColorSpaceCache}){var imageData=image;let smaskData=null,maskData=null;var smask=image.dict.get("SMask"),image=image.dict.get("Mask");return smask?smask instanceof BaseStream?smaskData=smask:warn("Unsupported /SMask format."):image&&(image instanceof BaseStream||Array.isArray(image)?maskData=image:warn("Unsupported /Mask format.")),new PDFImage({xref:xref,res:res,image:imageData,isInline:isInline,smask:smaskData,mask:maskData,pdfFunctionFactory:pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache})}static createRawMask({imgArray,width,height,imageIsFromDecodeStream,inverseDecode,interpolate}){var computedLength=(width+7>>3)*height,actualLength=imgArray.byteLength;let data,i;if(!imageIsFromDecodeStream||inverseDecode&&!(computedLength===actualLength)?inverseDecode?((data=new Uint8Array(computedLength)).set(imgArray),data.fill(255,actualLength)):data=new Uint8Array(imgArray):data=imgArray,inverseDecode)for(i=0;i<actualLength;i++)data[i]^=255;return{data:data,width:width,height:height,interpolate:interpolate}}static async createMask({imgArray,width,height,imageIsFromDecodeStream,inverseDecode,interpolate,isOffscreenCanvasSupported=!1}){var imgData,isSingleOpaquePixel=1===width&&1===height&&inverseDecode===(0===imgArray.length||!!(128&imgArray[0]));return isSingleOpaquePixel?{isSingleOpaquePixel:isSingleOpaquePixel}:isOffscreenCanvasSupported?ImageResizer.needsToBeResized(width,height)?(convertBlackAndWhiteToRGBA({src:imgArray,dest:isSingleOpaquePixel=new Uint8ClampedArray(width*height*4),width:width,height:height,nonBlackColor:0,inverseDecode:inverseDecode}),ImageResizer.createImage({kind:ImageKind.RGBA_32BPP,data:isSingleOpaquePixel,width:width,height:height,interpolate:interpolate})):(convertBlackAndWhiteToRGBA({src:imgArray,dest:(imgData=(isSingleOpaquePixel=(isOffscreenCanvasSupported=new OffscreenCanvas(width,height)).getContext("2d")).createImageData(width,height)).data,width:width,height:height,nonBlackColor:0,inverseDecode:inverseDecode}),isSingleOpaquePixel.putImageData(imgData,0,0),{data:null,width:width,height:height,interpolate:interpolate,bitmap:isOffscreenCanvasSupported.transferToImageBitmap()}):this.createRawMask({imgArray:imgArray,width:width,height:height,inverseDecode:inverseDecode,imageIsFromDecodeStream:imageIsFromDecodeStream,interpolate:interpolate})}get drawWidth(){return Math.max(this.width,this.smask?.width||0,this.mask?.width||0)}get drawHeight(){return Math.max(this.height,this.smask?.height||0,this.mask?.height||0)}decodeBuffer(buffer){var bpc=this.bpc,numComps=this.numComps,decodeAddends=this.decodeAddends,decodeCoefficients=this.decodeCoefficients,max=(1<<bpc)-1;let i,ii;if(1===bpc)for(i=0,ii=buffer.length;i<ii;i++)buffer[i]=+!buffer[i];else{let index=0;for(i=0,ii=this.width*this.height;i<ii;i++)for(let j=0;j<numComps;j++)buffer[index]=decodeAndClamp(buffer[index],decodeAddends[j],decodeCoefficients[j],max),index++}}getComponents(buffer){var bpc=this.bpc;if(8===bpc)return buffer;var width=this.width,height=this.height,numComps=this.numComps,length=width*height*numComps;let bufferPos=0,output;output=new(bpc<=8?Uint8Array:bpc<=16?Uint16Array:Uint32Array)(length);var rowComps=width*numComps,max=(1<<bpc)-1;let i=0,ii,buf;if(1===bpc){let mask,loop1End,loop2End;for(let j=0;j<height;j++){for(loop1End=i+(-8&rowComps),loop2End=i+rowComps;i<loop1End;)buf=buffer[bufferPos++],output[i]=buf>>7&1,output[i+1]=buf>>6&1,output[i+2]=buf>>5&1,output[i+3]=buf>>4&1,output[i+4]=buf>>3&1,output[i+5]=buf>>2&1,output[i+6]=buf>>1&1,output[i+7]=1&buf,i+=8;if(i<loop2End)for(buf=buffer[bufferPos++],mask=128;i<loop2End;)output[i++]=+!!(buf&mask),mask>>=1}}else{let bits=0;for(buf=0,i=0,ii=length;i<ii;++i){for(i%rowComps==0&&(buf=0,bits=0);bits<bpc;)buf=buf<<8|buffer[bufferPos++],bits+=8;var remainingBits=bits-bpc;let value=buf>>remainingBits;value<0?value=0:value>max&&(value=max),output[i]=value,buf&=(1<<remainingBits)-1,bits=remainingBits}}return output}fillOpacity(rgbaBuf,width,height,actualHeight,image){var smask=this.smask,mask=this.mask;let alphaBuf,sw,sh,i,ii,j;if(smask)sw=smask.width,sh=smask.height,alphaBuf=new Uint8ClampedArray(sw*sh),smask.fillGrayBuffer(alphaBuf),sw===width&&sh===height||(alphaBuf=resizeImageMask(alphaBuf,smask.bpc,sw,sh,width,height));else if(mask)if(mask instanceof PDFImage){for(sw=mask.width,sh=mask.height,alphaBuf=new Uint8ClampedArray(sw*sh),mask.numComps=1,mask.fillGrayBuffer(alphaBuf),i=0,ii=sw*sh;i<ii;++i)alphaBuf[i]=255-alphaBuf[i];sw===width&&sh===height||(alphaBuf=resizeImageMask(alphaBuf,mask.bpc,sw,sh,width,height))}else{if(!Array.isArray(mask))throw new FormatError("Unknown mask format.");alphaBuf=new Uint8ClampedArray(width*height);var numComps=this.numComps;for(i=0,ii=width*height;i<ii;++i){let opacity=0;var imageOffset=i*numComps;for(j=0;j<numComps;++j){var color=image[imageOffset+j],maskOffset=2*j;if(color<mask[maskOffset]||color>mask[1+maskOffset]){opacity=255;break}}alphaBuf[i]=opacity}}if(alphaBuf)for(i=0,j=3,ii=width*actualHeight;i<ii;++i,j+=4)rgbaBuf[j]=alphaBuf[i];else for(i=0,j=3,ii=width*actualHeight;i<ii;++i,j+=4)rgbaBuf[j]=255}undoPreblend(buffer,width,height){var matte=this.smask?.matte;if(matte){var matte=this.colorSpace.getRgb(matte,0),matteR=matte[0],matteG=matte[1],matteB=matte[2],length=width*height*4;for(let i=0;i<length;i+=4){var alpha=buffer[i+3];0===alpha?(buffer[i]=255,buffer[i+1]=255,buffer[i+2]=255):(alpha=255/alpha,buffer[i]=(buffer[i]-matteR)*alpha+matteR,buffer[i+1]=(buffer[i+1]-matteG)*alpha+matteG,buffer[i+2]=(buffer[i+2]-matteB)*alpha+matteB)}}}async createImageData(forceRGBA=!1,isOffscreenCanvasSupported=!1){var drawWidth=this.drawWidth,drawHeight=this.drawHeight,imgData={width:drawWidth,height:drawHeight,interpolate:this.interpolate,kind:0,data:null},numComps=this.numComps,originalWidth=this.width,originalHeight=this.height,bpc=this.bpc,numComps=originalWidth*numComps*bpc+7>>3,mustBeResized=isOffscreenCanvasSupported&&ImageResizer.needsToBeResized(drawWidth,drawHeight);if(!forceRGBA){let kind;if("DeviceGray"===this.colorSpace.name&&1===bpc?kind=ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==bpc||this.needsDecode||(kind=ImageKind.RGB_24BPP),kind&&!this.smask&&!this.mask&&drawWidth===originalWidth&&drawHeight===originalHeight){const data=this.getImageBytes(originalHeight*numComps,{});if(isOffscreenCanvasSupported)return mustBeResized?ImageResizer.createImage({data:data,kind:kind,width:drawWidth,height:drawHeight,interpolate:this.interpolate},this.needsDecode):this.createBitmap(kind,originalWidth,originalHeight,data);if(imgData.kind=kind,imgData.data=data,this.needsDecode){assert(kind===ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");var buffer=imgData.data;for(let i=0,ii=buffer.length;i<ii;i++)buffer[i]^=255}return imgData}if(this.image instanceof JpegStream&&!this.smask&&!this.mask&&!this.needsDecode){let imageLength=originalHeight*numComps;if(isOffscreenCanvasSupported&&!mustBeResized){let isHandled=!1;switch(this.colorSpace.name){case"DeviceGray":imageLength*=4,isHandled=!0;break;case"DeviceRGB":imageLength=imageLength/3*4,isHandled=!0;break;case"DeviceCMYK":isHandled=!0}if(isHandled)return rgba=this.getImageBytes(imageLength,{drawWidth:drawWidth,drawHeight:drawHeight,forceRGBA:!0}),this.createBitmap(ImageKind.RGBA_32BPP,drawWidth,drawHeight,rgba)}else switch(this.colorSpace.name){case"DeviceGray":imageLength*=3;case"DeviceRGB":case"DeviceCMYK":return imgData.kind=ImageKind.RGB_24BPP,imgData.data=this.getImageBytes(imageLength,{drawWidth:drawWidth,drawHeight:drawHeight,forceRGB:!0}),mustBeResized?ImageResizer.createImage(imgData):imgData}}}var rgba=this.getImageBytes(originalHeight*numComps,{internal:!0}),numComps=0|rgba.length/numComps*drawHeight/originalHeight,rgba=this.getComponents(rgba);let alpha01,maybeUndoPreblend,canvas,ctx,canvasImgData,data;return isOffscreenCanvasSupported&&!mustBeResized&&(canvas=new OffscreenCanvas(drawWidth,drawHeight),ctx=canvas.getContext("2d"),canvasImgData=ctx.createImageData(drawWidth,drawHeight),data=canvasImgData.data),imgData.kind=ImageKind.RGBA_32BPP,forceRGBA||this.smask||this.mask?(isOffscreenCanvasSupported&&!mustBeResized||(data=new Uint8ClampedArray(drawWidth*drawHeight*4)),alpha01=1,maybeUndoPreblend=!0,this.fillOpacity(data,drawWidth,drawHeight,numComps,rgba)):(alpha01=!isOffscreenCanvasSupported||mustBeResized?(imgData.kind=ImageKind.RGB_24BPP,data=new Uint8ClampedArray(drawWidth*drawHeight*3),0):(new Uint32Array(data.buffer).fill(FeatureTest.isLittleEndian?4278190080:255),1),maybeUndoPreblend=!1),this.needsDecode&&this.decodeBuffer(rgba),this.colorSpace.fillRgb(data,originalWidth,originalHeight,drawWidth,drawHeight,numComps,bpc,rgba,alpha01),maybeUndoPreblend&&this.undoPreblend(data,drawWidth,numComps),isOffscreenCanvasSupported&&!mustBeResized?(ctx.putImageData(canvasImgData,0,0),{data:null,width:drawWidth,height:drawHeight,bitmap:canvas.transferToImageBitmap(),interpolate:this.interpolate}):(imgData.data=data,mustBeResized?ImageResizer.createImage(imgData):imgData)}fillGrayBuffer(buffer){var numComps=this.numComps;if(1!==numComps)throw new FormatError("Reading gray scale from a color image: "+numComps);var width=this.width,height=this.height,bpc=this.bpc,numComps=this.getImageBytes(height*(width*numComps*bpc+7>>3),{internal:!0}),comps=this.getComponents(numComps);let i,length;if(1===bpc)if(length=width*height,this.needsDecode)for(i=0;i<length;++i)buffer[i]=comps[i]-1&255;else for(i=0;i<length;++i)buffer[i]=255&-comps[i];else{this.needsDecode&&this.decodeBuffer(comps),length=width*height;var scale=255/((1<<bpc)-1);for(i=0;i<length;++i)buffer[i]=scale*comps[i]}}createBitmap(kind,width,height,src){var canvas=new OffscreenCanvas(width,height),ctx=canvas.getContext("2d");let imgData;return kind===ImageKind.RGBA_32BPP?imgData=new ImageData(src,width,height):(imgData=ctx.createImageData(width,height),convertToRGBA({kind:kind,src:src,dest:new Uint32Array(imgData.data.buffer),width:width,height:height,inverseDecode:this.needsDecode})),ctx.putImageData(imgData,0,0),{data:null,width:width,height:height,bitmap:canvas.transferToImageBitmap(),interpolate:this.interpolate}}getImageBytes(length,{drawWidth,drawHeight,forceRGBA=!1,forceRGB=!1,internal=!1}){this.image.reset(),this.image.drawWidth=drawWidth||this.width,this.image.drawHeight=drawHeight||this.height,this.image.forceRGBA=!!forceRGBA,this.image.forceRGB=!!forceRGB;drawWidth=this.image.getBytes(length,this.ignoreColorSpace);return internal||this.image instanceof DecodeStream?drawWidth:(assert(drawWidth instanceof Uint8Array,'PDFImage.getImageBytes: Unsupported "imageBytes" type.'),new Uint8Array(drawWidth))}}const DefaultPartialEvaluatorOptions=Object.freeze({maxImageSize:-1,disableFontFace:!1,ignoreErrors:!1,isEvalSupported:!0,isOffscreenCanvasSupported:!1,canvasMaxAreaInBytes:-1,fontExtraProperties:!1,useSystemFonts:!0,cMapUrl:null,standardFontDataUrl:null}),PatternType={TILING:1,SHADING:2},TEXT_CHUNK_BATCH_SIZE=10,deferred=Promise.resolve();function normalizeBlendMode(value,parsingArray=!1){if(Array.isArray(value)){for(const val of value){var maybeBM=normalizeBlendMode(val,!0);if(maybeBM)return maybeBM}warn("Unsupported blend mode Array: "+value)}else{if(!(value instanceof Name))return parsingArray?null:"source-over";switch(value.name){case"Normal":case"Compatible":return"source-over";case"Multiply":return"multiply";case"Screen":return"screen";case"Overlay":return"overlay";case"Darken":return"darken";case"Lighten":return"lighten";case"ColorDodge":return"color-dodge";case"ColorBurn":return"color-burn";case"HardLight":return"hard-light";case"SoftLight":return"soft-light";case"Difference":return"difference";case"Exclusion":return"exclusion";case"Hue":return"hue";case"Saturation":return"saturation";case"Color":return"color";case"Luminosity":return"luminosity"}if(parsingArray)return null;warn("Unsupported blend mode: "+value.name)}return"source-over"}function incrementCachedImageMaskCount(data){data.fn===OPS.paintImageMaskXObject&&0<data.args[0]?.count&&data.args[0].count++}class TimeSlotManager{static TIME_SLOT_DURATION_MS=20;static CHECK_TIME_EVERY=100;constructor(){this.reset()}check(){return!(++this.checked<TimeSlotManager.CHECK_TIME_EVERY)&&(this.checked=0,this.endTime<=Date.now())}reset(){this.endTime=Date.now()+TimeSlotManager.TIME_SLOT_DURATION_MS,this.checked=0}}class PartialEvaluator{constructor({xref,handler,pageIndex,idFactory,fontCache,builtInCMapCache,standardFontDataCache,globalImageCache,systemFontCache,options=null}){this.xref=xref,this.handler=handler,this.pageIndex=pageIndex,this.idFactory=idFactory,this.fontCache=fontCache,this.builtInCMapCache=builtInCMapCache,this.standardFontDataCache=standardFontDataCache,this.globalImageCache=globalImageCache,this.systemFontCache=systemFontCache,this.options=options||DefaultPartialEvaluatorOptions,this.parsingType3Font=!1,this._regionalImageCache=new RegionalImageCache,this._fetchBuiltInCMapBound=this.fetchBuiltInCMap.bind(this),ImageResizer.setMaxArea(this.options.canvasMaxAreaInBytes)}get _pdfFunctionFactory(){return shadow(this,"_pdfFunctionFactory",new PDFFunctionFactory({xref:this.xref,isEvalSupported:this.options.isEvalSupported}))}clone(newOptions=null){var newEvaluator=Object.create(this);return newEvaluator.options=Object.assign(Object.create(null),this.options,newOptions),newEvaluator}hasBlendModes(resources,nonBlendModesSet){if(resources instanceof Dict&&(!resources.objId||!nonBlendModesSet.has(resources.objId))){for(var processed=new RefSet(nonBlendModesSet),nodes=(resources.objId&&processed.put(resources.objId),[resources]),xref=this.xref;nodes.length;){var node=nodes.shift(),graphicStates=node.get("ExtGState");if(graphicStates instanceof Dict)for(var graphicState of graphicStates.getRawValues()){if(graphicState instanceof Ref){if(processed.has(graphicState))continue;try{graphicState=xref.fetch(graphicState)}catch(ex){processed.put(graphicState),info(`hasBlendModes - ignoring ExtGState: "${ex}".`);continue}}if(graphicState instanceof Dict){graphicState.objId&&processed.put(graphicState.objId);graphicState=graphicState.get("BM");if(graphicState instanceof Name){if("Normal"!==graphicState.name)return!0}else if(void 0!==graphicState&&Array.isArray(graphicState))for(const element of graphicState)if(element instanceof Name&&"Normal"!==element.name)return!0}}graphicStates=node.get("XObject");if(graphicStates instanceof Dict)for(var xObject of graphicStates.getRawValues()){if(xObject instanceof Ref){if(processed.has(xObject))continue;try{xObject=xref.fetch(xObject)}catch(ex){processed.put(xObject),info(`hasBlendModes - ignoring XObject: "${ex}".`);continue}}xObject instanceof BaseStream&&(xObject.dict.objId&&processed.put(xObject.dict.objId),(xObject=xObject.dict.get("Resources"))instanceof Dict)&&(xObject.objId&&processed.has(xObject.objId)||(nodes.push(xObject),xObject.objId&&processed.put(xObject.objId)))}}for(const ref of processed)nonBlendModesSet.put(ref)}return!1}async fetchBuiltInCMap(name){var cachedData=this.builtInCMapCache.get(name);if(cachedData)return cachedData;let data;if(null!==this.options.cMapUrl){var cachedData=""+this.options.cMapUrl+name+".bcmap",response=await fetch(cachedData);if(!response.ok)throw new Error(`fetchBuiltInCMap: failed to fetch file "${cachedData}" with "${response.statusText}".`);data={cMapData:new Uint8Array(await response.arrayBuffer()),compressionType:CMapCompressionType.BINARY}}else data=await this.handler.sendWithPromise("FetchBuiltInCMap",{name:name});return data.compressionType!==CMapCompressionType.NONE&&this.builtInCMapCache.set(name,data),data}async fetchStandardFontData(name){var cachedData=this.standardFontDataCache.get(name);if(cachedData)return new Stream(cachedData);if(this.options.useSystemFonts&&"Symbol"!==name&&"ZapfDingbats"!==name)return null;cachedData=getFontNameToFileMap()[name];let data;if(null!==this.options.standardFontDataUrl){var url=""+this.options.standardFontDataUrl+cachedData,response=await fetch(url);response.ok?data=new Uint8Array(await response.arrayBuffer()):warn(`fetchStandardFontData: failed to fetch file "${url}" with "${response.statusText}".`)}else try{data=await this.handler.sendWithPromise("FetchStandardFontData",{filename:cachedData})}catch(e){warn(`fetchStandardFontData: failed to fetch file "${cachedData}" with "${e}".`)}return data?(this.standardFontDataCache.set(name,data),new Stream(data)):null}async buildFormXObject(resources,xobj,smask,operatorList,task,initialState,localColorSpaceCache){var dict=xobj.dict,matrix=dict.getArray("Matrix"),bbox=dict.getArray("BBox"),bbox=Array.isArray(bbox)&&4===bbox.length?Util.normalizeRect(bbox):null;let optionalContent,groupOptions;void 0!==(optionalContent=dict.has("OC")?await this.parseMarkedContentProps(dict.get("OC"),resources):optionalContent)&&operatorList.addOp(OPS.beginMarkedContentProps,["OC",optionalContent]);var cs,group=dict.get("Group");if(group){groupOptions={matrix:matrix,bbox:bbox,smask:smask,isolated:!1,knockout:!1};let colorSpace=null;isName(group.get("S"),"Transparency")&&(groupOptions.isolated=group.get("I")||!1,groupOptions.knockout=group.get("K")||!1,group.has("CS"))&&(cs=group.getRaw("CS"),cachedColorSpace=ColorSpace.getCached(cs,this.xref,localColorSpaceCache),colorSpace=cachedColorSpace||await this.parseColorSpace({cs:cs,resources:resources,localColorSpaceCache:localColorSpaceCache})),smask?.backdrop&&(colorSpace||=ColorSpace.singletons.rgb,smask.backdrop=colorSpace.getRgb(smask.backdrop,0)),operatorList.addOp(OPS.beginGroup,[groupOptions])}var cachedColorSpace=group?[matrix,null]:[matrix,bbox];operatorList.addOp(OPS.paintFormXObjectBegin,cachedColorSpace),await this.getOperatorList({stream:xobj,task:task,resources:dict.get("Resources")||resources,operatorList:operatorList,initialState:initialState}),operatorList.addOp(OPS.paintFormXObjectEnd,[]),group&&operatorList.addOp(OPS.endGroup,[groupOptions]),void 0!==optionalContent&&operatorList.addOp(OPS.endMarkedContent,[])}_sendImgData(objId,imgData,cacheGlobally=!1){var transfers=imgData?[imgData.bitmap||imgData.data.buffer]:null;return this.parsingType3Font||cacheGlobally?this.handler.send("commonobj",[objId,"Image",imgData],transfers):this.handler.send("obj",[objId,this.pageIndex,"Image",imgData],transfers)}async buildPaintImageXObject({resources,image,isInline=!1,operatorList,cacheKey,localImageCache,localColorSpaceCache}){var dict=image.dict;const imageRef=dict.objId;var w=dict.get("W","Width"),h=dict.get("H","Height");if(w&&"number"==typeof w&&h&&"number"==typeof h){var maxImageSize=this.options.maxImageSize;if(-1!==maxImageSize&&maxImageSize<w*h){maxImageSize="Image exceeded maximum allowed size and was removed.";if(this.options.ignoreErrors)return void warn(maxImageSize);throw new Error(maxImageSize)}let optionalContent;dict.has("OC")&&(optionalContent=await this.parseMarkedContentProps(dict.get("OC"),resources));maxImageSize=dict.get("IM","ImageMask")||!1;let imgData,args;if(maxImageSize){var maxImageSize=dict.get("I","Interpolate"),imgArray=image.getBytes((w+7>>3)*h),decode=dict.getArray("D","Decode");if(this.parsingType3Font)return(imgData=PDFImage.createRawMask({imgArray:imgArray,width:w,height:h,imageIsFromDecodeStream:image instanceof DecodeStream,inverseDecode:0<decode?.[0],interpolate:maxImageSize})).cached=!!cacheKey,args=[imgData],operatorList.addImageOps(OPS.paintImageMaskXObject,args,optionalContent),void(cacheKey&&(cacheData={fn:OPS.paintImageMaskXObject,args:args,optionalContent:optionalContent},localImageCache.set(cacheKey,imageRef,cacheData),imageRef)&&this._regionalImageCache.set(null,imageRef,cacheData));if((imgData=await PDFImage.createMask({imgArray:imgArray,width:w,height:h,imageIsFromDecodeStream:image instanceof DecodeStream,inverseDecode:0<decode?.[0],interpolate:maxImageSize,isOffscreenCanvasSupported:this.options.isOffscreenCanvasSupported})).isSingleOpaquePixel){if(operatorList.addImageOps(OPS.paintSolidColorImageMask,[],optionalContent),cacheKey){const cacheData={fn:OPS.paintSolidColorImageMask,args:[],optionalContent:optionalContent};localImageCache.set(cacheKey,imageRef,cacheData),imageRef&&this._regionalImageCache.set(null,imageRef,cacheData)}return}const objId="mask_"+this.idFactory.createObjId();if(operatorList.addDependency(objId),imgData.dataLen=imgData.bitmap?imgData.width*imgData.height*4:imgData.data.length,this._sendImgData(objId,imgData),args=[{data:objId,width:imgData.width,height:imgData.height,interpolate:imgData.interpolate,count:1}],operatorList.addImageOps(OPS.paintImageMaskXObject,args,optionalContent),cacheKey){const cacheData={fn:OPS.paintImageMaskXObject,args:args,optionalContent:optionalContent};localImageCache.set(cacheKey,imageRef,cacheData),imageRef&&this._regionalImageCache.set(null,imageRef,cacheData)}}else if(isInline&&w+h<200&&!dict.has("SMask")&&!dict.has("Mask"))try{var imageObj=new PDFImage({xref:this.xref,res:resources,image:image,isInline:isInline,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache});imgData=await imageObj.createImageData(!0,!1),operatorList.isOffscreenCanvasSupported=this.options.isOffscreenCanvasSupported,operatorList.addImageOps(OPS.paintInlineImageXObject,[imgData],optionalContent)}catch(reason){const msg=`Unable to decode inline image: "${reason}".`;if(!this.options.ignoreErrors)throw new Error(msg);warn(msg)}else{let objId="img_"+this.idFactory.createObjId(),cacheGlobally=!1;if(this.parsingType3Font?objId=this.idFactory.getDocId()+"_type3_"+objId:cacheKey&&imageRef&&(cacheGlobally=this.globalImageCache.shouldCache(imageRef,this.pageIndex))&&(assert(!isInline,"Cannot cache an inline image globally."),objId=this.idFactory.getDocId()+"_"+objId),operatorList.addDependency(objId),args=[objId,w,h],operatorList.addImageOps(OPS.paintImageXObject,args,optionalContent),cacheGlobally&&(25e4<w*h||dict.has("SMask")||dict.has("Mask"))){var cacheData=await this.handler.sendWithPromise("commonobj",[objId,"CopyLocalImage",{imageRef:imageRef}]);if(cacheData)return this.globalImageCache.setData(imageRef,{objId:objId,fn:OPS.paintImageXObject,args:args,optionalContent:optionalContent,byteSize:0}),void this.globalImageCache.addByteSize(imageRef,cacheData)}if(PDFImage.buildImage({xref:this.xref,res:resources,image:image,isInline:isInline,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache}).then(async imageObj=>((imgData=await imageObj.createImageData(!1,this.options.isOffscreenCanvasSupported)).dataLen=imgData.bitmap?imgData.width*imgData.height*4:imgData.data.length,imgData.ref=imageRef,cacheGlobally&&this.globalImageCache.addByteSize(imageRef,imgData.dataLen),this._sendImgData(objId,imgData,cacheGlobally))).catch(reason=>(warn(`Unable to decode image "${objId}": "${reason}".`),this._sendImgData(objId,null,cacheGlobally))),cacheKey){const cacheData={fn:OPS.paintImageXObject,args:args,optionalContent:optionalContent};localImageCache.set(cacheKey,imageRef,cacheData),imageRef&&(this._regionalImageCache.set(null,imageRef,cacheData),cacheGlobally)&&this.globalImageCache.setData(imageRef,{objId:objId,fn:OPS.paintImageXObject,args:args,optionalContent:optionalContent,byteSize:0})}}}else warn("Image dimensions are missing, or not numbers.")}handleSMask(smask,resources,operatorList,task,stateManager,localColorSpaceCache){var smaskContent=smask.get("G"),smaskOptions={subtype:smask.get("S").name,backdrop:smask.get("BC")},smask=smask.get("TR");if(isPDFFunction(smask)){var transferFn=this._pdfFunctionFactory.create(smask),transferMap=new Uint8Array(256),tmp=new Float32Array(1);for(let i=0;i<256;i++)tmp[0]=i/255,transferFn(tmp,0,tmp,0),transferMap[i]=255*tmp[0]|0;smaskOptions.transferMap=transferMap}return this.buildFormXObject(resources,smaskContent,smaskOptions,operatorList,task,stateManager.state.clone(),localColorSpaceCache)}handleTransferFunction(tr){let transferArray;if(Array.isArray(tr))transferArray=tr;else{if(!isPDFFunction(tr))return null;transferArray=[tr]}var transferMaps=[];let numFns=0,numEffectfulFns=0;for(const entry of transferArray){var transferObj=this.xref.fetchIfRef(entry);if(numFns++,isName(transferObj,"Identity"))transferMaps.push(null);else{if(!isPDFFunction(transferObj))return null;var transferFn=this._pdfFunctionFactory.create(transferObj),transferMap=new Uint8Array(256),tmp=new Float32Array(1);for(let j=0;j<256;j++)tmp[0]=j/255,transferFn(tmp,0,tmp,0),transferMap[j]=255*tmp[0]|0;transferMaps.push(transferMap),numEffectfulFns++}}return 1!==numFns&&4!==numFns||0===numEffectfulFns?null:transferMaps}handleTilingType(fn,color,resources,pattern,patternDict,operatorList,task,localTilingPatternCache){const tilingOpList=new OperatorList;resources=Dict.merge({xref:this.xref,dictArray:[patternDict.get("Resources"),resources]});return this.getOperatorList({stream:pattern,task:task,resources:resources,operatorList:tilingOpList}).then(function(){var operatorListIR=tilingOpList.getIR(),tilingPatternIR=getTilingPatternIR(operatorListIR,patternDict,color);operatorList.addDependencies(tilingOpList.dependencies),operatorList.addOp(fn,tilingPatternIR),patternDict.objId&&localTilingPatternCache.set(null,patternDict.objId,{operatorListIR:operatorListIR,dict:patternDict})}).catch(reason=>{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn(`handleTilingType - ignoring pattern: "${reason}".`)}})}async handleSetFont(resources,fontArgs,fontRef,operatorList,task,state,fallbackFontDict=null,cssFontInfo=null){fontArgs=fontArgs?.[0]instanceof Name?fontArgs[0].name:null;let translated=await this.loadFont(fontArgs,fontRef,resources,fallbackFontDict,cssFontInfo);if(translated.font.isType3Font)try{await translated.loadType3Data(this,resources,task),operatorList.addDependencies(translated.type3Dependencies)}catch(reason){translated=new TranslatedFont({loadedName:"g_font_error",font:new ErrorFont("Type3 font load error: "+reason),dict:translated.font,evaluatorOptions:this.options})}return state.font=translated.font,translated.send(this.handler),translated.loadedName}handleText(chars,state){var font=state.font,chars=font.charsToGlyphs(chars);return font.data&&(!!(state.textRenderingMode&TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===state.fillColorSpace.name||font.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(font,chars,this.handler,this.options),chars}ensureStateFont(state){if(!state.font){state=new FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw state;warn(`ensureStateFont: "${state}".`)}}async setGState({resources,gState,operatorList,cacheKey,task,stateManager,localGStateCache,localColorSpaceCache}){var gStateRef=gState.objId;let isSimpleGState=!0;const gStateObj=[];let promise=Promise.resolve();for(const key of gState.getKeys()){const value=gState.get(key);switch(key){case"Type":break;case"LW":case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":gStateObj.push([key,value]);break;case"Font":isSimpleGState=!1,promise=promise.then(()=>this.handleSetFont(resources,null,value[0],operatorList,task,stateManager.state).then(function(loadedName){operatorList.addDependency(loadedName),gStateObj.push([key,[loadedName,value[1]]])}));break;case"BM":gStateObj.push([key,normalizeBlendMode(value)]);break;case"SMask":isName(value,"None")?gStateObj.push([key,!1]):value instanceof Dict?(isSimpleGState=!1,promise=promise.then(()=>this.handleSMask(value,resources,operatorList,task,stateManager,localColorSpaceCache)),gStateObj.push([key,!0])):warn("Unsupported SMask type");break;case"TR":var transferMaps=this.handleTransferFunction(value);gStateObj.push([key,transferMaps]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":info("graphic state operator "+key);break;default:info("Unknown graphic state operator "+key)}}await promise,0<gStateObj.length&&operatorList.addOp(OPS.setGState,[gStateObj]),isSimpleGState&&localGStateCache.set(cacheKey,gStateRef,gStateObj)}loadFont(fontName,font,resources,fallbackFontDict=null,cssFontInfo=null){var errorFont=async()=>new TranslatedFont({loadedName:"g_font_error",font:new ErrorFont(`Font "${fontName}" is not available.`),dict:font,evaluatorOptions:this.options});let fontRef;if(font?font instanceof Ref&&(fontRef=font):(resources=resources.get("Font"))&&(fontRef=resources.getRaw(fontName)),fontRef){if(this.parsingType3Font&&this.type3FontRefs.has(fontRef))return errorFont();if(this.fontCache.has(fontRef))return this.fontCache.get(fontRef);font=this.xref.fetchIfRef(fontRef)}if(!(font instanceof Dict)){if(!this.options.ignoreErrors&&!this.parsingType3Font)return warn(`Font "${fontName}" is not available.`),errorFont();warn(`Font "${fontName}" is not available -- attempting to fallback to a default font.`),font=fallbackFontDict||PartialEvaluator.fallbackFontDict}if(font.cacheKey&&this.fontCache.has(font.cacheKey))return this.fontCache.get(font.cacheKey);const{promise,resolve}=Promise.withResolvers();let preEvaluatedFont;try{(preEvaluatedFont=this.preEvaluateFont(font)).cssFontInfo=cssFontInfo}catch(reason){return warn(`loadFont - preEvaluateFont failed: "${reason}".`),errorFont()}var{descriptor:resources,hash:fallbackFontDict}=preEvaluatedFont,cssFontInfo=fontRef instanceof Ref;let fontID;if(fallbackFontDict&&resources instanceof Dict){errorFont=resources.fontAliases||=Object.create(null);if(errorFont[fallbackFontDict]){resources=errorFont[fallbackFontDict].aliasRef;if(cssFontInfo&&resources&&this.fontCache.has(resources))return this.fontCache.putAlias(fontRef,resources),this.fontCache.get(fontRef)}else errorFont[fallbackFontDict]={fontID:this.idFactory.createFontId()};cssFontInfo&&(errorFont[fallbackFontDict].aliasRef=fontRef),fontID=errorFont[fallbackFontDict].fontID}else fontID=this.idFactory.createFontId();return assert(fontID?.startsWith("f"),'The "fontID" must be (correctly) defined.'),cssFontInfo?this.fontCache.put(fontRef,promise):(font.cacheKey="cacheKey_"+fontID,this.fontCache.put(font.cacheKey,promise)),font.loadedName=this.idFactory.getDocId()+"_"+fontID,this.translateFont(preEvaluatedFont).then(translatedFont=>{resolve(new TranslatedFont({loadedName:font.loadedName,font:translatedFont,dict:font,evaluatorOptions:this.options}))}).catch(reason=>{warn(`loadFont - translateFont failed: "${reason}".`),resolve(new TranslatedFont({loadedName:font.loadedName,font:new ErrorFont(reason instanceof Error?reason.message:reason),dict:font,evaluatorOptions:this.options}))}),promise}buildPath(operatorList,fn,args,parsingText=!1){var lastIndex=operatorList.length-1;if(args=args||[],lastIndex<0||operatorList.fnArray[lastIndex]!==OPS.constructPath){parsingText&&(warn(`Encountered path operator "${fn}" inside of a text object.`),operatorList.addOp(OPS.save,null));let minMax;switch(fn){case OPS.rectangle:var x=args[0]+args[2],y=args[1]+args[3];minMax=[Math.min(args[0],x),Math.min(args[1],y),Math.max(args[0],x),Math.max(args[1],y)];break;case OPS.moveTo:case OPS.lineTo:minMax=[args[0],args[1],args[0],args[1]];break;default:minMax=[1/0,1/0,-1/0,-1/0]}operatorList.addOp(OPS.constructPath,[[fn],args,minMax]),parsingText&&operatorList.addOp(OPS.restore,null)}else{var parsingText=operatorList.argsArray[lastIndex],minMax=(parsingText[0].push(fn),parsingText[1].push(...args),parsingText[2]);switch(fn){case OPS.rectangle:const x=args[0]+args[2],y=args[1]+args[3];minMax[0]=Math.min(minMax[0],args[0],x),minMax[1]=Math.min(minMax[1],args[1],y),minMax[2]=Math.max(minMax[2],args[0],x),minMax[3]=Math.max(minMax[3],args[1],y);break;case OPS.moveTo:case OPS.lineTo:minMax[0]=Math.min(minMax[0],args[0]),minMax[1]=Math.min(minMax[1],args[1]),minMax[2]=Math.max(minMax[2],args[0]),minMax[3]=Math.max(minMax[3],args[1])}}}parseColorSpace({cs,resources,localColorSpaceCache}){return ColorSpace.parseAsync({cs:cs,xref:this.xref,resources:resources,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache}).catch(reason=>{if(reason instanceof AbortException)return null;if(this.options.ignoreErrors)return warn(`parseColorSpace - ignoring ColorSpace: "${reason}".`),null;throw reason})}parseShading({shading,resources,localColorSpaceCache,localShadingPatternCache}){let id=localShadingPatternCache.get(shading);if(!id){let patternIR;try{var shadingFill=Pattern.parseShading(shading,this.xref,resources,this._pdfFunctionFactory,localColorSpaceCache);patternIR=shadingFill.getIR()}catch(reason){if(reason instanceof AbortException)return null;if(this.options.ignoreErrors)return warn(`parseShading - ignoring shading: "${reason}".`),localShadingPatternCache.set(shading,null),null;throw reason}id="pattern_"+this.idFactory.createObjId(),this.parsingType3Font&&(id=this.idFactory.getDocId()+"_type3_"+id),localShadingPatternCache.set(shading,id),this.parsingType3Font?this.handler.send("commonobj",[id,"Pattern",patternIR]):this.handler.send("obj",[id,this.pageIndex,"Pattern",patternIR])}return id}handleColorN(operatorList,fn,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache){var patternName=args.pop();if(patternName instanceof Name){var patterns=patterns.getRaw(patternName.name),localTilingPattern=patterns instanceof Ref&&localTilingPatternCache.getByRef(patterns);if(localTilingPattern)try{var color=cs.base?cs.base.getRgb(args,0):null,tilingPatternIR=getTilingPatternIR(localTilingPattern.operatorListIR,localTilingPattern.dict,color);return void operatorList.addOp(fn,tilingPatternIR)}catch{}localTilingPattern=this.xref.fetchIfRef(patterns);if(localTilingPattern){tilingPatternIR=localTilingPattern instanceof BaseStream?localTilingPattern.dict:localTilingPattern,color=tilingPatternIR.get("PatternType");if(color===PatternType.TILING){const color=cs.base?cs.base.getRgb(args,0):null;return this.handleTilingType(fn,color,resources,localTilingPattern,tilingPatternIR,operatorList,task,localTilingPatternCache)}if(color===PatternType.SHADING)return patterns=tilingPatternIR.get("Shading"),void((cs=this.parseShading({shading:patterns,resources:resources,localColorSpaceCache:localColorSpaceCache,localShadingPatternCache:localShadingPatternCache}))&&(args=tilingPatternIR.getArray("Matrix"),operatorList.addOp(fn,["Shading",cs,args])));throw new FormatError("Unknown PatternType: "+color)}}throw new FormatError("Unknown PatternName: "+patternName)}_parseVisibilityExpression(array,nestingCounter,currentResult){if(10<++nestingCounter)warn("Visibility expression is too deeply nested");else{var length=array.length,operator=this.xref.fetchIfRef(array[0]);if(length<2||!(operator instanceof Name))warn("Invalid visibility expression");else{switch(operator.name){case"And":case"Or":case"Not":currentResult.push(operator.name);break;default:return void warn(`Invalid operator ${operator.name} in visibility expression`)}for(let i=1;i<length;i++){var nestedResult,raw=array[i],object=this.xref.fetchIfRef(raw);Array.isArray(object)?(currentResult.push(nestedResult=[]),this._parseVisibilityExpression(object,nestingCounter,nestedResult)):raw instanceof Ref&¤tResult.push(raw.toString())}}}}async parseMarkedContentProps(contentProperties,resources){let optionalContent;if(contentProperties instanceof Name){resources=resources.get("Properties");optionalContent=resources.get(contentProperties.name)}else{if(!(contentProperties instanceof Dict))throw new FormatError("Optional content properties malformed.");optionalContent=contentProperties}resources=optionalContent.get("Type")?.name;if("OCG"===resources)return{type:resources,id:optionalContent.objId};if("OCMD"===resources){contentProperties=optionalContent.get("VE");if(Array.isArray(contentProperties)){var result=[];if(this._parseVisibilityExpression(contentProperties,0,result),0<result.length)return{type:"OCMD",expression:result}}contentProperties=optionalContent.get("OCGs");if(Array.isArray(contentProperties)||contentProperties instanceof Dict){var groupIds=[];if(Array.isArray(contentProperties))for(const ocg of contentProperties)groupIds.push(ocg.toString());else groupIds.push(contentProperties.objId);return{type:resources,ids:groupIds,policy:optionalContent.get("P")instanceof Name?optionalContent.get("P").name:null,expression:null}}if(contentProperties instanceof Ref)return{type:resources,id:contentProperties.toString()}}return null}getOperatorList({stream,task,resources,operatorList,initialState=null,fallbackFontDict=null}){if(resources||=Dict.empty,initialState||=new EvalState,!operatorList)throw new Error('getOperatorList: missing "operatorList" parameter');const self=this,xref=this.xref;let parsingText=!1;const localImageCache=new LocalImageCache,localColorSpaceCache=new LocalColorSpaceCache,localGStateCache=new LocalGStateCache,localTilingPatternCache=new LocalTilingPatternCache,localShadingPatternCache=new Map,xobjs=resources.get("XObject")||Dict.empty,patterns=resources.get("Pattern")||Dict.empty,stateManager=new StateManager(initialState),preprocessor=new EvaluatorPreprocessor(stream,xref,stateManager),timeSlotManager=new TimeSlotManager;function closePendingRestoreOPS(){for(let i=0,ii=preprocessor.savedStatesDepth;i<ii;i++)operatorList.addOp(OPS.restore,[])}return new Promise(function promiseBody(resolve,reject){function next(promise){Promise.all([promise,operatorList.ready]).then(function(){try{promiseBody(resolve,reject)}catch(ex){reject(ex)}},reject)}task.ensureNotTerminated(),timeSlotManager.reset();var operation={};let stop,i,ii,cs,name,isValidName;for(;!(stop=timeSlotManager.check())&&(operation.args=null,preprocessor.read(operation));){let args=operation.args,fn=operation.fn;switch(0|fn){case OPS.paintXObject:if(isValidName=args[0]instanceof Name,name=args[0].name,isValidName){var localImage=localImageCache.getByName(name);if(localImage){operatorList.addImageOps(localImage.fn,localImage.args,localImage.optionalContent),incrementCachedImageMaskCount(localImage),args=null;continue}}return void next(new Promise(function(resolveXObject,rejectXObject){if(!isValidName)throw new FormatError("XObject must be referred to by name.");let xobj=xobjs.getRaw(name);if(xobj instanceof Ref){var localImage=localImageCache.getByRef(xobj)||self._regionalImageCache.getByRef(xobj);if(localImage)return operatorList.addImageOps(localImage.fn,localImage.args,localImage.optionalContent),incrementCachedImageMaskCount(localImage),void resolveXObject();localImage=self.globalImageCache.getData(xobj,self.pageIndex);if(localImage)return operatorList.addDependency(localImage.objId),operatorList.addImageOps(localImage.fn,localImage.args,localImage.optionalContent),void resolveXObject();xobj=xref.fetch(xobj)}if(!(xobj instanceof BaseStream))throw new FormatError("XObject should be a stream");localImage=xobj.dict.get("Subtype");if(!(localImage instanceof Name))throw new FormatError("XObject should have a Name subtype");if("Form"===localImage.name)stateManager.save(),self.buildFormXObject(resources,xobj,null,operatorList,task,stateManager.state.clone(),localColorSpaceCache).then(function(){stateManager.restore(),resolveXObject()},rejectXObject);else if("Image"===localImage.name)self.buildPaintImageXObject({resources:resources,image:xobj,operatorList:operatorList,cacheKey:name,localImageCache:localImageCache,localColorSpaceCache:localColorSpaceCache}).then(resolveXObject,rejectXObject);else{if("PS"!==localImage.name)throw new FormatError("Unhandled XObject subtype "+localImage.name);info("Ignored XObject subtype PS"),resolveXObject()}}).catch(function(reason){if(!(reason instanceof AbortException)){if(!self.options.ignoreErrors)throw reason;warn(`getOperatorList - ignoring XObject: "${reason}".`)}}));case OPS.setFont:var fontSize=args[1];return void next(self.handleSetFont(resources,args,null,operatorList,task,stateManager.state,fallbackFontDict).then(function(loadedName){operatorList.addDependency(loadedName),operatorList.addOp(OPS.setFont,[loadedName,fontSize])}));case OPS.beginText:parsingText=!0;break;case OPS.endText:parsingText=!1;break;case OPS.endInlineImage:var cacheKey=args[0].cacheKey;if(cacheKey){const localImage=localImageCache.getByName(cacheKey);if(localImage){operatorList.addImageOps(localImage.fn,localImage.args,localImage.optionalContent),incrementCachedImageMaskCount(localImage),args=null;continue}}return void next(self.buildPaintImageXObject({resources:resources,image:args[0],isInline:!0,operatorList:operatorList,cacheKey:cacheKey,localImageCache:localImageCache,localColorSpaceCache:localColorSpaceCache}));case OPS.showText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue}args[0]=self.handleText(args[0],stateManager.state);break;case OPS.showSpacedText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue}var combinedGlyphs=[],state=stateManager.state;for(const arrItem of args[0])"string"==typeof arrItem?combinedGlyphs.push(...self.handleText(arrItem,state)):"number"==typeof arrItem&&combinedGlyphs.push(arrItem);args[0]=combinedGlyphs,fn=OPS.showText;break;case OPS.nextLineShowText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue}operatorList.addOp(OPS.nextLine),args[0]=self.handleText(args[0],stateManager.state),fn=OPS.showText;break;case OPS.nextLineSetSpacingShowText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue}operatorList.addOp(OPS.nextLine),operatorList.addOp(OPS.setWordSpacing,[args.shift()]),operatorList.addOp(OPS.setCharSpacing,[args.shift()]),args[0]=self.handleText(args[0],stateManager.state),fn=OPS.showText;break;case OPS.setTextRenderingMode:stateManager.state.textRenderingMode=args[0];break;case OPS.setFillColorSpace:localImage=ColorSpace.getCached(args[0],xref,localColorSpaceCache);if(localImage){stateManager.state.fillColorSpace=localImage;continue}return void next(self.parseColorSpace({cs:args[0],resources:resources,localColorSpaceCache:localColorSpaceCache}).then(function(colorSpace){colorSpace&&(stateManager.state.fillColorSpace=colorSpace)}));case OPS.setStrokeColorSpace:{const cachedColorSpace=ColorSpace.getCached(args[0],xref,localColorSpaceCache);if(cachedColorSpace){stateManager.state.strokeColorSpace=cachedColorSpace;continue}return void next(self.parseColorSpace({cs:args[0],resources:resources,localColorSpaceCache:localColorSpaceCache}).then(function(colorSpace){colorSpace&&(stateManager.state.strokeColorSpace=colorSpace)}))}case OPS.setFillColor:cs=stateManager.state.fillColorSpace,args=cs.getRgb(args,0),fn=OPS.setFillRGBColor;break;case OPS.setStrokeColor:cs=stateManager.state.strokeColorSpace,args=cs.getRgb(args,0),fn=OPS.setStrokeRGBColor;break;case OPS.setFillGray:stateManager.state.fillColorSpace=ColorSpace.singletons.gray,args=ColorSpace.singletons.gray.getRgb(args,0),fn=OPS.setFillRGBColor;break;case OPS.setStrokeGray:stateManager.state.strokeColorSpace=ColorSpace.singletons.gray,args=ColorSpace.singletons.gray.getRgb(args,0),fn=OPS.setStrokeRGBColor;break;case OPS.setFillCMYKColor:stateManager.state.fillColorSpace=ColorSpace.singletons.cmyk,args=ColorSpace.singletons.cmyk.getRgb(args,0),fn=OPS.setFillRGBColor;break;case OPS.setStrokeCMYKColor:stateManager.state.strokeColorSpace=ColorSpace.singletons.cmyk,args=ColorSpace.singletons.cmyk.getRgb(args,0),fn=OPS.setStrokeRGBColor;break;case OPS.setFillRGBColor:stateManager.state.fillColorSpace=ColorSpace.singletons.rgb,args=ColorSpace.singletons.rgb.getRgb(args,0);break;case OPS.setStrokeRGBColor:stateManager.state.strokeColorSpace=ColorSpace.singletons.rgb,args=ColorSpace.singletons.rgb.getRgb(args,0);break;case OPS.setFillColorN:if("Pattern"===(cs=stateManager.state.fillColorSpace).name)return void next(self.handleColorN(operatorList,OPS.setFillColorN,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache));args=cs.getRgb(args,0),fn=OPS.setFillRGBColor;break;case OPS.setStrokeColorN:if("Pattern"===(cs=stateManager.state.strokeColorSpace).name)return void next(self.handleColorN(operatorList,OPS.setStrokeColorN,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache));args=cs.getRgb(args,0),fn=OPS.setStrokeRGBColor;break;case OPS.shadingFill:cacheKey=resources.get("Shading");if(!cacheKey)throw new FormatError("No shading resource found");var shading=cacheKey.get(args[0].name);if(!shading)throw new FormatError("No shading object found");shading=self.parseShading({shading:shading,resources:resources,localColorSpaceCache:localColorSpaceCache,localShadingPatternCache:localShadingPatternCache});if(!shading)continue;args=[shading],fn=OPS.shadingFill;break;case OPS.setGState:if(isValidName=args[0]instanceof Name,name=args[0].name,isValidName){shading=localGStateCache.getByName(name);if(shading){0<shading.length&&operatorList.addOp(OPS.setGState,[shading]),args=null;continue}}return void next(new Promise(function(resolveGState,rejectGState){if(!isValidName)throw new FormatError("GState must be referred to by name.");var extGState=resources.get("ExtGState");if(!(extGState instanceof Dict))throw new FormatError("ExtGState should be a dictionary.");extGState=extGState.get(name);if(!(extGState instanceof Dict))throw new FormatError("GState should be a dictionary.");self.setGState({resources:resources,gState:extGState,operatorList:operatorList,cacheKey:name,task:task,stateManager:stateManager,localGStateCache:localGStateCache,localColorSpaceCache:localColorSpaceCache}).then(resolveGState,rejectGState)}).catch(function(reason){if(!(reason instanceof AbortException)){if(!self.options.ignoreErrors)throw reason;warn(`getOperatorList - ignoring ExtGState: "${reason}".`)}}));case OPS.moveTo:case OPS.lineTo:case OPS.curveTo:case OPS.curveTo2:case OPS.curveTo3:case OPS.closePath:case OPS.rectangle:self.buildPath(operatorList,fn,args,parsingText);continue;case OPS.markPoint:case OPS.markPointProps:case OPS.beginCompat:case OPS.endCompat:continue;case OPS.beginMarkedContentProps:if(!(args[0]instanceof Name)){warn("Expected name for beginMarkedContentProps arg0="+args[0]),operatorList.addOp(OPS.beginMarkedContentProps,["OC",null]);continue}if("OC"===args[0].name)return void next(self.parseMarkedContentProps(args[1],resources).then(data=>{operatorList.addOp(OPS.beginMarkedContentProps,["OC",data])}).catch(reason=>{if(!(reason instanceof AbortException)){if(!self.options.ignoreErrors)throw reason;warn(`getOperatorList - ignoring beginMarkedContentProps: "${reason}".`),operatorList.addOp(OPS.beginMarkedContentProps,["OC",null])}}));args=[args[0].name,args[1]instanceof Dict?args[1].get("MCID"):null];break;case OPS.beginMarkedContent:case OPS.endMarkedContent:default:if(null!==args){for(i=0,ii=args.length;i<ii&&!(args[i]instanceof Dict);i++);if(i<ii){warn("getOperatorList - ignoring operator: "+fn);continue}}}operatorList.addOp(fn,args)}stop?next(deferred):(closePendingRestoreOPS(),resolve())}).catch(reason=>{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn(`getOperatorList - ignoring errors during "${task.name}" `+`task: "${reason}".`),closePendingRestoreOPS()}})}getTextContent({stream,task,resources,stateManager=null,includeMarkedContent=!1,sink,seenStyles=new Set,viewBox,markedContentData=null,disableNormalization=!1,keepWhiteSpace=!1}){resources||=Dict.empty,stateManager||=new StateManager(new TextState),includeMarkedContent&&(markedContentData||={level:0});const textContent={items:[],styles:Object.create(null)},textContentItem={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,prevTransform:null,textAdvanceScale:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,negativeSpaceMax:-1/0,notASpace:-1/0,transform:null,fontName:null,hasEOL:!1},twoLastChars=[" "," "];let twoLastCharsPos=0;function saveLastChar(char){var nextPos=(twoLastCharsPos+1)%2,ret=" "!==twoLastChars[twoLastCharsPos]&&" "===twoLastChars[nextPos];return twoLastChars[twoLastCharsPos]=char,twoLastCharsPos=nextPos,!keepWhiteSpace&&ret}function shouldAddWhitepsace(){return!keepWhiteSpace&&" "!==twoLastChars[twoLastCharsPos]&&" "===twoLastChars[(twoLastCharsPos+1)%2]}function resetLastChars(){twoLastChars[0]=twoLastChars[1]=" ",twoLastCharsPos=0}const TRACKING_SPACE_FACTOR=.102,NOT_A_SPACE_FACTOR=.03,NEGATIVE_SPACE_FACTOR=-.2,SPACE_IN_FLOW_MIN_FACTOR=.102,SPACE_IN_FLOW_MAX_FACTOR=.6,VERTICAL_SHIFT_RATIO=.25,self=this,xref=this.xref,showSpacedTextBuffer=[];let xobjs=null;const emptyXObjectCache=new LocalImageCache,emptyGStateCache=new LocalGStateCache,preprocessor=new EvaluatorPreprocessor(stream,xref,stateManager);let textState;function pushWhitespace({width=0,height=0,transform=textContentItem.prevTransform,fontName=textContentItem.fontName}){textContent.items.push({str:" ",dir:"ltr",width:width,height:height,transform:transform,fontName:fontName,hasEOL:!1})}function getCurrentTextTransform(){var font=textState.font,tsm=[textState.fontSize*textState.textHScale,0,0,textState.fontSize,0,textState.textRise];return font.isType3Font&&(textState.fontSize<=1||font.isCharBBox)&&!isArrayEqual(textState.fontMatrix,FONT_IDENTITY_MATRIX)&&0<(font=font.bbox[3]-font.bbox[1])&&(tsm[3]*=font*textState.fontMatrix[3]),Util.transform(textState.ctm,Util.transform(textState.textMatrix,tsm))}async function handleSetFont(fontName,fontRef){fontName=await self.loadFont(fontName,fontRef,resources);if(fontName.font.isType3Font)try{await fontName.loadType3Data(self,resources,task)}catch{}textState.loadedName=fontName.loadedName,textState.font=fontName.font,textState.fontMatrix=fontName.font.fontMatrix||FONT_IDENTITY_MATRIX}function applyInverseRotation(x,y,matrix){var scale=Math.hypot(matrix[0],matrix[1]);return[(matrix[0]*x+matrix[1]*y)/scale,(matrix[2]*x+matrix[3]*y)/scale]}function compareWithLastPosition(glyphWidth){var currentTransform=getCurrentTextTransform();let posX=currentTransform[4],posY=currentTransform[5];if(textState.font?.vertical){if(posX<viewBox[0]||posX>viewBox[2]||posY+glyphWidth<viewBox[1]||posY>viewBox[3])return}else if(posX+glyphWidth<viewBox[0]||posX>viewBox[2]||posY<viewBox[1]||posY>viewBox[3])return;if(textState.font&&textContentItem.prevTransform){let lastPosX=textContentItem.prevTransform[4],lastPosY=textContentItem.prevTransform[5];if(lastPosX!==posX||lastPosY!==posY){let rotate=-1;switch(currentTransform[0]&&0===currentTransform[1]&&0===currentTransform[2]?rotate=0<currentTransform[0]?0:180:currentTransform[1]&&0===currentTransform[0]&&0===currentTransform[3]&&(rotate=0<currentTransform[1]?90:270),rotate){case 0:break;case 90:[posX,posY]=[posY,posX],[lastPosX,lastPosY]=[lastPosY,lastPosX];break;case 180:[posX,posY,lastPosX,lastPosY]=[-posX,-posY,-lastPosX,-lastPosY];break;case 270:[posX,posY]=[-posY,-posX],[lastPosX,lastPosY]=[-lastPosY,-lastPosX];break;default:[posX,posY]=applyInverseRotation(posX,posY,currentTransform),[lastPosX,lastPosY]=applyInverseRotation(lastPosX,lastPosY,textContentItem.prevTransform)}if(textState.font.vertical){const advanceY=(lastPosY-posY)/textContentItem.textAdvanceScale,advanceX=posX-lastPosX,textOrientation=Math.sign(textContentItem.height);advanceY<textOrientation*textContentItem.negativeSpaceMax?(Math.abs(advanceX)>.5*textContentItem.width?appendEOL:(resetLastChars(),flushTextContentItem))():Math.abs(advanceX)>textContentItem.width?appendEOL():(advanceY<=textOrientation*textContentItem.notASpace&&resetLastChars(),advanceY<=textOrientation*textContentItem.trackingSpaceMin?shouldAddWhitepsace()?(resetLastChars(),flushTextContentItem(),pushWhitespace({height:Math.abs(advanceY)})):textContentItem.height+=advanceY:addFakeSpaces(advanceY,textContentItem.prevTransform,textOrientation)||(0===textContentItem.str.length?(resetLastChars(),pushWhitespace({height:Math.abs(advanceY)})):textContentItem.height+=advanceY),Math.abs(advanceX)>textContentItem.width*VERTICAL_SHIFT_RATIO&&flushTextContentItem())}else{const advanceX=(posX-lastPosX)/textContentItem.textAdvanceScale,advanceY=posY-lastPosY,textOrientation=Math.sign(textContentItem.width);advanceX<textOrientation*textContentItem.negativeSpaceMax?(Math.abs(advanceY)>.5*textContentItem.height?appendEOL:(resetLastChars(),flushTextContentItem))():Math.abs(advanceY)>textContentItem.height?appendEOL():(advanceX<=textOrientation*textContentItem.notASpace&&resetLastChars(),advanceX<=textOrientation*textContentItem.trackingSpaceMin?shouldAddWhitepsace()?(resetLastChars(),flushTextContentItem(),pushWhitespace({width:Math.abs(advanceX)})):textContentItem.width+=advanceX:addFakeSpaces(advanceX,textContentItem.prevTransform,textOrientation)||(0===textContentItem.str.length?(resetLastChars(),pushWhitespace({width:Math.abs(advanceX)})):textContentItem.width+=advanceX),Math.abs(advanceY)>textContentItem.height*VERTICAL_SHIFT_RATIO&&flushTextContentItem())}}}return 1}function buildTextContentItem({chars,extraSpacing}){var font=textState.font;if(chars){var glyphs=font.charsToGlyphs(chars),scale=textState.fontMatrix[0]*textState.fontSize;for(let i=0,ii=glyphs.length;i<ii;i++){var textChunk,glyph=glyphs[i],category=glyph["category"];if(!category.isInvisibleFormatMark){let charSpacing=textState.charSpacing+(i+1===ii?extraSpacing:0),glyphWidth=glyph.width,scaledDim=(glyphWidth=font.vertical?glyph.vmetric?glyph.vmetric[0]:-glyphWidth:glyphWidth)*scale;!keepWhiteSpace&&category.isWhitespace?(font.vertical?(charSpacing+=-scaledDim+textState.wordSpacing,textState.translateTextMatrix(0,-charSpacing)):(charSpacing+=scaledDim+textState.wordSpacing,textState.translateTextMatrix(charSpacing*textState.textHScale,0)),saveLastChar(" ")):category.isZeroWidthDiacritic||compareWithLastPosition(scaledDim)?(textChunk=function(){var loadedName,font,style;return textContentItem.initialized||({font,loadedName}=textState,seenStyles.has(loadedName)||(seenStyles.add(loadedName),textContent.styles[loadedName]={fontFamily:font.fallbackName,ascent:font.ascent,descent:font.descent,vertical:font.vertical},self.options.fontExtraProperties&&font.systemFontInfo&&((style=textContent.styles[loadedName]).fontSubstitution=font.systemFontInfo.css,style.fontSubstitutionLoadedName=font.systemFontInfo.loadedName)),textContentItem.fontName=loadedName,style=textContentItem.transform=getCurrentTextTransform(),font.vertical?(textContentItem.width=textContentItem.totalWidth=Math.hypot(style[0],style[1]),textContentItem.height=textContentItem.totalHeight=0,textContentItem.vertical=!0):(textContentItem.width=textContentItem.totalWidth=0,textContentItem.height=textContentItem.totalHeight=Math.hypot(style[2],style[3]),textContentItem.vertical=!1),loadedName=Math.hypot(textState.textLineMatrix[0],textState.textLineMatrix[1]),font=Math.hypot(textState.ctm[0],textState.ctm[1]),style=(textContentItem.textAdvanceScale=font*loadedName,textState)["fontSize"],textContentItem.trackingSpaceMin=style*TRACKING_SPACE_FACTOR,textContentItem.notASpace=style*NOT_A_SPACE_FACTOR,textContentItem.negativeSpaceMax=style*NEGATIVE_SPACE_FACTOR,textContentItem.spaceInFlowMin=style*SPACE_IN_FLOW_MIN_FACTOR,textContentItem.spaceInFlowMax=style*SPACE_IN_FLOW_MAX_FACTOR,textContentItem.hasEOL=!1,textContentItem.initialized=!0),textContentItem}(),category.isZeroWidthDiacritic&&(scaledDim=0),font.vertical?(textState.translateTextMatrix(0,scaledDim),scaledDim=Math.abs(scaledDim),textChunk.height+=scaledDim):(scaledDim*=textState.textHScale,textState.translateTextMatrix(scaledDim,0),textChunk.width+=scaledDim),scaledDim&&(textChunk.prevTransform=getCurrentTextTransform()),saveLastChar(category=glyph.unicode)&&textChunk.str.push(" "),textChunk.str.push(category),charSpacing&&(font.vertical?textState.translateTextMatrix(0,-charSpacing):textState.translateTextMatrix(charSpacing*textState.textHScale,0))):font.vertical?textState.translateTextMatrix(0,scaledDim):textState.translateTextMatrix(scaledDim*textState.textHScale,0)}}}else(chars=textState.charSpacing+extraSpacing)&&(font.vertical?textState.translateTextMatrix(0,-chars):textState.translateTextMatrix(chars*textState.textHScale,0)),keepWhiteSpace&&compareWithLastPosition(0)}function appendEOL(){resetLastChars(),textContentItem.initialized?(textContentItem.hasEOL=!0,flushTextContentItem()):textContent.items.push({str:"",dir:"ltr",width:0,height:0,transform:getCurrentTextTransform(),fontName:textState.loadedName,hasEOL:!0})}function addFakeSpaces(width,transf,textOrientation){if(!(textOrientation*textContentItem.spaceInFlowMin<=width&&width<=textOrientation*textContentItem.spaceInFlowMax)){textOrientation=textContentItem.fontName;let height=0;return textContentItem.vertical&&(height=width,width=0),flushTextContentItem(),resetLastChars(),pushWhitespace({width:Math.abs(width),height:Math.abs(height),transform:transf||getCurrentTextTransform(),fontName:textOrientation}),1}textContentItem.initialized&&(resetLastChars(),textContentItem.str.push(" "))}function flushTextContentItem(){textContentItem.initialized&&textContentItem.str&&(textContentItem.vertical?textContentItem.totalHeight+=textContentItem.height*textContentItem.textAdvanceScale:textContentItem.totalWidth+=textContentItem.width*textContentItem.textAdvanceScale,textContent.items.push(function(textChunk){let text=textChunk.str.join("");var bidiResult=bidi(text=disableNormalization?text:normalizeUnicode(text),-1,textChunk.vertical);return{str:bidiResult.str,dir:bidiResult.dir,width:Math.abs(textChunk.totalWidth),height:Math.abs(textChunk.totalHeight),transform:textChunk.transform,fontName:textChunk.fontName,hasEOL:textChunk.hasEOL}}(textContentItem)),textContentItem.initialized=!1,textContentItem.str.length=0)}function enqueueChunk(batch=!1){var length=textContent.items.length;0===length||batch&&length<TEXT_CHUNK_BATCH_SIZE||(sink.enqueue(textContent,length),textContent.items=[],textContent.styles=Object.create(null))}const timeSlotManager=new TimeSlotManager;return new Promise(function promiseBody(resolve,reject){function next(promise){enqueueChunk(!0),Promise.all([promise,sink.ready]).then(function(){try{promiseBody(resolve,reject)}catch(ex){reject(ex)}},reject)}task.ensureNotTerminated(),timeSlotManager.reset();var operation={};let stop,args=[];for(;!(stop=timeSlotManager.check())&&(args.length=0,operation.args=args,preprocessor.read(operation));){var previousState=textState,fn=(textState=stateManager.state,operation.fn);switch(args=operation.args,0|fn){case OPS.setFont:var fontNameArg=args[0].name,fontSizeArg=args[1];if(textState.font&&fontNameArg===textState.fontName&&fontSizeArg===textState.fontSize)break;return flushTextContentItem(),textState.fontName=fontNameArg,textState.fontSize=fontSizeArg,void next(handleSetFont(fontNameArg,null));case OPS.setTextRise:textState.textRise=args[0];break;case OPS.setHScale:textState.textHScale=args[0]/100;break;case OPS.setLeading:textState.leading=args[0];break;case OPS.moveText:textState.translateTextLineMatrix(args[0],args[1]),textState.textMatrix=textState.textLineMatrix.slice();break;case OPS.setLeadingMoveText:textState.leading=-args[1],textState.translateTextLineMatrix(args[0],args[1]),textState.textMatrix=textState.textLineMatrix.slice();break;case OPS.nextLine:textState.carriageReturn();break;case OPS.setTextMatrix:textState.setTextMatrix(args[0],args[1],args[2],args[3],args[4],args[5]),textState.setTextLineMatrix(args[0],args[1],args[2],args[3],args[4],args[5]),fontSizeArg=void 0,textContentItem.initialized&&(fontSizeArg=Math.hypot(textState.textLineMatrix[0],textState.textLineMatrix[1]),(fontSizeArg=Math.hypot(textState.ctm[0],textState.ctm[1])*fontSizeArg)!==textContentItem.textAdvanceScale)&&(textContentItem.vertical?(textContentItem.totalHeight+=textContentItem.height*textContentItem.textAdvanceScale,textContentItem.height=0):(textContentItem.totalWidth+=textContentItem.width*textContentItem.textAdvanceScale,textContentItem.width=0),textContentItem.textAdvanceScale=fontSizeArg);break;case OPS.setCharSpacing:textState.charSpacing=args[0];break;case OPS.setWordSpacing:textState.wordSpacing=args[0];break;case OPS.beginText:textState.textMatrix=IDENTITY_MATRIX.slice(),textState.textLineMatrix=IDENTITY_MATRIX.slice();break;case OPS.showSpacedText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue}var spaceFactor=(textState.font.vertical?1:-1)*textState.fontSize/1e3,elements=args[0];for(let i=0,ii=elements.length;i<ii;i++){var str,item=elements[i];"string"==typeof item?showSpacedTextBuffer.push(item):"number"==typeof item&&0!==item&&(str=showSpacedTextBuffer.join(""),showSpacedTextBuffer.length=0,buildTextContentItem({chars:str,extraSpacing:item*spaceFactor}))}if(0<showSpacedTextBuffer.length){const str=showSpacedTextBuffer.join("");buildTextContentItem({chars:str,extraSpacing:showSpacedTextBuffer.length=0})}break;case OPS.showText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue}buildTextContentItem({chars:args[0],extraSpacing:0});break;case OPS.nextLineShowText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue}textState.carriageReturn(),buildTextContentItem({chars:args[0],extraSpacing:0});break;case OPS.nextLineSetSpacingShowText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue}textState.wordSpacing=args[0],textState.charSpacing=args[1],textState.carriageReturn(),buildTextContentItem({chars:args[2],extraSpacing:0});break;case OPS.paintXObject:flushTextContentItem(),xobjs=xobjs||resources.get("XObject")||Dict.empty;var isValidName=args[0]instanceof Name,name=args[0].name;if(isValidName&&emptyXObjectCache.getByName(name))break;return void next(new Promise(function(resolveXObject,rejectXObject){if(!isValidName)throw new FormatError("XObject must be referred to by name.");let xobj=xobjs.getRaw(name);if(xobj instanceof Ref){if(emptyXObjectCache.getByRef(xobj))return void resolveXObject();if(self.globalImageCache.getData(xobj,self.pageIndex))return void resolveXObject();xobj=xref.fetch(xobj)}if(!(xobj instanceof BaseStream))throw new FormatError("XObject should be a stream");var type=xobj.dict.get("Subtype");if(!(type instanceof Name))throw new FormatError("XObject should have a Name subtype");if("Form"!==type.name)emptyXObjectCache.set(name,xobj.dict.objId,!0),resolveXObject();else{var type=stateManager.state.clone(),type=new StateManager(type),matrix=xobj.dict.getArray("Matrix");Array.isArray(matrix)&&6===matrix.length&&type.transform(matrix),enqueueChunk();const sinkWrapper={enqueueInvoked:!1,enqueue(chunk,size){this.enqueueInvoked=!0,sink.enqueue(chunk,size)},get desiredSize(){return sink.desiredSize},get ready(){return sink.ready}};self.getTextContent({stream:xobj,task:task,resources:xobj.dict.get("Resources")||resources,stateManager:type,includeMarkedContent:includeMarkedContent,sink:sinkWrapper,seenStyles:seenStyles,viewBox:viewBox,markedContentData:markedContentData,disableNormalization:disableNormalization,keepWhiteSpace:keepWhiteSpace}).then(function(){sinkWrapper.enqueueInvoked||emptyXObjectCache.set(name,xobj.dict.objId,!0),resolveXObject()},rejectXObject)}}).catch(function(reason){if(!(reason instanceof AbortException)){if(!self.options.ignoreErrors)throw reason;warn(`getTextContent - ignoring XObject: "${reason}".`)}}));case OPS.setGState:if(isValidName=args[0]instanceof Name,name=args[0].name,isValidName&&emptyGStateCache.getByName(name))break;return void next(new Promise(function(resolveGState,rejectGState){if(!isValidName)throw new FormatError("GState must be referred to by name.");var extGState=resources.get("ExtGState");if(!(extGState instanceof Dict))throw new FormatError("ExtGState should be a dictionary.");extGState=extGState.get(name);if(!(extGState instanceof Dict))throw new FormatError("GState should be a dictionary.");var gStateFont=extGState.get("Font");gStateFont?(flushTextContentItem(),textState.fontName=null,textState.fontSize=gStateFont[1],handleSetFont(null,gStateFont[0]).then(resolveGState,rejectGState)):(emptyGStateCache.set(name,extGState.objId,!0),resolveGState())}).catch(function(reason){if(!(reason instanceof AbortException)){if(!self.options.ignoreErrors)throw reason;warn(`getTextContent - ignoring ExtGState: "${reason}".`)}}));case OPS.beginMarkedContent:flushTextContentItem(),includeMarkedContent&&(markedContentData.level++,textContent.items.push({type:"beginMarkedContent",tag:args[0]instanceof Name?args[0].name:null}));break;case OPS.beginMarkedContentProps:if(flushTextContentItem(),includeMarkedContent){markedContentData.level++;let mcid=null;args[1]instanceof Dict&&(mcid=args[1].get("MCID")),textContent.items.push({type:"beginMarkedContentProps",id:Number.isInteger(mcid)?self.idFactory.getPageObjId()+"_mc"+mcid:null,tag:args[0]instanceof Name?args[0].name:null})}break;case OPS.endMarkedContent:if(flushTextContentItem(),includeMarkedContent){if(0===markedContentData.level)break;markedContentData.level--,textContent.items.push({type:"endMarkedContent"})}break;case OPS.restore:!previousState||previousState.font===textState.font&&previousState.fontSize===textState.fontSize&&previousState.fontName===textState.fontName||flushTextContentItem()}if(textContent.items.length>=sink.desiredSize){stop=!0;break}}stop?next(deferred):(flushTextContentItem(),enqueueChunk(),resolve())}).catch(reason=>{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn(`getTextContent - ignoring errors during "${task.name}" `+`task: "${reason}".`),flushTextContentItem(),enqueueChunk()}})}async extractDataStructures(dict,properties){var xref=this.xref;let cidToGidBytes;var toUnicodePromise=this.readToUnicode(properties.toUnicode);if(properties.composite){var cidSystemInfo=dict.get("CIDSystemInfo");cidSystemInfo instanceof Dict&&(properties.cidSystemInfo={registry:stringToPDFString(cidSystemInfo.get("Registry")),ordering:stringToPDFString(cidSystemInfo.get("Ordering")),supplement:cidSystemInfo.get("Supplement")});try{var cidToGidMap=dict.get("CIDToGIDMap");cidToGidMap instanceof BaseStream&&(cidToGidBytes=cidToGidMap.getBytes())}catch(ex){if(!this.options.ignoreErrors)throw ex;warn(`extractDataStructures - ignoring CIDToGIDMap data: "${ex}".`)}}var differences=[];let baseEncodingName=null,encoding;if(dict.has("Encoding")){if((encoding=dict.get("Encoding"))instanceof Dict){if(baseEncodingName=(baseEncodingName=encoding.get("BaseEncoding"))instanceof Name?baseEncodingName.name:null,encoding.has("Differences")){let index=0;for(const entry of encoding.get("Differences")){var data=xref.fetchIfRef(entry);if("number"==typeof data)index=data;else{if(!(data instanceof Name))throw new FormatError("Invalid entry in 'Differences' array: "+data);differences[index++]=data.name}}}}else if(encoding instanceof Name)baseEncodingName=encoding.name;else{cidSystemInfo="Encoding is not a Name nor a Dict";if(!this.options.ignoreErrors)throw new FormatError(cidSystemInfo);warn(cidSystemInfo)}"MacRomanEncoding"!==baseEncodingName&&"MacExpertEncoding"!==baseEncodingName&&"WinAnsiEncoding"!==baseEncodingName&&(baseEncodingName=null)}var isSymbolicFont,cidToGidMap=!properties.file||properties.isInternalFont,cidSystemInfo=getSymbolsFonts()[properties.name],isNonsymbolicFont=((baseEncodingName=baseEncodingName&&cidToGidMap&&cidSystemInfo?null:baseEncodingName)?properties.defaultEncoding=getEncoding(baseEncodingName):(isSymbolicFont=!!(properties.flags&FontFlags.Symbolic),isNonsymbolicFont=!!(properties.flags&FontFlags.Nonsymbolic),encoding=StandardEncoding,"TrueType"!==properties.type||isNonsymbolicFont||(encoding=WinAnsiEncoding),(isSymbolicFont||cidSystemInfo)&&(encoding=MacRomanEncoding,cidToGidMap)&&(/Symbol/i.test(properties.name)?encoding=SymbolSetEncoding:/Dingbats/i.test(properties.name)?encoding=ZapfDingbatsEncoding:/Wingdings/i.test(properties.name)&&(encoding=WinAnsiEncoding)),properties.defaultEncoding=encoding),properties.differences=differences,properties.baseEncodingName=baseEncodingName,properties.hasEncoding=!!baseEncodingName||0<differences.length,properties.dict=dict,properties.toUnicode=await toUnicodePromise,await this.buildToUnicode(properties));return properties.toUnicode=isNonsymbolicFont,cidToGidBytes&&(properties.cidToGidMap=this.readCidToGidMap(cidToGidBytes,isNonsymbolicFont)),properties}_simpleFontToUnicode(properties,forceGlyphs=!1){assert(!properties.composite,"Must be a simple font.");var toUnicode=[],encoding=properties.defaultEncoding.slice(),baseEncodingName=properties.baseEncodingName,differences=properties.differences;for(const charcode in differences){var glyphName=differences[charcode];".notdef"!==glyphName&&(encoding[charcode]=glyphName)}var glyphsUnicodeMap=getGlyphsUnicode();for(const charcode in encoding){let glyphName=encoding[charcode];if(""!==glyphName){var unicode=glyphsUnicodeMap[glyphName];if(void 0!==unicode)toUnicode[charcode]=String.fromCharCode(unicode);else{let code=0;switch(glyphName[0]){case"G":3===glyphName.length&&(code=parseInt(glyphName.substring(1),16));break;case"g":5===glyphName.length&&(code=parseInt(glyphName.substring(1),16));break;case"C":case"c":if(3<=glyphName.length&&glyphName.length<=4){var codeStr=glyphName.substring(1);if(forceGlyphs){code=parseInt(codeStr,16);break}if(code=+codeStr,Number.isNaN(code)&&Number.isInteger(parseInt(codeStr,16)))return this._simpleFontToUnicode(properties,!0)}break;case"u":-1!==(unicode=getUnicodeForGlyph(glyphName,glyphsUnicodeMap))&&(code=unicode);break;default:switch(glyphName){case"f_h":case"f_t":case"T_h":toUnicode[charcode]=glyphName.replaceAll("_","");continue}}if(0<code&&code<=1114111&&Number.isInteger(code)){if(baseEncodingName&&code===+charcode){var baseEncoding=getEncoding(baseEncodingName);if(baseEncoding&&(glyphName=baseEncoding[charcode])){toUnicode[charcode]=String.fromCharCode(glyphsUnicodeMap[glyphName]);continue}}toUnicode[charcode]=String.fromCodePoint(code)}}}}return toUnicode}async buildToUnicode(properties){if(properties.hasIncludedToUnicodeMap=0<properties.toUnicode?.length,properties.hasIncludedToUnicodeMap)return!properties.composite&&properties.hasEncoding&&(properties.fallbackToUnicode=this._simpleFontToUnicode(properties)),properties.toUnicode;if(!properties.composite)return new ToUnicodeMap(this._simpleFontToUnicode(properties));if(!properties.composite||(!properties.cMap.builtInCMap||properties.cMap instanceof IdentityCMap)&&("Adobe"!==properties.cidSystemInfo?.registry||"GB1"!==properties.cidSystemInfo.ordering&&"CNS1"!==properties.cidSystemInfo.ordering&&"Japan1"!==properties.cidSystemInfo.ordering&&"Korea1"!==properties.cidSystemInfo.ordering))return new IdentityToUnicodeMap(properties.firstChar,properties.lastChar);{var{registry,ordering}=properties.cidSystemInfo,registry=Name.get(registry+`-${ordering}-UCS2`);const ucs2CMap=await CMapFactory.create({encoding:registry,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}),toUnicode=[],buf=[];return properties.cMap.forEach(function(charcode,cid){if(65535<cid)throw new FormatError("Max size of CID is 65,535");var ucs2=ucs2CMap.lookup(cid);if(ucs2){for(let i=buf.length=0,ii=ucs2.length;i<ii;i+=2)buf.push((ucs2.charCodeAt(i)<<8)+ucs2.charCodeAt(i+1));toUnicode[charcode]=String.fromCharCode(...buf)}}),new ToUnicodeMap(toUnicode)}}async readToUnicode(cmapObj){if(cmapObj){var cmap;if(cmapObj instanceof Name)return(cmap=await CMapFactory.create({encoding:cmapObj,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}))instanceof IdentityCMap?new IdentityToUnicodeMap(0,65535):new ToUnicodeMap(cmap.getMap());if(cmapObj instanceof BaseStream)try{const cmap=await CMapFactory.create({encoding:cmapObj,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});if(cmap instanceof IdentityCMap)return new IdentityToUnicodeMap(0,65535);const map=new Array(cmap.length);return cmap.forEach(function(charCode,token){if("number"==typeof token)map[charCode]=String.fromCodePoint(token);else{var str=[];for(let k=0;k<token.length;k+=2){var w2,w1=token.charCodeAt(k)<<8|token.charCodeAt(k+1);55296!=(63488&w1)?str.push(w1):(k+=2,w2=token.charCodeAt(k)<<8|token.charCodeAt(k+1),str.push(((1023&w1)<<10)+(1023&w2)+65536))}map[charCode]=String.fromCodePoint(...str)}}),new ToUnicodeMap(map)}catch(reason){if(reason instanceof AbortException)return null;if(this.options.ignoreErrors)return warn(`readToUnicode - ignoring ToUnicode data: "${reason}".`),null;throw reason}}return null}readCidToGidMap(glyphsData,toUnicode){var result=[];for(let j=0,jj=glyphsData.length;j<jj;j++){var glyphID=glyphsData[j++]<<8|glyphsData[j],code=j>>1;0==glyphID&&!toUnicode.has(code)||(result[code]=glyphID)}return result}extractWidths(dict,descriptor,properties){var xref=this.xref;let glyphsWidths=[],defaultWidth=0;var glyphsVMetrics=[];let defaultVMetrics;if(properties.composite){var dw=dict.get("DW"),widths=(defaultWidth=Number.isInteger(dw)?dw:1e3,dict.get("W"));if(Array.isArray(widths))for(let i=0,ii=widths.length;i<ii;i++){let start=xref.fetchIfRef(widths[i++]);if(!Number.isInteger(start))break;var code=xref.fetchIfRef(widths[i]);if(Array.isArray(code))for(const c of code){var width=xref.fetchIfRef(c);"number"==typeof width&&(glyphsWidths[start]=width),start++}else{if(!Number.isInteger(code))break;{const width=xref.fetchIfRef(widths[++i]);if("number"==typeof width)for(let j=start;j<=code;j++)glyphsWidths[j]=width}}}if(properties.vertical){var dw=dict.getArray("DW2"),vmetrics=isNumberArray(dw,2)?dw:[880,-1e3];if(defaultVMetrics=[vmetrics[1],.5*defaultWidth,vmetrics[0]],vmetrics=dict.get("W2"),Array.isArray(vmetrics))for(let i=0,ii=vmetrics.length;i<ii;i++){let start=xref.fetchIfRef(vmetrics[i++]);if(!Number.isInteger(start))break;const code=xref.fetchIfRef(vmetrics[i]);if(Array.isArray(code))for(let j=0,jj=code.length;j<jj;j++){var vmetric=[xref.fetchIfRef(code[j++]),xref.fetchIfRef(code[j++]),xref.fetchIfRef(code[j])];isNumberArray(vmetric,null)&&(glyphsVMetrics[start]=vmetric),start++}else{if(!Number.isInteger(code))break;{const vmetric=[xref.fetchIfRef(vmetrics[++i]),xref.fetchIfRef(vmetrics[++i]),xref.fetchIfRef(vmetrics[++i])];if(isNumberArray(vmetric,null))for(let j=start;j<=code;j++)glyphsVMetrics[j]=vmetric}}}}}else{const widths=dict.get("Widths");if(Array.isArray(widths)){let j=properties.firstChar;for(const w of widths){const width=xref.fetchIfRef(w);"number"==typeof width&&(glyphsWidths[j]=width),j++}dw=descriptor.get("MissingWidth");defaultWidth="number"==typeof dw?dw:0}else{descriptor=dict.get("BaseFont");descriptor instanceof Name&&(dw=this.getBaseFontMetrics(descriptor.name),glyphsWidths=this.buildCharCodeToWidth(dw.widths,properties),defaultWidth=dw.defaultWidth)}}let isMonospace=!0,firstWidth=defaultWidth;for(const glyph in glyphsWidths){var glyphWidth=glyphsWidths[glyph];if(glyphWidth)if(firstWidth){if(firstWidth!==glyphWidth){isMonospace=!1;break}}else firstWidth=glyphWidth}isMonospace?properties.flags|=FontFlags.FixedPitch:properties.flags&=~FontFlags.FixedPitch,properties.defaultWidth=defaultWidth,properties.widths=glyphsWidths,properties.defaultVMetrics=defaultVMetrics,properties.vmetrics=glyphsVMetrics}isSerifFont(baseFontName){baseFontName=baseFontName.split("-",1)[0];return baseFontName in getSerifFonts()||/serif/gi.test(baseFontName)}getBaseFontMetrics(name){let defaultWidth=0,widths=Object.create(null),monospace=!1;let lookupName=getStdFontMap()[name]||name;var Metrics=getMetrics(),Metrics=Metrics[lookupName=lookupName in Metrics?lookupName:this.isSerifFont(name)?"Times-Roman":"Helvetica"];return"number"==typeof Metrics?(defaultWidth=Metrics,monospace=!0):widths=Metrics(),{defaultWidth:defaultWidth,monospace:monospace,widths:widths}}buildCharCodeToWidth(widthsByGlyphName,properties){var widths=Object.create(null),differences=properties.differences,encoding=properties.defaultEncoding;for(let charCode=0;charCode<256;charCode++)charCode in differences&&widthsByGlyphName[differences[charCode]]?widths[charCode]=widthsByGlyphName[differences[charCode]]:charCode in encoding&&widthsByGlyphName[encoding[charCode]]&&(widths[charCode]=widthsByGlyphName[encoding[charCode]]);return widths}preEvaluateFont(dict){var baseDict=dict;let type=dict.get("Subtype");if(!(type instanceof Name))throw new FormatError("invalid font Subtype");let composite=!1,hash;if("Type0"===type.name){var df=dict.get("DescendantFonts");if(!df)throw new FormatError("Descendant fonts are not specified");if(!((dict=Array.isArray(df)?this.xref.fetchIfRef(df[0]):df)instanceof Dict))throw new FormatError("Descendant font is not a dictionary.");if(!((type=dict.get("Subtype"))instanceof Name))throw new FormatError("invalid font Subtype");composite=!0}let firstChar=dict.get("FirstChar"),lastChar=(Number.isInteger(firstChar)||(firstChar=0),dict.get("LastChar"));Number.isInteger(lastChar)||(lastChar=composite?65535:255);var df=dict.get("FontDescriptor"),toUnicode=dict.get("ToUnicode")||baseDict.get("ToUnicode");if(df){hash=new MurmurHash3_64;var encoding=baseDict.getRaw("Encoding");if(encoding instanceof Name)hash.update(encoding.name);else if(encoding instanceof Ref)hash.update(encoding.toString());else if(encoding instanceof Dict)for(const entry of encoding.getRawValues())if(entry instanceof Name)hash.update(entry.name);else if(entry instanceof Ref)hash.update(entry.toString());else if(Array.isArray(entry)){var diffLength=entry.length,diffBuf=new Array(diffLength);for(let j=0;j<diffLength;j++){var diffEntry=entry[j];diffEntry instanceof Name?diffBuf[j]=diffEntry.name:("number"==typeof diffEntry||diffEntry instanceof Ref)&&(diffBuf[j]=diffEntry.toString())}hash.update(diffBuf.join())}hash.update(firstChar+"-"+lastChar),toUnicode instanceof BaseStream?(encoding=(encoding=toUnicode.str||toUnicode).buffer?new Uint8Array(encoding.buffer.buffer,0,encoding.bufferLength):new Uint8Array(encoding.bytes.buffer,encoding.start,encoding.end-encoding.start),hash.update(encoding)):toUnicode instanceof Name&&hash.update(toUnicode.name);encoding=dict.get("Widths")||baseDict.get("Widths");if(Array.isArray(encoding)){var widthsBuf=[];for(const entry of encoding)("number"==typeof entry||entry instanceof Ref)&&widthsBuf.push(entry.toString());hash.update(widthsBuf.join())}if(composite){hash.update("compositeFont");encoding=dict.get("W")||baseDict.get("W");if(Array.isArray(encoding)){const widthsBuf=[];for(const entry of encoding)if("number"==typeof entry||entry instanceof Ref)widthsBuf.push(entry.toString());else if(Array.isArray(entry)){var subWidthsBuf=[];for(const element of entry)("number"==typeof element||element instanceof Ref)&&subWidthsBuf.push(element.toString());widthsBuf.push(`[${subWidthsBuf.join()}]`)}hash.update(widthsBuf.join())}encoding=dict.getRaw("CIDToGIDMap")||baseDict.getRaw("CIDToGIDMap");encoding instanceof Name?hash.update(encoding.name):encoding instanceof Ref?hash.update(encoding.toString()):encoding instanceof BaseStream&&hash.update(encoding.peekBytes())}}return{descriptor:df,dict:dict,baseDict:baseDict,composite:composite,type:type.name,firstChar:firstChar,lastChar:lastChar,toUnicode:toUnicode,hash:hash?hash.hexdigest():""}}async translateFont({descriptor,dict,baseDict,composite,type,firstChar,lastChar,toUnicode,cssFontInfo}){var isType3Font="Type3"===type;if(!descriptor){if(!isType3Font){let baseFontName=dict.get("BaseFont");if(!(baseFontName instanceof Name))throw new FormatError("Base font is not specified");baseFontName=baseFontName.name.replaceAll(/[,_]/g,"-");var metrics=this.getBaseFontMetrics(baseFontName),fontNameWoStyle=baseFontName.split("-",1)[0];const flags=(this.isSerifFont(fontNameWoStyle)?FontFlags.Serif:0)|(metrics.monospace?FontFlags.FixedPitch:0)|(getSymbolsFonts()[fontNameWoStyle]?FontFlags.Symbolic:FontFlags.Nonsymbolic),properties={type:type,name:baseFontName,loadedName:baseDict.loadedName,systemFontInfo:null,widths:metrics.widths,defaultWidth:metrics.defaultWidth,isSimulatedFlags:!0,flags:flags,firstChar:firstChar,lastChar:lastChar,toUnicode:toUnicode,xHeight:0,capHeight:0,italicAngle:0,isType3Font:isType3Font};var fontNameWoStyle=dict.get("Widths"),standardFontName=getStandardFontName(baseFontName);let file=null;standardFontName&&(file=await this.fetchStandardFontData(standardFontName),properties.isInternalFont=!!file),!properties.isInternalFont&&this.options.useSystemFonts&&(properties.systemFontInfo=getFontSubstitution(this.systemFontCache,this.idFactory,this.options.standardFontDataUrl,baseFontName,standardFontName,type));const newProperties=await this.extractDataStructures(dict,properties);if(fontNameWoStyle){var glyphWidths=[];let j=firstChar;for(const width of fontNameWoStyle)glyphWidths[j++]=this.xref.fetchIfRef(width);newProperties.widths=glyphWidths}else newProperties.widths=this.buildCharCodeToWidth(metrics.widths,newProperties);return new Font(baseFontName,file,newProperties)}{let bbox=dict.getArray("FontBBox");isNumberArray(bbox,4)||(bbox=[0,0,0,0]),(descriptor=new Dict(null)).set("FontName",Name.get(type)),descriptor.set("FontBBox",bbox)}}let fontName=descriptor.get("FontName"),baseFont=dict.get("BaseFont");"string"==typeof fontName&&(fontName=Name.get(fontName)),"string"==typeof baseFont&&(baseFont=Name.get(baseFont));var standardFontName=fontName?.name,fontNameWoStyle=baseFont?.name;if(isType3Font||standardFontName===fontNameWoStyle||(info(`The FontDescriptor's FontName is "${standardFontName}" but `+`should be the same as the Font's BaseFont "${fontNameWoStyle}".`),standardFontName&&fontNameWoStyle&&(fontNameWoStyle.startsWith(standardFontName)||!isKnownFontName(standardFontName)&&isKnownFontName(fontNameWoStyle))&&(fontName=null)),!((fontName||=baseFont)instanceof Name))throw new FormatError("invalid font name");let fontFile,subtype,length1,length2,length3;try{fontFile=descriptor.get("FontFile","FontFile2","FontFile3")}catch(ex){if(!this.options.ignoreErrors)throw ex;warn(`translateFont - fetching "${fontName.name}" font file: "${ex}".`),fontFile=new NullStream}let isInternalFont=!1,glyphScaleFactors=null,systemFontInfo=null;if(fontFile)fontFile.dict&&((metrics=fontFile.dict.get("Subtype"))instanceof Name&&(subtype=metrics.name),length1=fontFile.dict.get("Length1"),length2=fontFile.dict.get("Length2"),length3=fontFile.dict.get("Length3"));else if(cssFontInfo){const standardFontName=getXfaFontName(fontName.name);standardFontName&&(cssFontInfo.fontFamily=cssFontInfo.fontFamily+"-PdfJS-XFA",cssFontInfo.metrics=standardFontName.metrics||null,glyphScaleFactors=standardFontName.factors||null,fontFile=await this.fetchStandardFontData(standardFontName.name),isInternalFont=!!fontFile,baseDict=dict=getXfaFontDict(fontName.name),composite=!0)}else if(!isType3Font){const standardFontName=getStandardFontName(fontName.name);standardFontName&&(fontFile=await this.fetchStandardFontData(standardFontName),isInternalFont=!!fontFile),!isInternalFont&&this.options.useSystemFonts&&(systemFontInfo=getFontSubstitution(this.systemFontCache,this.idFactory,this.options.standardFontDataUrl,fontName.name,standardFontName,type))}let fontMatrix=dict.getArray("FontMatrix"),bbox=(isNumberArray(fontMatrix,6)||(fontMatrix=FONT_IDENTITY_MATRIX),descriptor.getArray("FontBBox")||dict.getArray("FontBBox")),ascent=(isNumberArray(bbox,4)||(bbox=void 0),descriptor.get("Ascent")),descent=("number"!=typeof ascent&&(ascent=void 0),descriptor.get("Descent")),xHeight=("number"!=typeof descent&&(descent=void 0),descriptor.get("XHeight")),capHeight=("number"!=typeof xHeight&&(xHeight=0),descriptor.get("CapHeight")),flags=("number"!=typeof capHeight&&(capHeight=0),descriptor.get("Flags")),italicAngle=(Number.isInteger(flags)||(flags=0),descriptor.get("ItalicAngle"));"number"!=typeof italicAngle&&(italicAngle=0);const properties={type:type,name:fontName.name,subtype:subtype,file:fontFile,length1:length1,length2:length2,length3:length3,isInternalFont:isInternalFont,loadedName:baseDict.loadedName,composite:composite,fixedPitch:!1,fontMatrix:fontMatrix,firstChar:firstChar,lastChar:lastChar,toUnicode:toUnicode,bbox:bbox,ascent:ascent,descent:descent,xHeight:xHeight,capHeight:capHeight,flags:flags,italicAngle:italicAngle,isType3Font:isType3Font,cssFontInfo:cssFontInfo,scaleFactors:glyphScaleFactors,systemFontInfo:systemFontInfo},newProperties=(composite&&((standardFontName=baseDict.get("Encoding"))instanceof Name&&(properties.cidEncoding=standardFontName.name),fontNameWoStyle=await CMapFactory.create({encoding:standardFontName,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}),properties.cMap=fontNameWoStyle,properties.vertical=properties.cMap.vertical),await this.extractDataStructures(dict,properties));return this.extractWidths(dict,descriptor,newProperties),new Font(fontName.name,fontFile,newProperties)}static buildFontPaths(font,glyphs,handler,evaluatorOptions){function buildPath(fontChar){var glyphName=font.loadedName+"_path_"+fontChar;try{font.renderer.hasBuiltPath(fontChar)||handler.send("commonobj",[glyphName,"FontPath",font.renderer.getPathJs(fontChar)])}catch(reason){if(!evaluatorOptions.ignoreErrors)throw reason;warn(`buildFontPaths - ignoring ${glyphName} glyph: "${reason}".`)}}for(const glyph of glyphs){buildPath(glyph.fontChar);var accent=glyph.accent;accent?.fontChar&&buildPath(accent.fontChar)}}static get fallbackFontDict(){var dict=new Dict;return dict.set("BaseFont",Name.get("Helvetica")),dict.set("Type",Name.get("FallbackType")),dict.set("Subtype",Name.get("FallbackType")),dict.set("Encoding",Name.get("WinAnsiEncoding")),shadow(this,"fallbackFontDict",dict)}}class TranslatedFont{constructor({loadedName,font,dict,evaluatorOptions}){this.loadedName=loadedName,this.font=font,this.dict=dict,this._evaluatorOptions=evaluatorOptions||DefaultPartialEvaluatorOptions,this.type3Loaded=null,this.type3Dependencies=font.isType3Font?new Set:null,this.sent=!1}send(handler){this.sent||(this.sent=!0,handler.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._evaluatorOptions.fontExtraProperties)]))}fallback(handler){this.font.data&&(this.font.disableFontFace=!0,PartialEvaluator.buildFontPaths(this.font,this.font.glyphCacheValues,handler,this._evaluatorOptions))}loadType3Data(evaluator,resources,task){if(!this.type3Loaded){if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");const type3Evaluator=evaluator.clone({ignoreErrors:!1});type3Evaluator.parsingType3Font=!0;evaluator=new RefSet(evaluator.type3FontRefs);this.dict.objId&&!evaluator.has(this.dict.objId)&&evaluator.put(this.dict.objId),type3Evaluator.type3FontRefs=evaluator;const translatedFont=this.font,type3Dependencies=this.type3Dependencies;let loadCharProcsPromise=Promise.resolve();const charProcs=this.dict.get("CharProcs"),fontResources=this.dict.get("Resources")||resources,charProcOperatorList=Object.create(null);evaluator=Util.normalizeRect(translatedFont.bbox||[0,0,0,0]),resources=evaluator[2]-evaluator[0],evaluator=evaluator[3]-evaluator[1];const fontBBoxSize=Math.hypot(resources,evaluator);for(const key of charProcs.getKeys())loadCharProcsPromise=loadCharProcsPromise.then(()=>{var glyphStream=charProcs.get(key);const operatorList=new OperatorList;return type3Evaluator.getOperatorList({stream:glyphStream,task:task,resources:fontResources,operatorList:operatorList}).then(()=>{operatorList.fnArray[0]===OPS.setCharWidthAndBounds&&this._removeType3ColorOperators(operatorList,fontBBoxSize),charProcOperatorList[key]=operatorList.getIR();for(const dependency of operatorList.dependencies)type3Dependencies.add(dependency)}).catch(function(reason){warn(`Type3 font resource "${key}" is not available.`);var dummyOperatorList=new OperatorList;charProcOperatorList[key]=dummyOperatorList.getIR()})});this.type3Loaded=loadCharProcsPromise.then(()=>{translatedFont.charProcOperatorList=charProcOperatorList,this._bbox&&(translatedFont.isCharBBox=!0,translatedFont.bbox=this._bbox)})}return this.type3Loaded}_removeType3ColorOperators(operatorList,fontBBoxSize=NaN){var charBBox=Util.normalizeRect(operatorList.argsArray[0].slice(2)),width=charBBox[2]-charBBox[0],height=charBBox[3]-charBBox[1],charBBoxSize=Math.hypot(width,height);0==width||0==height?(operatorList.fnArray.splice(0,1),operatorList.argsArray.splice(0,1)):(0===fontBBoxSize||10<=Math.round(charBBoxSize/fontBBoxSize))&&(this._bbox||(this._bbox=[1/0,1/0,-1/0,-1/0]),this._bbox[0]=Math.min(this._bbox[0],charBBox[0]),this._bbox[1]=Math.min(this._bbox[1],charBBox[1]),this._bbox[2]=Math.max(this._bbox[2],charBBox[2]),this._bbox[3]=Math.max(this._bbox[3],charBBox[3]));let i=0,ii=operatorList.length;for(;i<ii;){switch(operatorList.fnArray[i]){case OPS.setCharWidthAndBounds:break;case OPS.setStrokeColorSpace:case OPS.setFillColorSpace:case OPS.setStrokeColor:case OPS.setStrokeColorN:case OPS.setFillColor:case OPS.setFillColorN:case OPS.setStrokeGray:case OPS.setFillGray:case OPS.setStrokeRGBColor:case OPS.setFillRGBColor:case OPS.setStrokeCMYKColor:case OPS.setFillCMYKColor:case OPS.shadingFill:case OPS.setRenderingIntent:operatorList.fnArray.splice(i,1),operatorList.argsArray.splice(i,1),ii--;continue;case OPS.setGState:var[gStateObj]=operatorList.argsArray[i];let j=0,jj=gStateObj.length;for(;j<jj;){var[gStateKey]=gStateObj[j];switch(gStateKey){case"TR":case"TR2":case"HT":case"BG":case"BG2":case"UCR":case"UCR2":gStateObj.splice(j,1),jj--;continue}j++}}i++}}}class StateManager{constructor(initialState=new EvalState){this.state=initialState,this.stateStack=[]}save(){var old=this.state;this.stateStack.push(this.state),this.state=old.clone()}restore(){var prev=this.stateStack.pop();prev&&(this.state=prev)}transform(args){this.state.ctm=Util.transform(this.state.ctm,args)}}class TextState{constructor(){this.ctm=new Float32Array(IDENTITY_MATRIX),this.fontName=null,this.fontSize=0,this.loadedName=null,this.font=null,this.fontMatrix=FONT_IDENTITY_MATRIX,this.textMatrix=IDENTITY_MATRIX.slice(),this.textLineMatrix=IDENTITY_MATRIX.slice(),this.charSpacing=0,this.wordSpacing=0,this.leading=0,this.textHScale=1,this.textRise=0}setTextMatrix(a,b,c,d,e,f){var m=this.textMatrix;m[0]=a,m[1]=b,m[2]=c,m[3]=d,m[4]=e,m[5]=f}setTextLineMatrix(a,b,c,d,e,f){var m=this.textLineMatrix;m[0]=a,m[1]=b,m[2]=c,m[3]=d,m[4]=e,m[5]=f}translateTextMatrix(x,y){var m=this.textMatrix;m[4]=m[0]*x+m[2]*y+m[4],m[5]=m[1]*x+m[3]*y+m[5]}translateTextLineMatrix(x,y){var m=this.textLineMatrix;m[4]=m[0]*x+m[2]*y+m[4],m[5]=m[1]*x+m[3]*y+m[5]}carriageReturn(){this.translateTextLineMatrix(0,-this.leading),this.textMatrix=this.textLineMatrix.slice()}clone(){var clone=Object.create(this);return clone.textMatrix=this.textMatrix.slice(),clone.textLineMatrix=this.textLineMatrix.slice(),clone.fontMatrix=this.fontMatrix.slice(),clone}}class EvalState{constructor(){this.ctm=new Float32Array(IDENTITY_MATRIX),this.font=null,this.textRenderingMode=TextRenderingMode.FILL,this.fillColorSpace=ColorSpace.singletons.gray,this.strokeColorSpace=ColorSpace.singletons.gray}clone(){return Object.create(this)}}class EvaluatorPreprocessor{static get opMap(){return shadow(this,"opMap",Object.assign(Object.create(null),{w:{id:OPS.setLineWidth,numArgs:1,variableArgs:!1},J:{id:OPS.setLineCap,numArgs:1,variableArgs:!1},j:{id:OPS.setLineJoin,numArgs:1,variableArgs:!1},M:{id:OPS.setMiterLimit,numArgs:1,variableArgs:!1},d:{id:OPS.setDash,numArgs:2,variableArgs:!1},ri:{id:OPS.setRenderingIntent,numArgs:1,variableArgs:!1},i:{id:OPS.setFlatness,numArgs:1,variableArgs:!1},gs:{id:OPS.setGState,numArgs:1,variableArgs:!1},q:{id:OPS.save,numArgs:0,variableArgs:!1},Q:{id:OPS.restore,numArgs:0,variableArgs:!1},cm:{id:OPS.transform,numArgs:6,variableArgs:!1},m:{id:OPS.moveTo,numArgs:2,variableArgs:!1},l:{id:OPS.lineTo,numArgs:2,variableArgs:!1},c:{id:OPS.curveTo,numArgs:6,variableArgs:!1},v:{id:OPS.curveTo2,numArgs:4,variableArgs:!1},y:{id:OPS.curveTo3,numArgs:4,variableArgs:!1},h:{id:OPS.closePath,numArgs:0,variableArgs:!1},re:{id:OPS.rectangle,numArgs:4,variableArgs:!1},S:{id:OPS.stroke,numArgs:0,variableArgs:!1},s:{id:OPS.closeStroke,numArgs:0,variableArgs:!1},f:{id:OPS.fill,numArgs:0,variableArgs:!1},F:{id:OPS.fill,numArgs:0,variableArgs:!1},"f*":{id:OPS.eoFill,numArgs:0,variableArgs:!1},B:{id:OPS.fillStroke,numArgs:0,variableArgs:!1},"B*":{id:OPS.eoFillStroke,numArgs:0,variableArgs:!1},b:{id:OPS.closeFillStroke,numArgs:0,variableArgs:!1},"b*":{id:OPS.closeEOFillStroke,numArgs:0,variableArgs:!1},n:{id:OPS.endPath,numArgs:0,variableArgs:!1},W:{id:OPS.clip,numArgs:0,variableArgs:!1},"W*":{id:OPS.eoClip,numArgs:0,variableArgs:!1},BT:{id:OPS.beginText,numArgs:0,variableArgs:!1},ET:{id:OPS.endText,numArgs:0,variableArgs:!1},Tc:{id:OPS.setCharSpacing,numArgs:1,variableArgs:!1},Tw:{id:OPS.setWordSpacing,numArgs:1,variableArgs:!1},Tz:{id:OPS.setHScale,numArgs:1,variableArgs:!1},TL:{id:OPS.setLeading,numArgs:1,variableArgs:!1},Tf:{id:OPS.setFont,numArgs:2,variableArgs:!1},Tr:{id:OPS.setTextRenderingMode,numArgs:1,variableArgs:!1},Ts:{id:OPS.setTextRise,numArgs:1,variableArgs:!1},Td:{id:OPS.moveText,numArgs:2,variableArgs:!1},TD:{id:OPS.setLeadingMoveText,numArgs:2,variableArgs:!1},Tm:{id:OPS.setTextMatrix,numArgs:6,variableArgs:!1},"T*":{id:OPS.nextLine,numArgs:0,variableArgs:!1},Tj:{id:OPS.showText,numArgs:1,variableArgs:!1},TJ:{id:OPS.showSpacedText,numArgs:1,variableArgs:!1},"'":{id:OPS.nextLineShowText,numArgs:1,variableArgs:!1},'"':{id:OPS.nextLineSetSpacingShowText,numArgs:3,variableArgs:!1},d0:{id:OPS.setCharWidth,numArgs:2,variableArgs:!1},d1:{id:OPS.setCharWidthAndBounds,numArgs:6,variableArgs:!1},CS:{id:OPS.setStrokeColorSpace,numArgs:1,variableArgs:!1},cs:{id:OPS.setFillColorSpace,numArgs:1,variableArgs:!1},SC:{id:OPS.setStrokeColor,numArgs:4,variableArgs:!0},SCN:{id:OPS.setStrokeColorN,numArgs:33,variableArgs:!0},sc:{id:OPS.setFillColor,numArgs:4,variableArgs:!0},scn:{id:OPS.setFillColorN,numArgs:33,variableArgs:!0},G:{id:OPS.setStrokeGray,numArgs:1,variableArgs:!1},g:{id:OPS.setFillGray,numArgs:1,variableArgs:!1},RG:{id:OPS.setStrokeRGBColor,numArgs:3,variableArgs:!1},rg:{id:OPS.setFillRGBColor,numArgs:3,variableArgs:!1},K:{id:OPS.setStrokeCMYKColor,numArgs:4,variableArgs:!1},k:{id:OPS.setFillCMYKColor,numArgs:4,variableArgs:!1},sh:{id:OPS.shadingFill,numArgs:1,variableArgs:!1},BI:{id:OPS.beginInlineImage,numArgs:0,variableArgs:!1},ID:{id:OPS.beginImageData,numArgs:0,variableArgs:!1},EI:{id:OPS.endInlineImage,numArgs:1,variableArgs:!1},Do:{id:OPS.paintXObject,numArgs:1,variableArgs:!1},MP:{id:OPS.markPoint,numArgs:1,variableArgs:!1},DP:{id:OPS.markPointProps,numArgs:2,variableArgs:!1},BMC:{id:OPS.beginMarkedContent,numArgs:1,variableArgs:!1},BDC:{id:OPS.beginMarkedContentProps,numArgs:2,variableArgs:!1},EMC:{id:OPS.endMarkedContent,numArgs:0,variableArgs:!1},BX:{id:OPS.beginCompat,numArgs:0,variableArgs:!1},EX:{id:OPS.endCompat,numArgs:0,variableArgs:!1},BM:null,BD:null,true:null,fa:null,fal:null,fals:null,false:null,nu:null,nul:null,null:null}))}static MAX_INVALID_PATH_OPS=10;constructor(stream,xref,stateManager=new StateManager){this.parser=new Parser({lexer:new Lexer(stream,EvaluatorPreprocessor.opMap),xref:xref}),this.stateManager=stateManager,this.nonProcessedArgs=[],this._isPathOp=!1,this._numInvalidPathOPS=0}get savedStatesDepth(){return this.stateManager.stateStack.length}read(operation){let args=operation.args;for(;;){var obj=this.parser.getObj();if(obj instanceof Cmd){var cmd=obj.cmd,opSpec=EvaluatorPreprocessor.opMap[cmd];if(!opSpec){warn(`Unknown command "${cmd}".`);continue}var fn=opSpec.id,numArgs=opSpec.numArgs;let argsLength=null!==args?args.length:0;if(this._isPathOp||(this._numInvalidPathOPS=0),this._isPathOp=fn>=OPS.moveTo&&fn<=OPS.endPath,opSpec.variableArgs)argsLength>numArgs&&info(`Command ${cmd}: expected [0, ${numArgs}] args, `+`but received ${argsLength} args.`);else{if(argsLength!==numArgs){for(var nonProcessedArgs=this.nonProcessedArgs;argsLength>numArgs;)nonProcessedArgs.push(args.shift()),argsLength--;for(;argsLength<numArgs&&0!==nonProcessedArgs.length;)(args=null===args?[]:args).unshift(nonProcessedArgs.pop()),argsLength++}if(argsLength<numArgs){opSpec=`command ${cmd}: expected ${numArgs} args, `+`but received ${argsLength} args.`;if(this._isPathOp&&++this._numInvalidPathOPS>EvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new FormatError("Invalid "+opSpec);warn("Skipping "+opSpec),null!==args&&(args.length=0);continue}}return this.preprocessCommand(fn,args),operation.fn=fn,operation.args=args,!0}if(obj===EOF)return!1;if(null!==obj&&((args=null===args?[]:args).push(obj),33<args.length))throw new FormatError("Too many arguments")}}preprocessCommand(fn,args){switch(0|fn){case OPS.save:this.stateManager.save();break;case OPS.restore:this.stateManager.restore();break;case OPS.transform:this.stateManager.transform(args)}}}class DefaultAppearanceEvaluator extends EvaluatorPreprocessor{constructor(str){super(new StringStream(str))}parse(){var operation={fn:0,args:[]},result={fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3)};try{for(;;){if(operation.args.length=0,!this.read(operation))break;if(0===this.savedStatesDepth){var{fn,args}=operation;switch(0|fn){case OPS.setFont:var[fontName,fontSize]=args;fontName instanceof Name&&(result.fontName=fontName.name),"number"==typeof fontSize&&0<fontSize&&(result.fontSize=fontSize);break;case OPS.setFillRGBColor:ColorSpace.singletons.rgb.getRgbItem(args,0,result.fontColor,0);break;case OPS.setFillGray:ColorSpace.singletons.gray.getRgbItem(args,0,result.fontColor,0);break;case OPS.setFillCMYKColor:ColorSpace.singletons.cmyk.getRgbItem(args,0,result.fontColor,0)}}}}catch(reason){warn(`parseDefaultAppearance - ignoring errors: "${reason}".`)}return result}}function parseDefaultAppearance(str){return new DefaultAppearanceEvaluator(str).parse()}class AppearanceStreamEvaluator extends EvaluatorPreprocessor{constructor(stream,evaluatorOptions,xref){super(stream),this.stream=stream,this.evaluatorOptions=evaluatorOptions,this.xref=xref,this.resources=stream.dict?.get("Resources")}parse(){var operation={fn:0,args:[]};let result={scaleFactor:1,fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3),fillColorSpace:ColorSpace.singletons.gray},breakLoop=!1;var stack=[];try{for(;;){if(operation.args.length=0,breakLoop||!this.read(operation))break;var{fn,args}=operation;switch(0|fn){case OPS.save:stack.push({scaleFactor:result.scaleFactor,fontSize:result.fontSize,fontName:result.fontName,fontColor:result.fontColor.slice(),fillColorSpace:result.fillColorSpace});break;case OPS.restore:result=stack.pop()||result;break;case OPS.setTextMatrix:result.scaleFactor*=Math.hypot(args[0],args[1]);break;case OPS.setFont:var[fontName,fontSize]=args;fontName instanceof Name&&(result.fontName=fontName.name),"number"==typeof fontSize&&0<fontSize&&(result.fontSize=fontSize*result.scaleFactor);break;case OPS.setFillColorSpace:result.fillColorSpace=ColorSpace.parse({cs:args[0],xref:this.xref,resources:this.resources,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:this._localColorSpaceCache});break;case OPS.setFillColor:result.fillColorSpace.getRgbItem(args,0,result.fontColor,0);break;case OPS.setFillRGBColor:ColorSpace.singletons.rgb.getRgbItem(args,0,result.fontColor,0);break;case OPS.setFillGray:ColorSpace.singletons.gray.getRgbItem(args,0,result.fontColor,0);break;case OPS.setFillCMYKColor:ColorSpace.singletons.cmyk.getRgbItem(args,0,result.fontColor,0);break;case OPS.showText:case OPS.showSpacedText:case OPS.nextLineShowText:case OPS.nextLineSetSpacingShowText:breakLoop=!0}}}catch(reason){warn(`parseAppearanceStream - ignoring errors: "${reason}".`)}return this.stream.reset(),delete result.scaleFactor,delete result.fillColorSpace,result}get _localColorSpaceCache(){return shadow(this,"_localColorSpaceCache",new LocalColorSpaceCache)}get _pdfFunctionFactory(){return shadow(this,"_pdfFunctionFactory",new PDFFunctionFactory({xref:this.xref,isEvalSupported:this.evaluatorOptions.isEvalSupported}))}}function parseAppearanceStream(stream,evaluatorOptions,xref){return new AppearanceStreamEvaluator(stream,evaluatorOptions,xref).parse()}function getPdfColor(color,isFill){return color[0]===color[1]&&color[1]===color[2]?numberToString(color[0]/255)+" "+(isFill?"g":"G"):Array.from(color,c=>numberToString(c/255)).join(" ")+" "+(isFill?"rg":"RG")}function createDefaultAppearance({fontSize,fontName,fontColor}){return`/${escapePDFName(fontName)} ${fontSize} Tf `+getPdfColor(fontColor,!0)}class FakeUnicodeFont{constructor(xref,fontFamily){this.xref=xref,this.widths=null,this.firstChar=1/0,this.lastChar=-1/0,this.fontFamily=fontFamily;xref=new OffscreenCanvas(1,1);this.ctxMeasure=xref.getContext("2d"),FakeUnicodeFont._fontNameId||(FakeUnicodeFont._fontNameId=1),this.fontName=Name.get(`InvalidPDFjsFont_${fontFamily}_`+FakeUnicodeFont._fontNameId++)}get fontDescriptorRef(){var fontDescriptor;return FakeUnicodeFont._fontDescriptorRef||((fontDescriptor=new Dict(this.xref)).set("Type",Name.get("FontDescriptor")),fontDescriptor.set("FontName",this.fontName),fontDescriptor.set("FontFamily","MyriadPro Regular"),fontDescriptor.set("FontBBox",[0,0,0,0]),fontDescriptor.set("FontStretch",Name.get("Normal")),fontDescriptor.set("FontWeight",400),fontDescriptor.set("ItalicAngle",0),FakeUnicodeFont._fontDescriptorRef=this.xref.getNewPersistentRef(fontDescriptor)),FakeUnicodeFont._fontDescriptorRef}get descendantFontRef(){var char,width,descendantFont=new Dict(this.xref),widths=(descendantFont.set("BaseFont",this.fontName),descendantFont.set("Type",Name.get("Font")),descendantFont.set("Subtype",Name.get("CIDFontType0")),descendantFont.set("CIDToGIDMap",Name.get("Identity")),descendantFont.set("FirstChar",this.firstChar),descendantFont.set("LastChar",this.lastChar),descendantFont.set("FontDescriptor",this.fontDescriptorRef),descendantFont.set("DW",1e3),[]);let currentChar=null,currentWidths=null;for([char,width]of[...this.widths.entries()].sort())currentChar?char===currentChar+currentWidths.length?currentWidths.push(width):(widths.push(currentChar,currentWidths),currentChar=char,currentWidths=[width]):(currentChar=char,currentWidths=[width]);currentChar&&widths.push(currentChar,currentWidths),descendantFont.set("W",widths);var cidSystemInfo=new Dict(this.xref);return cidSystemInfo.set("Ordering","Identity"),cidSystemInfo.set("Registry","Adobe"),cidSystemInfo.set("Supplement",0),descendantFont.set("CIDSystemInfo",cidSystemInfo),this.xref.getNewPersistentRef(descendantFont)}get baseFontRef(){var baseFont=new Dict(this.xref);return baseFont.set("BaseFont",this.fontName),baseFont.set("Type",Name.get("Font")),baseFont.set("Subtype",Name.get("Type0")),baseFont.set("Encoding",Name.get("Identity-H")),baseFont.set("DescendantFonts",[this.descendantFontRef]),baseFont.set("ToUnicode",Name.get("Identity-H")),this.xref.getNewPersistentRef(baseFont)}get resources(){var resources=new Dict(this.xref),font=new Dict(this.xref);return font.set(this.fontName.name,this.baseFontRef),resources.set("Font",font),resources}_createContext(){return this.widths=new Map,this.ctxMeasure.font="1000px "+this.fontFamily,this.ctxMeasure}createFontResources(text){var ctx=this._createContext();for(const line of text.split(/\r\n?|\n/))for(const char of line.split("")){var metrics,code=char.charCodeAt(0);this.widths.has(code)||(metrics=ctx.measureText(char),metrics=Math.ceil(metrics.width),this.widths.set(code,metrics),this.firstChar=Math.min(code,this.firstChar),this.lastChar=Math.max(code,this.lastChar))}return this.resources}static getFirstPositionInfo(rect,rotation,fontSize){var[rect,y1,x2,y2]=rect;let w=x2-rect,h=y2-y1;rotation%180!=0&&([w,h]=[h,w]);x2=LINE_FACTOR*fontSize,rect=LINE_DESCENT_FACTOR*fontSize;return{coords:[0,h+rect-x2],bbox:[0,0,w,h],matrix:0!==rotation?getRotationMatrix(rotation,h,x2):void 0}}createAppearance(text,rect,rotation,fontSize,bgColor,strokeAlpha){var ctx=this._createContext(),lines=[];let maxWidth=-1/0;for(const line of text.split(/\r\n?|\n/)){lines.push(line);var lineWidth=ctx.measureText(line).width;maxWidth=Math.max(maxWidth,lineWidth);for(const code of codePointIter(line)){var char=String.fromCodePoint(code),width=this.widths.get(code);void 0===width&&(char=ctx.measureText(char),width=Math.ceil(char.width),this.widths.set(code,width),this.firstChar=Math.min(code,this.firstChar),this.lastChar=Math.max(code,this.lastChar))}}maxWidth*=fontSize/1e3;var[text,rect,x2,y2]=rect;let w=x2-text,h=y2-rect,hscale=(rotation%180!=0&&([w,h]=[h,w]),1),vscale=(maxWidth>w&&(hscale=w/maxWidth),1);var x2=LINE_FACTOR*fontSize,text=LINE_DESCENT_FACTOR*fontSize,y2=x2*lines.length,rect=(y2>h&&(vscale=h/y2),Math.min(hscale,vscale)),y2=fontSize*rect,buffer=["q",`0 0 ${numberToString(w)} ${numberToString(h)} re W n`,"BT",`1 0 0 1 0 ${numberToString(h+text)} Tm 0 Tc `+getPdfColor(bgColor,!0),`/${this.fontName.name} ${numberToString(y2)} Tf`],fontSize=this["resources"],vShift=(1!==(strokeAlpha="number"==typeof strokeAlpha&&0<=strokeAlpha&&strokeAlpha<=1?strokeAlpha:1)&&(buffer.push("/R0 gs"),rect=new Dict(this.xref),(text=new Dict(this.xref)).set("ca",strokeAlpha),text.set("CA",strokeAlpha),text.set("Type",Name.get("ExtGState")),rect.set("R0",text),fontSize.set("ExtGState",rect)),numberToString(x2));for(const line of lines)buffer.push(`0 -${vShift} Td <${stringToUTF16HexString(line)}> Tj`);buffer.push("ET","Q");bgColor=buffer.join("\n"),y2=new Dict(this.xref),y2.set("Subtype",Name.get("Form")),y2.set("Type",Name.get("XObject")),y2.set("BBox",[0,0,w,h]),y2.set("Length",bgColor.length),y2.set("Resources",fontSize),rotation&&(strokeAlpha=getRotationMatrix(rotation,w,h),y2.set("Matrix",strokeAlpha)),text=new StringStream(bgColor);return text.dict=y2,text}}class NameOrNumberTree{constructor(root,xref,type){this.constructor===NameOrNumberTree&&unreachable("Cannot initialize NameOrNumberTree."),this.root=root,this.xref=xref,this._type=type}getAll(){var map=new Map;if(this.root)for(var xref=this.xref,processed=new RefSet,queue=(processed.put(this.root),[this.root]);0<queue.length;){var obj=xref.fetchIfRef(queue.shift());if(obj instanceof Dict)if(obj.has("Kids")){var kids=obj.get("Kids");if(Array.isArray(kids))for(const kid of kids){if(processed.has(kid))throw new FormatError(`Duplicate entry in "${this._type}" tree.`);queue.push(kid),processed.put(kid)}}else{var entries=obj.get(this._type);if(Array.isArray(entries))for(let i=0,ii=entries.length;i<ii;i+=2)map.set(xref.fetchIfRef(entries[i]),xref.fetchIfRef(entries[i+1]))}}return map}get(key){if(this.root){var xref=this.xref;let kidsOrEntries=xref.fetchIfRef(this.root),loopCount=0;for(;kidsOrEntries.has("Kids");){if(10<++loopCount)return warn(`Search depth limit reached for "${this._type}" tree.`),null;var kids=kidsOrEntries.get("Kids");if(!Array.isArray(kids))return null;let l=0,r=kids.length-1;for(;l<=r;){var m=l+r>>1,kid=xref.fetchIfRef(kids[m]),limits=kid.get("Limits");if(key<xref.fetchIfRef(limits[0]))r=m-1;else{if(!(key>xref.fetchIfRef(limits[1]))){kidsOrEntries=kid;break}l=1+m}}if(l>r)return null}var entries=kidsOrEntries.get(this._type);if(Array.isArray(entries)){let l=0,r=entries.length-2;for(;l<=r;){const tmp=l+r>>1,m=tmp+(1&tmp);var currentKey=xref.fetchIfRef(entries[m]);if(key<currentKey)r=m-2;else{if(!(currentKey<key))return xref.fetchIfRef(entries[1+m]);l=2+m}}}}return null}}class NameTree extends NameOrNumberTree{constructor(root,xref){super(root,xref,"Names")}}class NumberTree extends NameOrNumberTree{constructor(root,xref){super(root,xref,"Nums")}}function clearGlobalCaches(){clearPatternCaches(),clearPrimitiveCaches(),clearUnicodeCaches(),JpxImage.cleanup()}function pickPlatformItem(dict){return dict.has("UF")?dict.get("UF"):dict.has("F")?dict.get("F"):dict.has("Unix")?dict.get("Unix"):dict.has("Mac")?dict.get("Mac"):dict.has("DOS")?dict.get("DOS"):null}class FileSpec{#contentAvailable=!1;constructor(root,xref,skipContent=!1){root instanceof Dict&&(this.xref=xref,(this.root=root).has("FS")&&(this.fs=root.get("FS")),this.description=root.has("Desc")?stringToPDFString(root.get("Desc")):"",root.has("RF")&&warn("Related file specifications are not supported"),skipContent||(root.has("EF")?this.#contentAvailable=!0:warn("Non-embedded file specifications are not supported")))}get filename(){var filename;return!this._filename&&this.root&&(filename=pickPlatformItem(this.root)||"unnamed",this._filename=stringToPDFString(filename).replaceAll("\\\\","\\").replaceAll("\\/","/").replaceAll("\\","/")),this._filename}get content(){if(!this.#contentAvailable)return null;!this.contentRef&&this.root&&(this.contentRef=pickPlatformItem(this.root.get("EF")));let content=null;var fileObj;return this.contentRef?(fileObj=this.xref.fetchIfRef(this.contentRef))instanceof BaseStream?content=fileObj.getBytes():warn("Embedded file specification points to non-existing/invalid content"):warn("Embedded file specification does not have a content"),content}get serializable(){return{filename:this.filename,content:this.content}}}const XMLParserErrorCode={NoError:0,EndOfDocument:-1,UnterminatedCdat:-2,UnterminatedXmlDeclaration:-3,UnterminatedDoctypeDeclaration:-4,UnterminatedComment:-5,MalformedElement:-6,OutOfMemory:-7,UnterminatedAttributeValue:-8,UnterminatedElement:-9,ElementNeverBegun:-10};function isWhitespace(s,index){s=s[index];return" "===s||"\n"===s||"\r"===s||"\t"===s}function isWhitespaceString(s){for(let i=0,ii=s.length;i<ii;i++)if(!isWhitespace(s,i))return!1;return!0}class XMLParserBase{_resolveEntities(s){return s.replaceAll(/&([^;]+);/g,(all,entity)=>{if("#x"===entity.substring(0,2))return String.fromCodePoint(parseInt(entity.substring(2),16));if("#"===entity.substring(0,1))return String.fromCodePoint(parseInt(entity.substring(1),10));switch(entity){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return this.onResolveEntity(entity)})}_parseContent(s,start){var attributes=[];let pos=start;function skipWs(){for(;pos<s.length&&isWhitespace(s,pos);)++pos}for(;pos<s.length&&!isWhitespace(s,pos)&&">"!==s[pos]&&"/"!==s[pos];)++pos;var name=s.substring(start,pos);for(skipWs();pos<s.length&&">"!==s[pos]&&"/"!==s[pos]&&"?"!==s[pos];){skipWs();let attrName="",attrValue;for(;pos<s.length&&!isWhitespace(s,pos)&&"="!==s[pos];)attrName+=s[pos],++pos;if(skipWs(),"="!==s[pos])return null;++pos,skipWs();var attrEndChar=s[pos];if('"'!==attrEndChar&&"'"!==attrEndChar)return null;attrEndChar=s.indexOf(attrEndChar,++pos);if(attrEndChar<0)return null;attrValue=s.substring(pos,attrEndChar),attributes.push({name:attrName,value:this._resolveEntities(attrValue)}),pos=attrEndChar+1,skipWs()}return{name:name,attributes:attributes,parsed:pos-start}}_parseProcessingInstruction(s,start){let pos=start;for(;pos<s.length&&!isWhitespace(s,pos)&&">"!==s[pos]&&"?"!==s[pos]&&"/"!==s[pos];)++pos;for(var name=s.substring(start,pos);pos<s.length&&isWhitespace(s,pos);)++pos;for(var attrStart=pos;pos<s.length&&("?"!==s[pos]||">"!==s[pos+1]);)++pos;return{name:name,value:s.substring(attrStart,pos),parsed:pos-start}}parseXml(s){let i=0;for(;i<s.length;){var ch=s[i];let j=i;if("<"===ch){let q;switch(s[++j]){case"/":if(++j,(q=s.indexOf(">",j))<0)return void this.onError(XMLParserErrorCode.UnterminatedElement);this.onEndElement(s.substring(j,q)),j=q+1;break;case"?":++j;var pi=this._parseProcessingInstruction(s,j);if("?>"!==s.substring(j+pi.parsed,j+pi.parsed+2))return void this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);this.onPi(pi.name,pi.value),j+=pi.parsed+2;break;case"!":if("--"===s.substring(j+1,j+3)){if((q=s.indexOf("--\x3e",j+3))<0)return void this.onError(XMLParserErrorCode.UnterminatedComment);this.onComment(s.substring(j+3,q)),j=q+3}else if("[CDATA["===s.substring(j+1,j+8)){if((q=s.indexOf("]]>",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedCdat);this.onCdata(s.substring(j+8,q)),j=q+3}else{if("DOCTYPE"!==s.substring(j+1,j+8))return void this.onError(XMLParserErrorCode.MalformedElement);{pi=s.indexOf("[",j+8);let complexDoctype=!1;if((q=s.indexOf(">",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);if(0<pi&&q>pi){if((q=s.indexOf("]>",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);complexDoctype=!0}var doctypeContent=s.substring(j+8,q+(complexDoctype?1:0));this.onDoctype(doctypeContent),j=q+(complexDoctype?2:1)}}break;default:doctypeContent=this._parseContent(s,j);if(null===doctypeContent)return void this.onError(XMLParserErrorCode.MalformedElement);let isClosed=!1;if("/>"===s.substring(j+doctypeContent.parsed,j+doctypeContent.parsed+2))isClosed=!0;else if(">"!==s.substring(j+doctypeContent.parsed,j+doctypeContent.parsed+1))return void this.onError(XMLParserErrorCode.UnterminatedElement);this.onBeginElement(doctypeContent.name,doctypeContent.attributes,isClosed),j+=doctypeContent.parsed+(isClosed?2:1)}}else{for(;j<s.length&&"<"!==s[j];)j++;ch=s.substring(i,j);this.onText(this._resolveEntities(ch))}i=j}}onResolveEntity(name){return`&${name};`}onPi(name,value){}onComment(text){}onCdata(text){}onDoctype(doctypeContent){}onText(text){}onBeginElement(name,attributes,isEmpty){}onEndElement(name){}onError(code){}}class SimpleDOMNode{constructor(nodeName,nodeValue){this.nodeName=nodeName,this.nodeValue=nodeValue,Object.defineProperty(this,"parentNode",{value:null,writable:!0})}get firstChild(){return this.childNodes?.[0]}get nextSibling(){var childNodes=this.parentNode.childNodes;if(childNodes){var index=childNodes.indexOf(this);if(-1!==index)return childNodes[index+1]}}get textContent(){return this.childNodes?this.childNodes.map(function(child){return child.textContent}).join(""):this.nodeValue||""}get children(){return this.childNodes||[]}hasChildNodes(){return 0<this.childNodes?.length}searchNode(paths,pos){if(pos>=paths.length)return this;var component=paths[pos];if(component.name.startsWith("#")&&pos<paths.length-1)return this.searchNode(paths,pos+1);var stack=[];let node=this;for(;;){if(component.name===node.nodeName){if(0!==component.pos){if(0===stack.length)return null;{var[parent]=stack.pop();let siblingPos=0;for(const child of parent.childNodes)if(component.name===child.nodeName){if(siblingPos===component.pos)return child.searchNode(paths,pos+1);siblingPos++}return node.searchNode(paths,pos+1)}}parent=node.searchNode(paths,pos+1);if(null!==parent)return parent}if(0<node.childNodes?.length)stack.push([node,0]),node=node.childNodes[0];else{if(0===stack.length)return null;for(;0!==stack.length;){const[parent,currentPos]=stack.pop();var newPos=currentPos+1;if(newPos<parent.childNodes.length){stack.push([parent,newPos]),node=parent.childNodes[newPos];break}}if(0===stack.length)return null}}}dump(buffer){if("#text"===this.nodeName)buffer.push(encodeToXmlString(this.nodeValue));else{if(buffer.push("<"+this.nodeName),this.attributes)for(const attribute of this.attributes)buffer.push(` ${attribute.name}="${encodeToXmlString(attribute.value)}"`);if(this.hasChildNodes()){buffer.push(">");for(const child of this.childNodes)child.dump(buffer);buffer.push(`</${this.nodeName}>`)}else this.nodeValue?buffer.push(`>${encodeToXmlString(this.nodeValue)}</${this.nodeName}>`):buffer.push("/>")}}}class SimpleXMLParser extends XMLParserBase{constructor({hasAttributes=!1,lowerCaseName=!1}){super(),this._currentFragment=null,this._stack=null,this._errorCode=XMLParserErrorCode.NoError,this._hasAttributes=hasAttributes,this._lowerCaseName=lowerCaseName}parseFromString(data){if(this._currentFragment=[],this._stack=[],this._errorCode=XMLParserErrorCode.NoError,this.parseXml(data),this._errorCode===XMLParserErrorCode.NoError){var[data]=this._currentFragment;if(data)return{documentElement:data}}}onText(text){isWhitespaceString(text)||(text=new SimpleDOMNode("#text",text),this._currentFragment.push(text))}onCdata(text){text=new SimpleDOMNode("#text",text);this._currentFragment.push(text)}onBeginElement(name,attributes,isEmpty){this._lowerCaseName&&(name=name.toLowerCase());name=new SimpleDOMNode(name);name.childNodes=[],this._hasAttributes&&(name.attributes=attributes),this._currentFragment.push(name),isEmpty||(this._stack.push(this._currentFragment),this._currentFragment=name.childNodes)}onEndElement(name){this._currentFragment=this._stack.pop()||[];var lastElement=this._currentFragment.at(-1);if(!lastElement)return null;for(const childNode of lastElement.childNodes)childNode.parentNode=lastElement;return lastElement}onError(code){this._errorCode=code}}class MetadataParser{constructor(data){data=this._repair(data);var xmlDocument=new SimpleXMLParser({lowerCaseName:!0}).parseFromString(data);this._metadataMap=new Map,this._data=data,xmlDocument&&this._parse(xmlDocument)}_repair(data){return data.replace(/^[^<]+/,"").replaceAll(/>\\376\\377([^<]+)/g,function(all,codes){var bytes=codes.replaceAll(/\\([0-3])([0-7])([0-7])/g,function(code,d1,d2,d3){return String.fromCharCode(64*d1+8*d2+ +d3)}).replaceAll(/&(amp|apos|gt|lt|quot);/g,function(str,name){switch(name){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error(`_repair: ${name} isn't defined.`)}),charBuf=[">"];for(let i=0,ii=bytes.length;i<ii;i+=2){var code=256*bytes.charCodeAt(i)+bytes.charCodeAt(i+1);charBuf.push(32<=code&&code<127&&60!==code&&62!==code&&38!==code?String.fromCharCode(code):"&#x"+(65536+code).toString(16).substring(1)+";")}return charBuf.join("")})}_getSequence(entry){var name=entry.nodeName;return"rdf:bag"!==name&&"rdf:seq"!==name&&"rdf:alt"!==name?null:entry.childNodes.filter(node=>"rdf:li"===node.nodeName)}_parseArray(entry){var seqNode;entry.hasChildNodes()&&([seqNode]=entry.childNodes,seqNode=this._getSequence(seqNode)||[],this._metadataMap.set(entry.nodeName,seqNode.map(node=>node.textContent.trim())))}_parse(xmlDocument){let rdf=xmlDocument.documentElement;if("rdf:rdf"!==rdf.nodeName)for(rdf=rdf.firstChild;rdf&&"rdf:rdf"!==rdf.nodeName;)rdf=rdf.nextSibling;if(rdf&&"rdf:rdf"===rdf.nodeName&&rdf.hasChildNodes())for(const desc of rdf.childNodes)if("rdf:description"===desc.nodeName)for(const entry of desc.childNodes){var name=entry.nodeName;switch(name){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(entry);continue}this._metadataMap.set(name,entry.textContent.trim())}}get serializable(){return{parsedData:this._metadataMap,rawData:this._data}}}const chunkSize=512;class DecryptStream extends DecodeStream{constructor(str,maybeLength,decrypt){super(maybeLength),this.str=str,this.dict=str.dict,this.decrypt=decrypt,this.nextChunk=null,this.initialized=!1}readBlock(){let chunk;var decrypt,hasMoreData;this.initialized?chunk=this.nextChunk:(chunk=this.str.getBytes(chunkSize),this.initialized=!0),chunk&&0!==chunk.length?(this.nextChunk=this.str.getBytes(chunkSize),hasMoreData=0<this.nextChunk?.length,decrypt=this.decrypt,chunk=decrypt(chunk,!hasMoreData),hasMoreData=(decrypt=this.bufferLength)+chunk.length,this.ensureBuffer(hasMoreData).set(chunk,decrypt),this.bufferLength=hasMoreData):this.eof=!0}}class ARCFourCipher{constructor(key){this.a=0,this.b=0;var s=new Uint8Array(256),keyLength=key.length;for(let i=0;i<256;++i)s[i]=i;for(let i=0,j=0;i<256;++i){var tmp=s[i];j=j+tmp+key[i%keyLength]&255,s[i]=s[j],s[j]=tmp}this.s=s}encryptBlock(data){let a=this.a,b=this.b;var s=this.s,n=data.length,output=new Uint8Array(n);for(let i=0;i<n;++i){var tmp=s[a=a+1&255],tmp2=s[b=b+tmp&255];s[a]=tmp2,s[b]=tmp,output[i]=data[i]^s[tmp+tmp2&255]}return this.a=a,this.b=b,output}decryptBlock(data){return this.encryptBlock(data)}encrypt(data){return this.encryptBlock(data)}}const calculateMD5=function(){const r=new Uint8Array([7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21]),k=new Int32Array([-680876936,-389564586,606105819,-1044525330,-176418897,1200080426,-1473231341,-45705983,1770035416,-1958414417,-42063,-1990404162,1804603682,-40341101,-1502002290,1236535329,-165796510,-1069501632,643717713,-373897302,-701558691,38016083,-660478335,-405537848,568446438,-1019803690,-187363961,1163531501,-1444681467,-51403784,1735328473,-1926607734,-378558,-2022574463,1839030562,-35309556,-1530992060,1272893353,-155497632,-1094730640,681279174,-358537222,-722521979,76029189,-640364487,-421815835,530742520,-995338651,-198630844,1126891415,-1416354905,-57434055,1700485571,-1894986606,-1051523,-2054922799,1873313359,-30611744,-1560198380,1309151649,-145523070,-1120210379,718787259,-343485551]);return function(data,offset,length){let h0=1732584193,h1=-271733879,h2=-1732584194,h3=271733878;var paddedLength=length+72&-64,padded=new Uint8Array(paddedLength);let i,j;for(i=0;i<length;++i)padded[i]=data[offset++];padded[i++]=128;for(var n=paddedLength-8;i<n;)padded[i++]=0;padded[i++]=length<<3&255,padded[i++]=length>>5&255,padded[i++]=length>>13&255,padded[i++]=length>>21&255,padded[i++]=length>>>29&255,padded[i++]=0,padded[i++]=0,padded[i++]=0;var w=new Int32Array(16);for(i=0;i<paddedLength;){for(j=0;j<16;++j,i+=4)w[j]=padded[i]|padded[i+1]<<8|padded[i+2]<<16|padded[i+3]<<24;let a=h0,b=h1,c=h2,d=h3,f,g;for(j=0;j<64;++j){g=j<16?(f=b&c|~b&d,j):j<32?(f=d&b|~d&c,5*j+1&15):j<48?(f=b^c^d,3*j+5&15):(f=c^(b|~d),7*j&15);var tmp=d,rotateArg=a+f+k[j]+w[g]|0,rotate=r[j];d=c,b=(c=b)+(rotateArg<<rotate|rotateArg>>>32-rotate)|0,a=tmp}h0=h0+a|0,h1=h1+b|0,h2=h2+c|0,h3=h3+d|0}return new Uint8Array([255&h0,h0>>8&255,h0>>16&255,h0>>>24&255,255&h1,h1>>8&255,h1>>16&255,h1>>>24&255,255&h2,h2>>8&255,h2>>16&255,h2>>>24&255,255&h3,h3>>8&255,h3>>16&255,h3>>>24&255])}}();class Word64{constructor(highInteger,lowInteger){this.high=0|highInteger,this.low=0|lowInteger}and(word){this.high&=word.high,this.low&=word.low}xor(word){this.high^=word.high,this.low^=word.low}or(word){this.high|=word.high,this.low|=word.low}shiftRight(places){32<=places?(this.low=this.high>>>places-32|0,this.high=0):(this.low=this.low>>>places|this.high<<32-places,this.high=this.high>>>places|0)}shiftLeft(places){32<=places?(this.high=this.low<<places-32,this.low=0):(this.high=this.high<<places|this.low>>>32-places,this.low<<=places)}rotateRight(places){let low,high;32&places?(high=this.low,low=this.high):(low=this.low,high=this.high),places&=31,this.low=low>>>places|high<<32-places,this.high=high>>>places|low<<32-places}not(){this.high=~this.high,this.low=~this.low}add(word){var lowAdd=(this.low>>>0)+(word.low>>>0);let highAdd=(this.high>>>0)+(word.high>>>0);4294967295<lowAdd&&(highAdd+=1),this.low=0|lowAdd,this.high=0|highAdd}copyTo(bytes,offset){bytes[offset]=this.high>>>24&255,bytes[offset+1]=this.high>>16&255,bytes[offset+2]=this.high>>8&255,bytes[offset+3]=255&this.high,bytes[offset+4]=this.low>>>24&255,bytes[offset+5]=this.low>>16&255,bytes[offset+6]=this.low>>8&255,bytes[offset+7]=255&this.low}assign(word){this.high=word.high,this.low=word.low}}const calculateSHA256=function(){function rotr(x,n){return x>>>n|x<<32-n}const k=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function(data,offset,length){let h0=1779033703,h1=3144134277,h2=1013904242,h3=2773480762,h4=1359893119,h5=2600822924,h6=528734635,h7=1541459225;var paddedLength=64*Math.ceil((length+9)/64),padded=new Uint8Array(paddedLength);let i,j;for(i=0;i<length;++i)padded[i]=data[offset++];padded[i++]=128;for(var n=paddedLength-8;i<n;)padded[i++]=0;padded[i++]=0,padded[i++]=0,padded[i++]=0,padded[i++]=length>>>29&255,padded[i++]=length>>21&255,padded[i++]=length>>13&255,padded[i++]=length>>5&255,padded[i++]=length<<3&255;var x,w=new Uint32Array(64);for(i=0;i<paddedLength;){for(j=0;j<16;++j)w[j]=padded[i]<<24|padded[i+1]<<16|padded[i+2]<<8|padded[i+3],i+=4;for(j=16;j<64;++j)w[j]=0|(rotr(x=w[j-2],17)^rotr(x,19)^x>>>10)+w[j-7]+function(x){return rotr(x,7)^rotr(x,18)^x>>>3}(w[j-15])+w[j-16];let a=h0,b=h1,c=h2,d=h3,e=h4,f=h5,g=h6,h=h7,t1,t2;for(j=0;j<64;++j)t1=h+function(x){return rotr(x,6)^rotr(x,11)^rotr(x,25)}(e)+function(x,y,z){return x&y^~x&z}(e,f,g)+k[j]+w[j],t2=function(x){return rotr(x,2)^rotr(x,13)^rotr(x,22)}(a)+function(x,y,z){return x&y^x&z^y&z}(a,b,c),h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0;h0=h0+a|0,h1=h1+b|0,h2=h2+c|0,h3=h3+d|0,h4=h4+e|0,h5=h5+f|0,h6=h6+g|0,h7=h7+h|0}return new Uint8Array([h0>>24&255,h0>>16&255,h0>>8&255,255&h0,h1>>24&255,h1>>16&255,h1>>8&255,255&h1,h2>>24&255,h2>>16&255,h2>>8&255,255&h2,h3>>24&255,h3>>16&255,h3>>8&255,255&h3,h4>>24&255,h4>>16&255,h4>>8&255,255&h4,h5>>24&255,h5>>16&255,h5>>8&255,255&h5,h6>>24&255,h6>>16&255,h6>>8&255,255&h6,h7>>24&255,h7>>16&255,h7>>8&255,255&h7])}}(),calculateSHA512=function(){const k=[new Word64(1116352408,3609767458),new Word64(1899447441,602891725),new Word64(3049323471,3964484399),new Word64(3921009573,2173295548),new Word64(961987163,4081628472),new Word64(1508970993,3053834265),new Word64(2453635748,2937671579),new Word64(2870763221,3664609560),new Word64(3624381080,2734883394),new Word64(310598401,1164996542),new Word64(607225278,1323610764),new Word64(1426881987,3590304994),new Word64(1925078388,4068182383),new Word64(2162078206,991336113),new Word64(2614888103,633803317),new Word64(3248222580,3479774868),new Word64(3835390401,2666613458),new Word64(4022224774,944711139),new Word64(264347078,2341262773),new Word64(604807628,2007800933),new Word64(770255983,1495990901),new Word64(1249150122,1856431235),new Word64(1555081692,3175218132),new Word64(1996064986,2198950837),new Word64(2554220882,3999719339),new Word64(2821834349,766784016),new Word64(2952996808,2566594879),new Word64(3210313671,3203337956),new Word64(3336571891,1034457026),new Word64(3584528711,2466948901),new Word64(113926993,3758326383),new Word64(338241895,168717936),new Word64(666307205,1188179964),new Word64(773529912,1546045734),new Word64(1294757372,1522805485),new Word64(1396182291,2643833823),new Word64(1695183700,2343527390),new Word64(1986661051,1014477480),new Word64(2177026350,1206759142),new Word64(2456956037,344077627),new Word64(2730485921,1290863460),new Word64(2820302411,3158454273),new Word64(3259730800,3505952657),new Word64(3345764771,106217008),new Word64(3516065817,3606008344),new Word64(3600352804,1432725776),new Word64(4094571909,1467031594),new Word64(275423344,851169720),new Word64(430227734,3100823752),new Word64(506948616,1363258195),new Word64(659060556,3750685593),new Word64(883997877,3785050280),new Word64(958139571,3318307427),new Word64(1322822218,3812723403),new Word64(1537002063,2003034995),new Word64(1747873779,3602036899),new Word64(1955562222,1575990012),new Word64(2024104815,1125592928),new Word64(2227730452,2716904306),new Word64(2361852424,442776044),new Word64(2428436474,593698344),new Word64(2756734187,3733110249),new Word64(3204031479,2999351573),new Word64(3329325298,3815920427),new Word64(3391569614,3928383900),new Word64(3515267271,566280711),new Word64(3940187606,3454069534),new Word64(4118630271,4000239992),new Word64(116418474,1914138554),new Word64(174292421,2731055270),new Word64(289380356,3203993006),new Word64(460393269,320620315),new Word64(685471733,587496836),new Word64(852142971,1086792851),new Word64(1017036298,365543100),new Word64(1126000580,2618297676),new Word64(1288033470,3409855158),new Word64(1501505948,4234509866),new Word64(1607167915,987167468),new Word64(1816402316,1246189591)];return function(data,offset,length,mode384=!1){let h0,h1,h2,h3,h4,h5,h6,h7;h7=mode384?(h0=new Word64(3418070365,3238371032),h1=new Word64(1654270250,914150663),h2=new Word64(2438529370,812702999),h3=new Word64(355462360,4144912697),h4=new Word64(1731405415,4290775857),h5=new Word64(2394180231,1750603025),h6=new Word64(3675008525,1694076839),new Word64(1203062813,3204075428)):(h0=new Word64(1779033703,4089235720),h1=new Word64(3144134277,2227873595),h2=new Word64(1013904242,4271175723),h3=new Word64(2773480762,1595750129),h4=new Word64(1359893119,2917565137),h5=new Word64(2600822924,725511199),h6=new Word64(528734635,4215389547),new Word64(1541459225,327033209));var paddedLength=128*Math.ceil((length+17)/128),padded=new Uint8Array(paddedLength);let i,j;for(i=0;i<length;++i)padded[i]=data[offset++];padded[i++]=128;for(var n=paddedLength-16;i<n;)padded[i++]=0;padded[i++]=0,padded[i++]=0,padded[i++]=0,padded[i++]=0,padded[i++]=0,padded[i++]=0,padded[i++]=0,padded[i++]=0,padded[i++]=0,padded[i++]=0,padded[i++]=0,padded[i++]=length>>>29&255,padded[i++]=length>>21&255,padded[i++]=length>>13&255,padded[i++]=length>>5&255,padded[i++]=length<<3&255;var w=new Array(80);for(i=0;i<80;i++)w[i]=new Word64(0,0);let a=new Word64(0,0),b=new Word64(0,0),c=new Word64(0,0),d=new Word64(0,0),e=new Word64(0,0),f=new Word64(0,0),g=new Word64(0,0),h=new Word64(0,0);var t1=new Word64(0,0),t2=new Word64(0,0),tmp1=new Word64(0,0),tmp2=new Word64(0,0);let tmp3;for(i=0;i<paddedLength;){for(j=0;j<16;++j)w[j].high=padded[i]<<24|padded[i+1]<<16|padded[i+2]<<8|padded[i+3],w[j].low=padded[i+4]<<24|padded[i+5]<<16|padded[i+6]<<8|padded[i+7],i+=8;for(j=16;j<80;++j)!function(result,x,tmp){result.assign(x),result.rotateRight(19),tmp.assign(x),tmp.rotateRight(61),result.xor(tmp),tmp.assign(x),tmp.shiftRight(6),result.xor(tmp)}(tmp3=w[j],w[j-2],tmp2),tmp3.add(w[j-7]),function(result,x,tmp){result.assign(x),result.rotateRight(1),tmp.assign(x),tmp.rotateRight(8),result.xor(tmp),tmp.assign(x),tmp.shiftRight(7),result.xor(tmp)}(tmp1,w[j-15],tmp2),tmp3.add(tmp1),tmp3.add(w[j-16]);for(a.assign(h0),b.assign(h1),c.assign(h2),d.assign(h3),e.assign(h4),f.assign(h5),g.assign(h6),h.assign(h7),j=0;j<80;++j)t1.assign(h),function(result,x,tmp){result.assign(x),result.rotateRight(14),tmp.assign(x),tmp.rotateRight(18),result.xor(tmp),tmp.assign(x),tmp.rotateRight(41),result.xor(tmp)}(tmp1,e,tmp2),t1.add(tmp1),function(result,x,y,z,tmp){result.assign(x),result.and(y),tmp.assign(x),tmp.not(),tmp.and(z),result.xor(tmp)}(tmp1,e,f,g,tmp2),t1.add(tmp1),t1.add(k[j]),t1.add(w[j]),function(result,x,tmp){result.assign(x),result.rotateRight(28),tmp.assign(x),tmp.rotateRight(34),result.xor(tmp),tmp.assign(x),tmp.rotateRight(39),result.xor(tmp)}(t2,a,tmp2),function(result,x,y,z,tmp){result.assign(x),result.and(y),tmp.assign(x),tmp.and(z),result.xor(tmp),tmp.assign(y),tmp.and(z),result.xor(tmp)}(tmp1,a,b,c,tmp2),t2.add(tmp1),tmp3=h,h=g,g=f,f=e,d.add(t1),e=d,d=c,c=b,b=a,tmp3.assign(t1),tmp3.add(t2),a=tmp3;h0.add(a),h1.add(b),h2.add(c),h3.add(d),h4.add(e),h5.add(f),h6.add(g),h7.add(h)}let result;return mode384?(result=new Uint8Array(48),h0.copyTo(result,0),h1.copyTo(result,8),h2.copyTo(result,16),h3.copyTo(result,24),h4.copyTo(result,32),h5.copyTo(result,40)):(result=new Uint8Array(64),h0.copyTo(result,0),h1.copyTo(result,8),h2.copyTo(result,16),h3.copyTo(result,24),h4.copyTo(result,32),h5.copyTo(result,40),h6.copyTo(result,48),h7.copyTo(result,56)),result}}();function calculateSHA384(data,offset,length){return calculateSHA512(data,offset,length,!0)}class NullCipher{decryptBlock(data){return data}encrypt(data){return data}}class AESBaseCipher{constructor(){this.constructor===AESBaseCipher&&unreachable("Cannot initialize AESBaseCipher."),this._s=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),this._inv_s=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),this._mix=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]),this._mixCol=new Uint8Array(256);for(let i=0;i<256;i++)this._mixCol[i]=i<128?i<<1:i<<1^27;this.buffer=new Uint8Array(16),this.bufferPosition=0}_expandKey(cipherKey){unreachable("Cannot call `_expandKey` on the base class")}_decrypt(input,key){let t,u,v;var state=new Uint8Array(16);state.set(input);for(let j=0,k=this._keySize;j<16;++j,++k)state[j]^=key[k];for(let i=this._cyclesOfRepetition-1;1<=i;--i){t=state[13],state[13]=state[9],state[9]=state[5],state[5]=state[1],state[1]=t,t=state[14],u=state[10],state[14]=state[6],state[10]=state[2],state[6]=t,state[2]=u,t=state[15],u=state[11],v=state[7],state[15]=state[3],state[11]=t,state[7]=u,state[3]=v;for(let j=0;j<16;++j)state[j]=this._inv_s[state[j]];for(let j=0,k=16*i;j<16;++j,++k)state[j]^=key[k];for(let j=0;j<16;j+=4){var s0=this._mix[state[j]],s1=this._mix[state[j+1]],s2=this._mix[state[j+2]],s3=this._mix[state[j+3]];t=s0^s1>>>8^s1<<24^s2>>>16^s2<<16^s3>>>24^s3<<8,state[j]=t>>>24&255,state[j+1]=t>>16&255,state[j+2]=t>>8&255,state[j+3]=255&t}}t=state[13],state[13]=state[9],state[9]=state[5],state[5]=state[1],state[1]=t,t=state[14],u=state[10],state[14]=state[6],state[10]=state[2],state[6]=t,state[2]=u,t=state[15],u=state[11],v=state[7],state[15]=state[3],state[11]=t,state[7]=u,state[3]=v;for(let j=0;j<16;++j)state[j]=this._inv_s[state[j]],state[j]^=key[j];return state}_encrypt(input,key){var s=this._s;let t,u,v;var state=new Uint8Array(16);state.set(input);for(let j=0;j<16;++j)state[j]^=key[j];for(let i=1;i<this._cyclesOfRepetition;i++){for(let j=0;j<16;++j)state[j]=s[state[j]];v=state[1],state[1]=state[5],state[5]=state[9],state[9]=state[13],state[13]=v,v=state[2],u=state[6],state[2]=state[10],state[6]=state[14],state[10]=v,state[14]=u,v=state[3],u=state[7],t=state[11],state[3]=state[15],state[7]=v,state[11]=u,state[15]=t;for(let j=0;j<16;j+=4){var s0=state[j+0],s1=state[j+1],s2=state[j+2],s3=state[j+3];t=s0^s1^s2^s3,state[j+0]^=t^this._mixCol[s0^s1],state[j+1]^=t^this._mixCol[s1^s2],state[j+2]^=t^this._mixCol[s2^s3],state[j+3]^=t^this._mixCol[s3^s0]}for(let j=0,k=16*i;j<16;++j,++k)state[j]^=key[k]}for(let j=0;j<16;++j)state[j]=s[state[j]];v=state[1],state[1]=state[5],state[5]=state[9],state[9]=state[13],state[13]=v,v=state[2],u=state[6],state[2]=state[10],state[6]=state[14],state[10]=v,state[14]=u,v=state[3],u=state[7],t=state[11],state[3]=state[15],state[7]=v,state[11]=u,state[15]=t;for(let j=0,k=this._keySize;j<16;++j,++k)state[j]^=key[k];return state}_decryptBlock2(data,finalize){var sourceLength=data.length;let buffer=this.buffer,bufferLength=this.bufferPosition;var result=[];let iv=this.iv;for(let i=0;i<sourceLength;++i)if(buffer[bufferLength]=data[i],!(++bufferLength<16)){var plain=this._decrypt(buffer,this._key);for(let j=0;j<16;++j)plain[j]^=iv[j];iv=buffer,result.push(plain),buffer=new Uint8Array(16),bufferLength=0}if(this.buffer=buffer,this.bufferLength=bufferLength,this.iv=iv,0===result.length)return new Uint8Array(0);let outputLength=16*result.length;if(finalize){var lastBlock=result.at(-1);let psLen=lastBlock[15];if(psLen<=16){for(let i=15,ii=16-psLen;i>=ii;--i)if(lastBlock[i]!==psLen){psLen=0;break}outputLength-=psLen,result[result.length-1]=lastBlock.subarray(0,16-psLen)}}var output=new Uint8Array(outputLength);for(let i=0,j=0,ii=result.length;i<ii;++i,j+=16)output.set(result[i],j);return output}decryptBlock(data,finalize,iv=null){var sourceLength=data.length,buffer=this.buffer;let bufferLength=this.bufferPosition;if(iv)this.iv=iv;else{for(let i=0;bufferLength<16&&i<sourceLength;++i,++bufferLength)buffer[bufferLength]=data[i];if(bufferLength<16)return this.bufferLength=bufferLength,new Uint8Array(0);this.iv=buffer,data=data.subarray(16)}return this.buffer=new Uint8Array(16),this.bufferLength=0,this.decryptBlock=this._decryptBlock2,this.decryptBlock(data,finalize)}encrypt(data,iv){var sourceLength=data.length;let buffer=this.buffer,bufferLength=this.bufferPosition;var result=[];iv=iv||new Uint8Array(16);for(let i=0;i<sourceLength;++i)if(buffer[bufferLength]=data[i],!(++bufferLength<16)){for(let j=0;j<16;++j)buffer[j]^=iv[j];var cipher=this._encrypt(buffer,this._key);result.push(iv=cipher),buffer=new Uint8Array(16),bufferLength=0}if(this.buffer=buffer,this.bufferLength=bufferLength,this.iv=iv,0===result.length)return new Uint8Array(0);var output=new Uint8Array(16*result.length);for(let i=0,j=0,ii=result.length;i<ii;++i,j+=16)output.set(result[i],j);return output}}class AES128Cipher extends AESBaseCipher{constructor(key){super(),this._cyclesOfRepetition=10,this._keySize=160,this._rcon=new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]),this._key=this._expandKey(key)}_expandKey(cipherKey){var s=this._s,rcon=this._rcon,result=new Uint8Array(176);result.set(cipherKey);for(let j=16,i=1;j<176;++i){let t1=result[j-3],t2=result[j-2],t3=result[j-1],t4=result[j-4];t1=s[t1],t2=s[t2],t3=s[t3],t4=s[t4],t1^=rcon[i];for(let n=0;n<4;++n)result[j]=t1^=result[j-16],result[++j]=t2^=result[j-16],result[++j]=t3^=result[j-16],result[++j]=t4^=result[j-16],j++}return result}}class AES256Cipher extends AESBaseCipher{constructor(key){super(),this._cyclesOfRepetition=14,this._keySize=224,this._key=this._expandKey(key)}_expandKey(cipherKey){var s=this._s,result=new Uint8Array(240);result.set(cipherKey);let r=1,t1,t2,t3,t4;for(let j=32,i=1;j<240;++i){j%32==16?(t1=s[t1],t2=s[t2],t3=s[t3],t4=s[t4]):j%32==0&&(t1=result[j-3],t2=result[j-2],t3=result[j-1],t4=result[j-4],t1=s[t1],t2=s[t2],t3=s[t3],t4=s[t4],t1^=r,256<=(r<<=1))&&(r=255&(27^r));for(let n=0;n<4;++n)result[j]=t1^=result[j-32],result[++j]=t2^=result[j-32],result[++j]=t3^=result[j-32],result[++j]=t4^=result[j-32],j++}return result}}class PDF17{checkOwnerPassword(password,ownerValidationSalt,userBytes,ownerPassword){var hashData=new Uint8Array(password.length+56),userBytes=(hashData.set(password,0),hashData.set(ownerValidationSalt,password.length),hashData.set(userBytes,password.length+ownerValidationSalt.length),calculateSHA256(hashData,0,hashData.length));return isArrayEqual(userBytes,ownerPassword)}checkUserPassword(password,userValidationSalt,userPassword){var hashData=new Uint8Array(password.length+8),userValidationSalt=(hashData.set(password,0),hashData.set(userValidationSalt,password.length),calculateSHA256(hashData,0,hashData.length));return isArrayEqual(userValidationSalt,userPassword)}getOwnerKey(password,ownerKeySalt,userBytes,ownerEncryption){var hashData=new Uint8Array(password.length+56),userBytes=(hashData.set(password,0),hashData.set(ownerKeySalt,password.length),hashData.set(userBytes,password.length+ownerKeySalt.length),calculateSHA256(hashData,0,hashData.length));return new AES256Cipher(userBytes).decryptBlock(ownerEncryption,!1,new Uint8Array(16))}getUserKey(password,userKeySalt,userEncryption){var hashData=new Uint8Array(password.length+8),userKeySalt=(hashData.set(password,0),hashData.set(userKeySalt,password.length),calculateSHA256(hashData,0,hashData.length));return new AES256Cipher(userKeySalt).decryptBlock(userEncryption,!1,new Uint8Array(16))}}class PDF20{_hash(password,input,userBytes){let k=calculateSHA256(input,0,input.length).subarray(0,32),e=[0],i=0;for(;i<64||e.at(-1)>i-32;){var combinedLength=password.length+k.length+userBytes.length,combinedArray=new Uint8Array(combinedLength),writeOffset=0,k1=(combinedArray.set(password,0),writeOffset+=password.length,combinedArray.set(k,writeOffset),writeOffset+=k.length,combinedArray.set(userBytes,writeOffset),new Uint8Array(64*combinedLength));for(let j=0,pos=0;j<64;j++,pos+=combinedLength)k1.set(combinedArray,pos);writeOffset=new AES128Cipher(k.subarray(0,16)),writeOffset=(e=writeOffset.encrypt(k1,k.subarray(16,32))).slice(0,16).reduce((a,b)=>a+b,0)%3;0==writeOffset?k=calculateSHA256(e,0,e.length):1==writeOffset?k=calculateSHA384(e,0,e.length):2==writeOffset&&(k=calculateSHA512(e,0,e.length)),i++}return k.subarray(0,32)}checkOwnerPassword(password,ownerValidationSalt,userBytes,ownerPassword){var hashData=new Uint8Array(password.length+56),ownerValidationSalt=(hashData.set(password,0),hashData.set(ownerValidationSalt,password.length),hashData.set(userBytes,password.length+ownerValidationSalt.length),this._hash(password,hashData,userBytes));return isArrayEqual(ownerValidationSalt,ownerPassword)}checkUserPassword(password,userValidationSalt,userPassword){var hashData=new Uint8Array(password.length+8),userValidationSalt=(hashData.set(password,0),hashData.set(userValidationSalt,password.length),this._hash(password,hashData,[]));return isArrayEqual(userValidationSalt,userPassword)}getOwnerKey(password,ownerKeySalt,userBytes,ownerEncryption){var hashData=new Uint8Array(password.length+56),ownerKeySalt=(hashData.set(password,0),hashData.set(ownerKeySalt,password.length),hashData.set(userBytes,password.length+ownerKeySalt.length),this._hash(password,hashData,userBytes));return new AES256Cipher(ownerKeySalt).decryptBlock(ownerEncryption,!1,new Uint8Array(16))}getUserKey(password,userKeySalt,userEncryption){var hashData=new Uint8Array(password.length+8),userKeySalt=(hashData.set(password,0),hashData.set(userKeySalt,password.length),this._hash(password,hashData,[]));return new AES256Cipher(userKeySalt).decryptBlock(userEncryption,!1,new Uint8Array(16))}}class CipherTransform{constructor(stringCipherConstructor,streamCipherConstructor){this.StringCipherConstructor=stringCipherConstructor,this.StreamCipherConstructor=streamCipherConstructor}createStream(stream,length){const cipher=new this.StreamCipherConstructor;return new DecryptStream(stream,length,function(data,finalize){return cipher.decryptBlock(data,finalize)})}decryptString(s){var cipher=new this.StringCipherConstructor,s=stringToBytes(s);return bytesToString(cipher.decryptBlock(s,!0))}encryptString(s){var cipher=new this.StringCipherConstructor;if(cipher instanceof AESBaseCipher){var pad=16-s.length%16,iv=(s+=String.fromCharCode(pad).repeat(pad),new Uint8Array(16));if("undefined"!=typeof crypto)crypto.getRandomValues(iv);else for(let i=0;i<16;i++)iv[i]=Math.floor(256*Math.random());let data=stringToBytes(s);data=cipher.encrypt(data,iv);pad=new Uint8Array(16+data.length);return pad.set(iv),pad.set(data,16),bytesToString(pad)}pad=stringToBytes(s);return bytesToString(cipher.encrypt(pad))}}class CipherTransformFactory{static#defaultPasswordBytes=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);#createEncryptionKey20(revision,password,ownerPassword,ownerValidationSalt,ownerKeySalt,uBytes,userPassword,userValidationSalt,userKeySalt,ownerEncryption,userEncryption,perms){password=password?(passwordLength=Math.min(127,password.length),password.subarray(0,passwordLength)):[];var passwordLength=new(6===revision?PDF20:PDF17);return passwordLength.checkUserPassword(password,userValidationSalt,userPassword)?passwordLength.getUserKey(password,userKeySalt,userEncryption):password.length&&passwordLength.checkOwnerPassword(password,ownerValidationSalt,uBytes,ownerPassword)?passwordLength.getOwnerKey(password,ownerKeySalt,uBytes,ownerEncryption):null}#prepareKeyData(fileId,password,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata){var hashDataSize=40+ownerPassword.length+fileId.length,hashData=new Uint8Array(hashDataSize);let i=0,j,n;if(password)for(n=Math.min(32,password.length);i<n;++i)hashData[i]=password[i];for(j=0;i<32;)hashData[i++]=CipherTransformFactory.#defaultPasswordBytes[j++];for(j=0,n=ownerPassword.length;j<n;++j)hashData[i++]=ownerPassword[j];for(hashData[i++]=255&flags,hashData[i++]=flags>>8&255,hashData[i++]=flags>>16&255,hashData[i++]=flags>>>24&255,j=0,n=fileId.length;j<n;++j)hashData[i++]=fileId[j];4<=revision&&!encryptMetadata&&(hashData[i++]=255,hashData[i++]=255,hashData[i++]=255,hashData[i++]=255);let hash=calculateMD5(hashData,0,i);var keyLengthInBytes=keyLength>>3;if(3<=revision)for(j=0;j<50;++j)hash=calculateMD5(hash,0,keyLengthInBytes);var encryptionKey=hash.subarray(0,keyLengthInBytes);let cipher,checkData;if(3<=revision){for(i=0;i<32;++i)hashData[i]=CipherTransformFactory.#defaultPasswordBytes[i];for(j=0,n=fileId.length;j<n;++j)hashData[i++]=fileId[j];cipher=new ARCFourCipher(encryptionKey),checkData=cipher.encryptBlock(calculateMD5(hashData,0,i)),n=encryptionKey.length;var derivedKey=new Uint8Array(n);for(j=1;j<=19;++j){for(let k=0;k<n;++k)derivedKey[k]=encryptionKey[k]^j;cipher=new ARCFourCipher(derivedKey),checkData=cipher.encryptBlock(checkData)}for(j=0,n=checkData.length;j<n;++j)if(userPassword[j]!==checkData[j])return null}else for(cipher=new ARCFourCipher(encryptionKey),checkData=cipher.encryptBlock(CipherTransformFactory.#defaultPasswordBytes),j=0,n=checkData.length;j<n;++j)if(userPassword[j]!==checkData[j])return null;return encryptionKey}#decodeUserPassword(password,ownerPassword,revision,keyLength){var hashData=new Uint8Array(32);let i=0;for(var n=Math.min(32,password.length);i<n;++i)hashData[i]=password[i];let j=0;for(;i<32;)hashData[i++]=CipherTransformFactory.#defaultPasswordBytes[j++];let hash=calculateMD5(hashData,0,i);var keyLengthInBytes=keyLength>>3;if(3<=revision)for(j=0;j<50;++j)hash=calculateMD5(hash,0,hash.length);let cipher,userPassword;if(3<=revision){userPassword=ownerPassword;var derivedKey=new Uint8Array(keyLengthInBytes);for(j=19;0<=j;j--){for(let k=0;k<keyLengthInBytes;++k)derivedKey[k]=hash[k]^j;cipher=new ARCFourCipher(derivedKey),userPassword=cipher.encryptBlock(userPassword)}}else cipher=new ARCFourCipher(hash.subarray(0,keyLengthInBytes)),userPassword=cipher.encryptBlock(ownerPassword);return userPassword}#buildObjectKey(num,gen,encryptionKey,isAes=!1){var key=new Uint8Array(encryptionKey.length+9),n=encryptionKey.length;let i;for(i=0;i<n;++i)key[i]=encryptionKey[i];return key[i++]=255&num,key[i++]=num>>8&255,key[i++]=num>>16&255,key[i++]=255&gen,key[i++]=gen>>8&255,isAes&&(key[i++]=115,key[i++]=65,key[i++]=108,key[i++]=84),calculateMD5(key,0,i).subarray(0,Math.min(encryptionKey.length+5,16))}#buildCipherConstructor(cf,name,num,gen,key){if(!(name instanceof Name))throw new FormatError("Invalid crypt filter name.");const self=this;cf=cf.get(name.name)?.get("CFM");if(!cf||"None"===cf.name)return function(){return new NullCipher};if("V2"===cf.name)return function(){return new ARCFourCipher(self.#buildObjectKey(num,gen,key,!1))};if("AESV2"===cf.name)return function(){return new AES128Cipher(self.#buildObjectKey(num,gen,key,!0))};if("AESV3"===cf.name)return function(){return new AES256Cipher(key)};throw new FormatError("Unknown crypto method")}constructor(dict,fileId,password){var filter=dict.get("Filter");if(!isName(filter,"Standard"))throw new FormatError("unknown encryption method");this.filterName=filter.name;filter=(this.dict=dict).get("V");if(!Number.isInteger(filter)||1!==filter&&2!==filter&&4!==filter&&5!==filter)throw new FormatError("unsupported encryption algorithm");this.algorithm=filter;let keyLength=dict.get("Length");if(keyLength||(filter<=3?keyLength=40:(cfDict=dict.get("CF"),streamCryptoName=dict.get("StmF"),cfDict instanceof Dict&&streamCryptoName instanceof Name&&(cfDict.suppressEncryption=!0,cfDict=cfDict.get(streamCryptoName.name),(keyLength=cfDict?.get("Length")||128)<40)&&(keyLength<<=3))),!Number.isInteger(keyLength)||keyLength<40||keyLength%8!=0)throw new FormatError("invalid key length");var uBytes,userValidationSalt,ownerEncryption,userEncryption,perms,ownerValidationSalt,streamCryptoName=stringToBytes(dict.get("O")),cfDict=stringToBytes(dict.get("U")),ownerPassword=streamCryptoName.subarray(0,32),userPassword=cfDict.subarray(0,32),flags=dict.get("P"),revision=dict.get("R"),encryptMetadata=(4===filter||5===filter)&&!1!==dict.get("EncryptMetadata"),fileId=(this.encryptMetadata=encryptMetadata,stringToBytes(fileId));let passwordBytes;if(password){if(6===revision)try{password=utf8StringToString(password)}catch{warn("CipherTransformFactory: Unable to convert UTF8 encoded password.")}passwordBytes=stringToBytes(password)}let encryptionKey;if(!(encryptionKey=5!==filter?this.#prepareKeyData(fileId,passwordBytes,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata):(ownerValidationSalt=streamCryptoName.subarray(32,40),streamCryptoName=streamCryptoName.subarray(40,48),uBytes=cfDict.subarray(0,48),userValidationSalt=cfDict.subarray(32,40),cfDict=cfDict.subarray(40,48),ownerEncryption=stringToBytes(dict.get("OE")),userEncryption=stringToBytes(dict.get("UE")),perms=stringToBytes(dict.get("Perms")),this.#createEncryptionKey20(revision,passwordBytes,ownerPassword,ownerValidationSalt,streamCryptoName,uBytes,userPassword,userValidationSalt,cfDict,ownerEncryption,userEncryption,perms)))&&!password)throw new PasswordException("No password given",PasswordResponses.NEED_PASSWORD);if(!encryptionKey&&password&&(ownerValidationSalt=this.#decodeUserPassword(passwordBytes,ownerPassword,revision,keyLength),encryptionKey=this.#prepareKeyData(fileId,ownerValidationSalt,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata)),!encryptionKey)throw new PasswordException("Incorrect Password",PasswordResponses.INCORRECT_PASSWORD);this.encryptionKey=encryptionKey,4<=filter&&((streamCryptoName=dict.get("CF"))instanceof Dict&&(streamCryptoName.suppressEncryption=!0),this.cf=streamCryptoName,this.stmf=dict.get("StmF")||Name.get("Identity"),this.strf=dict.get("StrF")||Name.get("Identity"),this.eff=dict.get("EFF")||this.stmf)}createCipherTransform(num,gen){if(4===this.algorithm||5===this.algorithm)return new CipherTransform(this.#buildCipherConstructor(this.cf,this.strf,num,gen,this.encryptionKey),this.#buildCipherConstructor(this.cf,this.stmf,num,gen,this.encryptionKey));const key=this.#buildObjectKey(num,gen,this.encryptionKey,!1);function cipherConstructor(){return new ARCFourCipher(key)}return new CipherTransform(cipherConstructor,cipherConstructor)}}async function writeObject(ref,obj,buffer,{encrypt=null}){encrypt=encrypt?.createCipherTransform(ref.num,ref.gen);buffer.push(`${ref.num} ${ref.gen} obj\n`),obj instanceof Dict?await writeDict(obj,buffer,encrypt):obj instanceof BaseStream?await writeStream(obj,buffer,encrypt):(Array.isArray(obj)||ArrayBuffer.isView(obj))&&await writeArray(obj,buffer,encrypt),buffer.push("\nendobj\n")}async function writeDict(dict,buffer,transform){buffer.push("<<");for(const key of dict.getKeys())buffer.push(` /${escapePDFName(key)} `),await writeValue(dict.getRaw(key),buffer,transform);buffer.push(">>")}async function writeStream(stream,buffer,transform){let bytes=stream.getBytes();var stream=stream["dict"],[filter,params]=await Promise.all([stream.getAsync("Filter"),stream.getAsync("DecodeParms")]),isFilterZeroFlateDecode=isName(Array.isArray(filter)?await stream.xref.fetchIfRefAsync(filter[0]):filter,"FlateDecode");if(256<=bytes.length||isFilterZeroFlateDecode)try{var cs=new CompressionStream("deflate"),writer=cs.writable.getWriter(),buf=(writer.write(bytes),writer.close(),await new Response(cs.readable).arrayBuffer());bytes=new Uint8Array(buf);let newFilter,newParams;filter?isFilterZeroFlateDecode||(newFilter=Array.isArray(filter)?[Name.get("FlateDecode"),...filter]:[Name.get("FlateDecode"),filter],params&&(newParams=Array.isArray(params)?[null,...params]:[null,params])):newFilter=Name.get("FlateDecode"),newFilter&&stream.set("Filter",newFilter),newParams&&stream.set("DecodeParms",newParams)}catch(ex){info(`writeStream - cannot compress data: "${ex}".`)}let string=bytesToString(bytes);transform&&(string=transform.encryptString(string)),stream.set("Length",string.length),await writeDict(stream,buffer,transform),buffer.push(" stream\n",string,"\nendstream")}async function writeArray(array,buffer,transform){buffer.push("[");let first=!0;for(const val of array)first?first=!1:buffer.push(" "),await writeValue(val,buffer,transform);buffer.push("]")}async function writeValue(value,buffer,transform){value instanceof Name?buffer.push("/"+escapePDFName(value.name)):value instanceof Ref?buffer.push(`${value.num} ${value.gen} R`):Array.isArray(value)||ArrayBuffer.isView(value)?await writeArray(value,buffer,transform):"string"==typeof value?(transform&&(value=transform.encryptString(value)),buffer.push(`(${escapeString(value)})`)):"number"==typeof value?buffer.push(numberToString(value)):"boolean"==typeof value?buffer.push(value.toString()):value instanceof Dict?await writeDict(value,buffer,transform):value instanceof BaseStream?await writeStream(value,buffer,transform):null===value?buffer.push("null"):warn(`Unhandled value in writer: ${typeof value}, please file a bug.`)}function writeInt(number,size,offset,buffer){for(let i=size+offset-1;i>offset-1;i--)buffer[i]=255&number,number>>=8;return offset+size}function writeString(string,offset,buffer){for(let i=0,len=string.length;i<len;i++)buffer[offset+i]=255&string.charCodeAt(i)}function computeMD5(filesize,xrefInfo){var time=Math.floor(Date.now()/1e3),filename=xrefInfo.filename||"",md5Buffer=[time.toString(),filename,filesize.toString()];let md5BufferLen=md5Buffer.reduce((a,str)=>a+str.length,0);for(const value of Object.values(xrefInfo.info))md5Buffer.push(value),md5BufferLen+=value.length;var array=new Uint8Array(md5BufferLen);let offset=0;for(const str of md5Buffer)writeString(str,offset,array),offset+=str.length;return bytesToString(calculateMD5(array))}function writeXFADataForAcroform(str,newRefs){var xfa,xml=new SimpleXMLParser({hasAttributes:!0}).parseFromString(str);for({xfa}of newRefs)if(xfa){var{path,value}=xfa;if(path){var nodePath=parseXFAPath(path);let node=xml.documentElement.searchNode(nodePath,0);(node=!node&&1<nodePath.length?xml.documentElement.searchNode([nodePath.at(-1)],0):node)?node.childNodes=Array.isArray(value)?value.map(val=>new SimpleDOMNode("value",val)):[new SimpleDOMNode("#text",value)]:warn("Node not found for path: "+path)}}str=[];return xml.documentElement.dump(str),str.join("")}async function updateAcroform({xref,acroForm,acroFormRef,hasXfa,hasXfaDatasetsEntry,xfaDatasetsRef,needAppearances,newRefs}){var dict;!hasXfa||hasXfaDatasetsEntry||xfaDatasetsRef||warn("XFA - Cannot save it"),(needAppearances||hasXfa&&xfaDatasetsRef&&!hasXfaDatasetsEntry)&&(dict=acroForm.clone(),hasXfa&&!hasXfaDatasetsEntry&&((hasXfa=acroForm.get("XFA").slice()).splice(2,0,"datasets"),hasXfa.splice(3,0,xfaDatasetsRef),dict.set("XFA",hasXfa)),needAppearances&&dict.set("NeedAppearances",!0),await writeObject(acroFormRef,dict,hasXfaDatasetsEntry=[],xref),newRefs.push({ref:acroFormRef,data:hasXfaDatasetsEntry.join("")}))}function updateXFA({xfaData,xfaDatasetsRef,newRefs,xref}){null===xfaData&&(xfaData=writeXFADataForAcroform(xref.fetchIfRef(xfaDatasetsRef).getString(),newRefs));xref=xref.encrypt,xref&&(xfaData=xref.createCipherTransform(xfaDatasetsRef.num,xfaDatasetsRef.gen).encryptString(xfaData)),xref=`${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\n`+`<< /Type /EmbeddedFile /Length ${xfaData.length}>>
- stream
- `+xfaData+"\nendstream\nendobj\n";newRefs.push({ref:xfaDatasetsRef,data:xref})}async function getXRefTable(xrefInfo,baseOffset,newRefs,newXref,buffer){buffer.push("xref\n");var ref,data,indexes=getIndexes(newRefs);let indexesPosition=0;for({ref,data}of newRefs)ref.num===indexes[indexesPosition]&&(buffer.push(`${indexes[indexesPosition]} ${indexes[indexesPosition+1]}\n`),indexesPosition+=2),null!==data?(buffer.push(`${baseOffset.toString().padStart(10,"0")} ${Math.min(ref.gen,65535).toString().padStart(5,"0")} n\r\n`),baseOffset+=data.length):buffer.push(`0000000000 ${Math.min(ref.gen+1,65535).toString().padStart(5,"0")} f\r
- `);computeIDs(baseOffset,xrefInfo,newXref),buffer.push("trailer\n"),await writeDict(newXref,buffer),buffer.push("\nstartxref\n",baseOffset.toString(),"\n%%EOF\n")}function getIndexes(newRefs){var ref,indexes=[];for({ref}of newRefs)ref.num===indexes.at(-2)+indexes.at(-1)?indexes[indexes.length-1]+=1:indexes.push(ref.num,1);return indexes}async function getXRefStreamTable(xrefInfo,baseOffset,newRefs,newXref,buffer){var xrefTableData=[];let maxOffset=0,maxGen=0;for(const{ref,data}of newRefs){let gen;maxOffset=Math.max(maxOffset,baseOffset),null!==data?(gen=Math.min(ref.gen,65535),xrefTableData.push([1,baseOffset,gen]),baseOffset+=data.length):(gen=Math.min(ref.gen+1,65535),xrefTableData.push([0,0,gen])),maxGen=Math.max(maxGen,gen)}newXref.set("Index",getIndexes(newRefs));var sizes=[1,getSizeInBytes(maxOffset),getSizeInBytes(maxGen)],newRefs=(newXref.set("W",sizes),computeIDs(baseOffset,xrefInfo,newXref),sizes.reduce((a,x)=>a+x,0));const data=new Uint8Array(newRefs*xrefTableData.length);var type,objOffset,gen,newRefs=new Stream(data);newRefs.dict=newXref;let offset=0;for([type,objOffset,gen]of xrefTableData)offset=writeInt(type,sizes[0],offset,data),offset=writeInt(objOffset,sizes[1],offset,data),offset=writeInt(gen,sizes[2],offset,data);await writeObject(xrefInfo.newRef,newRefs,buffer,{}),buffer.push("startxref\n",baseOffset.toString(),"\n%%EOF\n")}function computeIDs(baseOffset,xrefInfo,newXref){Array.isArray(xrefInfo.fileIds)&&0<xrefInfo.fileIds.length&&(baseOffset=computeMD5(baseOffset,xrefInfo),newXref.set("ID",[xrefInfo.fileIds[0],baseOffset]))}function getTrailerDict(xrefInfo,newRefs,useXrefStream){var newXref=new Dict(null),refForXrefTable=(newXref.set("Prev",xrefInfo.startXRef),xrefInfo.newRef);return useXrefStream?(newRefs.push({ref:refForXrefTable,data:""}),newXref.set("Size",refForXrefTable.num+1),newXref.set("Type",Name.get("XRef"))):newXref.set("Size",refForXrefTable.num),null!==xrefInfo.rootRef&&newXref.set("Root",xrefInfo.rootRef),null!==xrefInfo.infoRef&&newXref.set("Info",xrefInfo.infoRef),null!==xrefInfo.encryptRef&&newXref.set("Encrypt",xrefInfo.encryptRef),newXref}async function incrementalUpdate({originalData,xrefInfo,newRefs,xref=null,hasXfa=!1,xfaDatasetsRef=null,hasXfaDatasetsEntry=!1,needAppearances,acroFormRef=null,acroForm=null,xfaData=null,useXrefStream=!1}){await updateAcroform({xref:xref,acroForm:acroForm,acroFormRef:acroFormRef,hasXfa:hasXfa,hasXfaDatasetsEntry:hasXfaDatasetsEntry,xfaDatasetsRef:xfaDatasetsRef,needAppearances:needAppearances,newRefs:newRefs}),hasXfa&&updateXFA({xfaData:xfaData,xfaDatasetsRef:xfaDatasetsRef,newRefs:newRefs,xref:xref});var buffer=[];let baseOffset=originalData.length;var data,acroForm=originalData.at(-1),acroFormRef=(10!==acroForm&&13!==acroForm&&(buffer.push("\n"),baseOffset+=1),getTrailerDict(xrefInfo,newRefs,useXrefStream));for({data}of newRefs=newRefs.sort((a,b)=>a.ref.num-b.ref.num))null!==data&&buffer.push(data);await(useXrefStream?getXRefStreamTable:getXRefTable)(xrefInfo,baseOffset,newRefs,acroFormRef,buffer);var hasXfaDatasetsEntry=buffer.reduce((a,str)=>a+str.length,originalData.length),array=new Uint8Array(hasXfaDatasetsEntry);array.set(originalData);let offset=originalData.length;for(const str of buffer)writeString(str,offset,array),offset+=str.length;return array}const MAX_DEPTH=40,StructElementType={PAGE_CONTENT:1,STREAM_CONTENT:2,OBJECT:3,ANNOTATION:4,ELEMENT:5};class StructTreeRoot{constructor(rootDict,rootRef){this.dict=rootDict,this.ref=rootRef instanceof Ref?rootRef:null,this.roleMap=new Map,this.structParentIds=null}init(){this.readRoleMap()}#addIdToPage(pageRef,id,type){if(pageRef instanceof Ref&&!(id<0)){this.structParentIds||=new RefSetCache;let ids=this.structParentIds.get(pageRef);ids||(ids=[],this.structParentIds.put(pageRef,ids)),ids.push([id,type])}}addAnnotationIdToPage(pageRef,id){this.#addIdToPage(pageRef,id,StructElementType.ANNOTATION)}readRoleMap(){var roleMapDict=this.dict.get("RoleMap");roleMapDict instanceof Dict&&roleMapDict.forEach((key,value)=>{value instanceof Name&&this.roleMap.set(key,value.name)})}static async canCreateStructureTree({catalogRef,pdfManager,newAnnotationsByPage}){if(!(catalogRef instanceof Ref))return warn("Cannot save the struct tree: no catalog reference."),!1;let nextKey=0,hasNothingToUpdate=!0;for(var[pageIndex,elements]of newAnnotationsByPage){var pageRef=(await pdfManager.getPage(pageIndex))["ref"];if(!(pageRef instanceof Ref)){warn(`Cannot save the struct tree: page ${pageIndex} has no ref.`),hasNothingToUpdate=!0;break}for(const element of elements)element.accessibilityData?.type&&(element.parentTreeId=nextKey++,hasNothingToUpdate=!1)}if(hasNothingToUpdate){for(const elements of newAnnotationsByPage.values())for(const element of elements)delete element.parentTreeId;return!1}return!0}static async createStructureTree({newAnnotationsByPage,xref,catalogRef,pdfManager,newRefs}){var ref,obj,root=pdfManager.catalog.cloneDict(),cache=new RefSetCache,catalogRef=(cache.put(catalogRef,root),xref.getNewTemporaryRef()),root=(root.set("StructTreeRoot",catalogRef),new Dict(xref)),parentTreeRef=(root.set("Type",Name.get("StructTreeRoot")),xref.getNewTemporaryRef()),kids=(root.set("ParentTree",parentTreeRef),[]),parentTree=(root.set("K",kids),cache.put(catalogRef,root),new Dict(xref)),nums=[],newAnnotationsByPage=(parentTree.set("Nums",nums),await this.#writeKids({newAnnotationsByPage:newAnnotationsByPage,structTreeRootRef:catalogRef,kids:kids,nums:nums,xref:xref,pdfManager:pdfManager,cache:cache})),buffer=(root.set("ParentTreeNextKey",newAnnotationsByPage),cache.put(parentTreeRef,parentTree),[]);for([ref,obj]of cache.items())buffer.length=0,await writeObject(ref,obj,buffer,xref),newRefs.push({ref:ref,data:buffer.join("")})}async canUpdateStructTree({pdfManager,xref,newAnnotationsByPage}){if(!this.ref)return warn("Cannot update the struct tree: no root reference."),!1;let nextKey=this.dict.get("ParentTreeNextKey");if(!Number.isInteger(nextKey)||nextKey<0)return warn("Cannot update the struct tree: invalid next key."),!1;var parentTree=this.dict.get("ParentTree");if(!(parentTree instanceof Dict))return warn("Cannot update the struct tree: ParentTree isn't a dict."),!1;var nums=parentTree.get("Nums");if(!Array.isArray(nums))return warn("Cannot update the struct tree: nums isn't an array."),!1;var pageIndex,elements,numberTree=new NumberTree(parentTree,xref);for(const pageIndex of newAnnotationsByPage.keys()){var pageDict=(await pdfManager.getPage(pageIndex))["pageDict"];if(pageDict.has("StructParents")){pageDict=pageDict.get("StructParents");if(!Number.isInteger(pageDict)||!Array.isArray(numberTree.get(pageDict)))return warn(`Cannot save the struct tree: page ${pageIndex} has a wrong id.`),!1}}let hasNothingToUpdate=!0;for([pageIndex,elements]of newAnnotationsByPage){const pageDict=(await pdfManager.getPage(pageIndex))["pageDict"];StructTreeRoot.#collectParents({elements:elements,xref:this.dict.xref,pageDict:pageDict,numberTree:numberTree});for(const element of elements)element.accessibilityData?.type&&(element.parentTreeId=nextKey++,hasNothingToUpdate=!1)}if(hasNothingToUpdate){for(const elements of newAnnotationsByPage.values())for(const element of elements)delete element.parentTreeId,delete element.structTreeParent;return!1}return!0}async updateStructureTree({newAnnotationsByPage,pdfManager,newRefs}){var xref=this.dict.xref,structTreeRoot=this.dict.clone(),structTreeRootRef=this.ref,cache=new RefSetCache;cache.put(structTreeRootRef,structTreeRoot);let parentTreeRef=structTreeRoot.getRaw("ParentTree"),parentTree,nums=(parentTreeRef instanceof Ref?parentTree=xref.fetch(parentTreeRef):(parentTree=parentTreeRef,parentTreeRef=xref.getNewTemporaryRef(),structTreeRoot.set("ParentTree",parentTreeRef)),parentTree=parentTree.clone(),cache.put(parentTreeRef,parentTree),parentTree.getRaw("Nums")),numsRef=null;nums instanceof Ref&&(numsRef=nums,nums=xref.fetch(numsRef)),nums=nums.slice(),numsRef||parentTree.set("Nums",nums);var ref,obj,newAnnotationsByPage=await StructTreeRoot.#writeKids({newAnnotationsByPage:newAnnotationsByPage,structTreeRootRef:structTreeRootRef,kids:null,nums:nums,xref:xref,pdfManager:pdfManager,cache:cache}),buffer=(structTreeRoot.set("ParentTreeNextKey",newAnnotationsByPage),numsRef&&cache.put(numsRef,nums),[]);for([ref,obj]of cache.items())buffer.length=0,await writeObject(ref,obj,buffer,xref),newRefs.push({ref:ref,data:buffer.join("")})}static async#writeKids({newAnnotationsByPage,structTreeRootRef,kids,nums,xref,pdfManager,cache}){var pageIndex,elements,objr=Name.get("OBJR");let nextKey=-1/0;for([pageIndex,elements]of newAnnotationsByPage){var accessibilityData,ref,parentTreeId,structTreeParent,title,lang,alt,expanded,actualText,tagRef,tagDict,type,pageRef=(await pdfManager.getPage(pageIndex))["ref"],isPageRef=pageRef instanceof Ref;for({accessibilityData,ref,parentTreeId,structTreeParent}of elements)accessibilityData?.type&&({type,title,lang,alt,expanded,actualText}=accessibilityData,nextKey=Math.max(nextKey,parentTreeId),tagRef=xref.getNewTemporaryRef(),(tagDict=new Dict(xref)).set("S",Name.get(type)),title&&tagDict.set("T",title),lang&&tagDict.set("Lang",lang),alt&&tagDict.set("Alt",alt),expanded&&tagDict.set("E",expanded),actualText&&tagDict.set("ActualText",actualText),await this.#updateParentTag({structTreeParent:structTreeParent,tagDict:tagDict,newTagRef:tagRef,structTreeRootRef:structTreeRootRef,fallbackKids:kids,xref:xref,cache:cache}),type=new Dict(xref),tagDict.set("K",type),type.set("Type",objr),isPageRef&&type.set("Pg",pageRef),type.set("Obj",ref),cache.put(tagRef,tagDict),nums.push(parentTreeId,tagRef))}return nextKey+1}static#collectParents({elements,xref,pageDict,numberTree}){const idToElements=new Map;for(const element of elements)if(element.structTreeParentId){const id=parseInt(element.structTreeParentId.split("_mc")[1],10);let elems=idToElements.get(id);elems||(elems=[],idToElements.set(id,elems)),elems.push(element)}const id=pageDict.get("StructParents");if(Number.isInteger(id)){var updateElement=(kid,pageKid,kidRef)=>{kid=idToElements.get(kid);if(kid){var parentRef=pageKid.getRaw("P"),parentDict=xref.fetchIfRef(parentRef);if(parentRef instanceof Ref&&parentDict instanceof Dict){var params={ref:kidRef,dict:pageKid};for(const element of kid)element.structTreeParent=params}return!0}return!1};for(const kidRef of numberTree.get(id))if(kidRef instanceof Ref){var pageKid=xref.fetch(kidRef),k=pageKid.get("K");if(Number.isInteger(k))updateElement(k,pageKid,kidRef);else if(Array.isArray(k))for(var kid of k){if(kid=xref.fetchIfRef(kid),Number.isInteger(kid)&&updateElement(kid,pageKid,kidRef))break;if(kid instanceof Dict){if(!isName(kid.get("Type"),"MCR"))break;kid=kid.get("MCID");if(Number.isInteger(kid)&&updateElement(kid,pageKid,kidRef))break}}}}}static async#updateParentTag({structTreeParent,tagDict,newTagRef,structTreeRootRef,fallbackKids,xref,cache}){let ref=null,parentRef;parentRef=structTreeParent&&({ref}=structTreeParent,structTreeParent.dict.getRaw("P"))||structTreeRootRef,tagDict.set("P",parentRef);structTreeParent=xref.fetchIfRef(parentRef);if(structTreeParent){let cachedParentDict=cache.get(parentRef);cachedParentDict||(cachedParentDict=structTreeParent.clone(),cache.put(parentRef,cachedParentDict));structTreeRootRef=cachedParentDict.getRaw("K");let cachedParentKids=structTreeRootRef instanceof Ref?cache.get(structTreeRootRef):null;cachedParentKids||(cachedParentKids=xref.fetchIfRef(structTreeRootRef),cachedParentKids=Array.isArray(cachedParentKids)?cachedParentKids.slice():[structTreeRootRef],tagDict=xref.getNewTemporaryRef(),cachedParentDict.set("K",tagDict),cache.put(tagDict,cachedParentKids));structTreeParent=cachedParentKids.indexOf(ref);cachedParentKids.splice(0<=structTreeParent?structTreeParent+1:cachedParentKids.length,0,newTagRef)}else fallbackKids.push(newTagRef)}}class StructElementNode{constructor(tree,dict){this.tree=tree,this.dict=dict,this.kids=[],this.parseKids()}get role(){var nameObj=this.dict.get("S"),nameObj=nameObj instanceof Name?nameObj.name:"",root=this.tree["root"];return root.roleMap.has(nameObj)?root.roleMap.get(nameObj):nameObj}parseKids(){let pageObjId=null;var objRef=this.dict.getRaw("Pg"),objRef=(objRef instanceof Ref&&(pageObjId=objRef.toString()),this.dict.get("K"));if(Array.isArray(objRef))for(const kid of objRef){var element=this.parseKid(pageObjId,kid);element&&this.kids.push(element)}else{const element=this.parseKid(pageObjId,objRef);element&&this.kids.push(element)}}parseKid(pageObjId,kid){if(Number.isInteger(kid))return this.tree.pageDict.objId!==pageObjId?null:new StructElement({type:StructElementType.PAGE_CONTENT,mcid:kid,pageObjId:pageObjId});let kidDict=null;if(kid instanceof Ref?kidDict=this.dict.xref.fetch(kid):kid instanceof Dict&&(kidDict=kid),!kidDict)return null;var kidRef,kid=kidDict.getRaw("Pg"),kid=(kid instanceof Ref&&(pageObjId=kid.toString()),kidDict.get("Type")instanceof Name?kidDict.get("Type").name:null);if("MCR"===kid)return this.tree.pageDict.objId!==pageObjId?null:(kidRef=kidDict.getRaw("Stm"),new StructElement({type:StructElementType.STREAM_CONTENT,refObjId:kidRef instanceof Ref?kidRef.toString():null,pageObjId:pageObjId,mcid:kidDict.get("MCID")}));if("OBJR"!==kid)return new StructElement({type:StructElementType.ELEMENT,dict:kidDict});{if(this.tree.pageDict.objId!==pageObjId)return null;const kidRef=kidDict.getRaw("Obj");return new StructElement({type:StructElementType.OBJECT,refObjId:kidRef instanceof Ref?kidRef.toString():null,pageObjId:pageObjId})}}}class StructElement{constructor({type,dict=null,mcid=null,pageObjId=null,refObjId=null}){this.type=type,this.dict=dict,this.mcid=mcid,this.pageObjId=pageObjId,this.refObjId=refObjId,this.parentNode=null}}class StructTreePage{constructor(structTreeRoot,pageDict){this.root=structTreeRoot,this.rootDict=structTreeRoot?structTreeRoot.dict:null,this.pageDict=pageDict,this.nodes=[]}parse(pageRef){if(this.root&&this.rootDict){var parentTree=this.rootDict.get("ParentTree");if(parentTree){var id=this.pageDict.get("StructParents"),pageRef=pageRef instanceof Ref&&this.root.structParentIds?.get(pageRef);if(Number.isInteger(id)||pageRef){var map=new Map,numberTree=new NumberTree(parentTree,this.rootDict.xref);if(Number.isInteger(id)){parentTree=numberTree.get(id);if(Array.isArray(parentTree))for(const ref of parentTree)ref instanceof Ref&&this.addNode(this.rootDict.xref.fetch(ref),map)}if(pageRef)for(var[elemId,type]of pageRef){var elemId=numberTree.get(elemId);elemId&&1===(elemId=this.addNode(this.rootDict.xref.fetchIfRef(elemId),map))?.kids?.length&&elemId.kids[0].type===StructElementType.OBJECT&&(elemId.kids[0].type=type)}}}}}addNode(dict,map,level=0){if(level>MAX_DEPTH)return warn("StructTree MAX_DEPTH reached."),null;if(map.has(dict))return map.get(dict);var element=new StructElementNode(this,dict),parent=(map.set(dict,element),dict.get("P"));if(!parent||isName(parent.get("Type"),"StructTreeRoot"))this.addTopLevelNode(dict,element)||map.delete(dict);else{parent=this.addNode(parent,map,level+1);if(parent){let save=!1;for(const kid of parent.kids)kid.type===StructElementType.ELEMENT&&kid.dict===dict&&(kid.parentNode=element,save=!0);save||map.delete(dict)}}return element}addTopLevelNode(dict,element){var obj=this.rootDict.get("K");if(!obj)return!1;if(obj instanceof Dict)return obj.objId===dict.objId&&(this.nodes[0]=element,!0);if(!Array.isArray(obj))return!0;let save=!1;for(let i=0;i<obj.length;i++)obj[i]?.toString()===dict.objId&&(this.nodes[i]=element,save=!0);return save}get serializable(){var root=Object.create(null);root.children=[],root.role="Root";for(const child of this.nodes)child&&!function nodeToSerializable(node,parent,level=0){if(level>MAX_DEPTH)warn("StructTree too deep to be fully serialized.");else{var obj=Object.create(null);obj.role=node.role,obj.children=[],parent.children.push(obj),"string"==typeof(parent=node.dict.get("Alt"))&&(obj.alt=stringToPDFString(parent)),"string"==typeof(parent=node.dict.get("Lang"))&&(obj.lang=stringToPDFString(parent));for(const kid of node.kids){var kidElement=kid.type===StructElementType.ELEMENT?kid.parentNode:null;kidElement?nodeToSerializable(kidElement,obj,level+1):kid.type===StructElementType.PAGE_CONTENT||kid.type===StructElementType.STREAM_CONTENT?obj.children.push({type:"content",id:`p${kid.pageObjId}_mc`+kid.mcid}):kid.type===StructElementType.OBJECT?obj.children.push({type:"object",id:kid.refObjId}):kid.type===StructElementType.ANNOTATION&&obj.children.push({type:"annotation",id:""+AnnotationPrefix+kid.refObjId})}}}(child,root);return root}}function isValidExplicitDest(dest){if(!Array.isArray(dest)||dest.length<2)return!1;var[dest,zoom,...args]=dest;if(!(dest instanceof Ref||Number.isInteger(dest)))return!1;if(!(zoom instanceof Name))return!1;let allowNull=!0;switch(zoom.name){case"XYZ":if(3!==args.length)return!1;break;case"Fit":case"FitB":return 0===args.length;case"FitH":case"FitBH":case"FitV":case"FitBV":if(1!==args.length)return!1;break;case"FitR":if(4!==args.length)return!1;allowNull=!1;break;default:return!1}for(const arg of args)if(!("number"==typeof arg||allowNull&&null===arg))return!1;return!0}function fetchDest(dest){return isValidExplicitDest(dest=dest instanceof Dict?dest.get("D"):dest)?dest:null}function fetchRemoteDest(action){let dest=action.get("D");if(dest){if("string"==typeof(dest=dest instanceof Name?dest.name:dest))return stringToPDFString(dest);if(isValidExplicitDest(dest))return JSON.stringify(dest)}return null}class Catalog{constructor(pdfManager,xref){if(this.pdfManager=pdfManager,this.xref=xref,this._catDict=xref.getCatalogObj(),!(this._catDict instanceof Dict))throw new FormatError("Catalog object is not a dictionary.");this.toplevelPagesDict,this._actualNumPages=null,this.fontCache=new RefSetCache,this.builtInCMapCache=new Map,this.standardFontDataCache=new Map,this.globalImageCache=new GlobalImageCache,this.pageKidsCountCache=new RefSetCache,this.pageIndexCache=new RefSetCache,this.nonBlendModesSet=new RefSet,this.systemFontCache=new Map}cloneDict(){return this._catDict.clone()}get version(){var version=this._catDict.get("Version");if(version instanceof Name){if(PDF_VERSION_REGEXP.test(version.name))return shadow(this,"version",version.name);warn("Invalid PDF catalog version: "+version.name)}return shadow(this,"version",null)}get lang(){var lang=this._catDict.get("Lang");return shadow(this,"lang","string"==typeof lang?stringToPDFString(lang):null)}get needsRendering(){var needsRendering=this._catDict.get("NeedsRendering");return shadow(this,"needsRendering","boolean"==typeof needsRendering&&needsRendering)}get collection(){let collection=null;try{var obj=this._catDict.get("Collection");obj instanceof Dict&&0<obj.size&&(collection=obj)}catch(ex){if(ex instanceof MissingDataException)throw ex;info("Cannot fetch Collection entry; assuming no collection is present.")}return shadow(this,"collection",collection)}get acroForm(){let acroForm=null;try{var obj=this._catDict.get("AcroForm");obj instanceof Dict&&0<obj.size&&(acroForm=obj)}catch(ex){if(ex instanceof MissingDataException)throw ex;info("Cannot fetch AcroForm entry; assuming no forms are present.")}return shadow(this,"acroForm",acroForm)}get acroFormRef(){var value=this._catDict.getRaw("AcroForm");return shadow(this,"acroFormRef",value instanceof Ref?value:null)}get metadata(){var streamRef=this._catDict.getRaw("Metadata");if(!(streamRef instanceof Ref))return shadow(this,"metadata",null);let metadata=null;try{var type,subtype,data,stream=this.xref.fetch(streamRef,!this.xref.encrypt?.encryptMetadata);stream instanceof BaseStream&&stream.dict instanceof Dict&&(type=stream.dict.get("Type"),subtype=stream.dict.get("Subtype"),isName(type,"Metadata"))&&isName(subtype,"XML")&&(data=stringToUTF8String(stream.getString()))&&(metadata=new MetadataParser(data).serializable)}catch(ex){if(ex instanceof MissingDataException)throw ex;info(`Skipping invalid Metadata: "${ex}".`)}return shadow(this,"metadata",metadata)}get markInfo(){let markInfo=null;try{markInfo=this._readMarkInfo()}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Unable to read mark info.")}return shadow(this,"markInfo",markInfo)}_readMarkInfo(){var obj=this._catDict.get("MarkInfo");if(!(obj instanceof Dict))return null;var markInfo={Marked:!1,UserProperties:!1,Suspects:!1};for(const key in markInfo){var value=obj.get(key);"boolean"==typeof value&&(markInfo[key]=value)}return markInfo}get structTreeRoot(){let structTree=null;try{structTree=this._readStructTreeRoot()}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Unable read to structTreeRoot info.")}return shadow(this,"structTreeRoot",structTree)}_readStructTreeRoot(){var rawObj=this._catDict.getRaw("StructTreeRoot"),obj=this.xref.fetchIfRef(rawObj);return obj instanceof Dict?((obj=new StructTreeRoot(obj,rawObj)).init(),obj):null}get toplevelPagesDict(){var pagesObj=this._catDict.get("Pages");if(pagesObj instanceof Dict)return shadow(this,"toplevelPagesDict",pagesObj);throw new FormatError("Invalid top-level pages dictionary.")}get documentOutline(){let obj=null;try{obj=this._readDocumentOutline()}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Unable to read document outline.")}return shadow(this,"documentOutline",obj)}_readDocumentOutline(){let obj=this._catDict.get("Outlines");if(!(obj instanceof Dict))return null;if(!((obj=obj.getRaw("First"))instanceof Ref))return null;for(var root={items:[]},queue=[{obj:obj,parent:root}],processed=new RefSet,xref=(processed.put(obj),this.xref),blackColor=new Uint8ClampedArray(3);0<queue.length;){var i=queue.shift(),outlineDict=xref.fetchIfRef(i.obj);if(null!==outlineDict){outlineDict.has("Title")||warn("Invalid outline item encountered.");var data={url:null,dest:null,action:null},title=(Catalog.parseDestDictionary({destDict:outlineDict,resultObj:data,docBaseUrl:this.baseUrl,docAttachments:this.attachments}),outlineDict.get("Title")),flags=outlineDict.get("F")||0,color=outlineDict.getArray("C"),count=outlineDict.get("Count");let rgbColor=blackColor;!Array.isArray(color)||3!==color.length||0===color[0]&&0===color[1]&&0===color[2]||(rgbColor=ColorSpace.singletons.rgb.getRgb(color,0));color={action:data.action,attachment:data.attachment,dest:data.dest,url:data.url,unsafeUrl:data.unsafeUrl,newWindow:data.newWindow,setOCGState:data.setOCGState,title:"string"==typeof title?stringToPDFString(title):"",color:rgbColor,count:Number.isInteger(count)?count:void 0,bold:!!(2&flags),italic:!!(1&flags),items:[]};i.parent.items.push(color),(obj=outlineDict.getRaw("First"))instanceof Ref&&!processed.has(obj)&&(queue.push({obj:obj,parent:color}),processed.put(obj)),(obj=outlineDict.getRaw("Next"))instanceof Ref&&!processed.has(obj)&&(queue.push({obj:obj,parent:i.parent}),processed.put(obj))}}return 0<root.items.length?root.items:null}get permissions(){let permissions=null;try{permissions=this._readPermissions()}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Unable to read permissions.")}return shadow(this,"permissions",permissions)}_readPermissions(){var encrypt=this.xref.trailer.get("Encrypt");if(!(encrypt instanceof Dict))return null;var flags=encrypt.get("P");if("number"!=typeof flags)return null;flags+=2**32;var permissions=[];for(const key in PermissionFlag){var value=PermissionFlag[key];flags&value&&permissions.push(value)}return permissions}get optionalContentConfig(){let config=null;try{var properties=this._catDict.get("OCProperties");if(!properties)return shadow(this,"optionalContentConfig",null);var defaultConfig=properties.get("D");if(!defaultConfig)return shadow(this,"optionalContentConfig",null);var groupsData=properties.get("OCGs");if(!Array.isArray(groupsData))return shadow(this,"optionalContentConfig",null);var groups=[],groupRefs=new RefSet;for(const groupRef of groupsData)groupRef instanceof Ref&&!groupRefs.has(groupRef)&&(groupRefs.put(groupRef),groups.push(this.#readOptionalContentGroup(groupRef)));(config=this.#readOptionalContentConfig(defaultConfig,groupRefs)).groups=groups}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Unable to read optional content config: "+ex)}return shadow(this,"optionalContentConfig",config)}#readOptionalContentGroup(groupRef){var group=this.xref.fetch(groupRef),groupRef={id:groupRef.toString(),name:null,intent:null,usage:{print:null,view:null}},name=group.get("Name");"string"==typeof name&&(groupRef.name=stringToPDFString(name));let intent=group.getArray("Intent");(intent=Array.isArray(intent)?intent:[intent]).every(i=>i instanceof Name)&&(groupRef.intent=intent.map(i=>i.name));name=group.get("Usage");if(name instanceof Dict){var usageObj=groupRef.usage,group=name.get("Print");if(group instanceof Dict){var printState=group.get("PrintState");if(printState instanceof Name)switch(printState.name){case"ON":case"OFF":usageObj.print={printState:printState.name}}}group=name.get("View");if(group instanceof Dict){var viewState=group.get("ViewState");if(viewState instanceof Name)switch(viewState.name){case"ON":case"OFF":usageObj.view={viewState:viewState.name}}}}return groupRef}#readOptionalContentConfig(config,contentGroupRefs){function parseOnOff(refs){var onParsed=[];if(Array.isArray(refs))for(const value of refs)value instanceof Ref&&contentGroupRefs.has(value)&&onParsed.push(value.toString());return onParsed}function parseOrder(refs,nestedLevels=0){if(!Array.isArray(refs))return null;var nestedOrder,order=[];for(const value of refs)value instanceof Ref&&contentGroupRefs.has(value)?(parsedOrderRefs.put(value),order.push(value.toString())):(nestedOrder=function(ref,nestedLevels){if(++nestedLevels>MAX_NESTED_LEVELS)return warn("parseNestedOrder - reached MAX_NESTED_LEVELS."),null;ref=xref.fetchIfRef(ref);if(!Array.isArray(ref))return null;var nestedName=xref.fetchIfRef(ref[0]);if("string"!=typeof nestedName)return null;ref=parseOrder(ref.slice(1),nestedLevels);return ref&&ref.length?{name:stringToPDFString(nestedName),order:ref}:null}(value,nestedLevels))&&order.push(nestedOrder);if(!(0<nestedLevels)){var hiddenGroups=[];for(const groupRef of contentGroupRefs)parsedOrderRefs.has(groupRef)||hiddenGroups.push(groupRef.toString());hiddenGroups.length&&order.push({name:null,order:hiddenGroups})}return order}const xref=this.xref,parsedOrderRefs=new RefSet,MAX_NESTED_LEVELS=10;return{name:"string"==typeof config.get("Name")?stringToPDFString(config.get("Name")):null,creator:"string"==typeof config.get("Creator")?stringToPDFString(config.get("Creator")):null,baseState:config.get("BaseState")instanceof Name?config.get("BaseState").name:null,on:parseOnOff(config.get("ON")),off:parseOnOff(config.get("OFF")),order:parseOrder(config.get("Order")),groups:null}}setActualNumPages(num=null){this._actualNumPages=num}get hasActualNumPages(){return null!==this._actualNumPages}get _pagesCount(){var obj=this.toplevelPagesDict.get("Count");if(Number.isInteger(obj))return shadow(this,"_pagesCount",obj);throw new FormatError("Page count in top-level pages dictionary is not an integer.")}get numPages(){return this.hasActualNumPages?this._actualNumPages:this._pagesCount}get destinations(){const obj=this._readDests(),dests=Object.create(null);if(obj instanceof NameTree)for(var[key,value]of obj.getAll()){value=fetchDest(value);value&&(dests[stringToPDFString(key)]=value)}else obj instanceof Dict&&obj.forEach(function(key,value){value=fetchDest(value);value&&(dests[key]=value)});return shadow(this,"destinations",dests)}getDestination(id){var obj=this._readDests();if(obj instanceof NameTree){var dest=fetchDest(obj.get(id));if(dest)return dest;dest=this.destinations[id];if(dest)return warn(`Found "${id}" at an incorrect position in the NameTree.`),dest}else if(obj instanceof Dict){const dest=fetchDest(obj.get(id));if(dest)return dest}return null}_readDests(){var obj=this._catDict.get("Names");return obj?.has("Dests")?new NameTree(obj.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}get pageLabels(){let obj=null;try{obj=this._readPageLabels()}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Unable to read page labels.")}return shadow(this,"pageLabels",obj)}_readPageLabels(){var obj=this._catDict.getRaw("PageLabels");if(!obj)return null;var pageLabels=new Array(this.numPages);let style=null,prefix="";var nums=new NumberTree(obj,this.xref).getAll();let currentLabel="",currentIndex=1;for(let i=0,ii=this.numPages;i<ii;i++){var labelDict=nums.get(i);if(void 0!==labelDict){if(!(labelDict instanceof Dict))throw new FormatError("PageLabel is not a dictionary.");if(labelDict.has("Type")&&!isName(labelDict.get("Type"),"PageLabel"))throw new FormatError("Invalid type in PageLabel dictionary.");if(labelDict.has("S")){var s=labelDict.get("S");if(!(s instanceof Name))throw new FormatError("Invalid style in PageLabel dictionary.");style=s.name}else style=null;if(labelDict.has("P")){s=labelDict.get("P");if("string"!=typeof s)throw new FormatError("Invalid prefix in PageLabel dictionary.");prefix=stringToPDFString(s)}else prefix="";if(labelDict.has("St")){labelDict=labelDict.get("St");if(!(Number.isInteger(labelDict)&&1<=labelDict))throw new FormatError("Invalid start in PageLabel dictionary.");currentIndex=labelDict}else currentIndex=1}switch(style){case"D":currentLabel=currentIndex;break;case"R":case"r":currentLabel=toRomanNumerals(currentIndex,"r"===style);break;case"A":case"a":var baseCharCode="a"===style?97:65,letterIndex=currentIndex-1,baseCharCode=String.fromCharCode(baseCharCode+letterIndex%26);currentLabel=baseCharCode.repeat(Math.floor(letterIndex/26)+1);break;default:if(style)throw new FormatError(`Invalid style "${style}" in PageLabel dictionary.`);currentLabel=""}pageLabels[i]=prefix+currentLabel,currentIndex++}return pageLabels}get pageLayout(){var obj=this._catDict.get("PageLayout");let pageLayout="";if(obj instanceof Name)switch(obj.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":pageLayout=obj.name}return shadow(this,"pageLayout",pageLayout)}get pageMode(){var obj=this._catDict.get("PageMode");let pageMode="UseNone";if(obj instanceof Name)switch(obj.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":pageMode=obj.name}return shadow(this,"pageMode",pageMode)}get viewerPreferences(){var obj=this._catDict.get("ViewerPreferences");if(!(obj instanceof Dict))return shadow(this,"viewerPreferences",null);let prefs=null;for(const key of obj.getKeys()){var value=obj.get(key);let prefValue;switch(key){case"HideToolbar":case"HideMenubar":case"HideWindowUI":case"FitWindow":case"CenterWindow":case"DisplayDocTitle":case"PickTrayByPDFSize":"boolean"==typeof value&&(prefValue=value);break;case"NonFullScreenPageMode":if(value instanceof Name)switch(value.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":prefValue=value.name;break;default:prefValue="UseNone"}break;case"Direction":if(value instanceof Name)switch(value.name){case"L2R":case"R2L":prefValue=value.name;break;default:prefValue="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":if(value instanceof Name)switch(value.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":prefValue=value.name;break;default:prefValue="CropBox"}break;case"PrintScaling":if(value instanceof Name)switch(value.name){case"None":case"AppDefault":prefValue=value.name;break;default:prefValue="AppDefault"}break;case"Duplex":if(value instanceof Name)switch(value.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":prefValue=value.name;break;default:prefValue="None"}break;case"PrintPageRange":Array.isArray(value)&&value.length%2==0&&value.every((page,i,arr)=>Number.isInteger(page)&&0<page&&(0===i||page>=arr[i-1])&&page<=this.numPages)&&(prefValue=value);break;case"NumCopies":Number.isInteger(value)&&0<value&&(prefValue=value);break;default:warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`);continue}void 0===prefValue?warn(`Bad value, for key "${key}", in ViewerPreferences: ${value}.`):(prefs=prefs||Object.create(null))[key]=prefValue}return shadow(this,"viewerPreferences",prefs)}get openAction(){var destDict,resultObj,obj=this._catDict.get("OpenAction"),openAction=Object.create(null);return obj instanceof Dict?((destDict=new Dict(this.xref)).set("A",obj),resultObj={url:null,dest:null,action:null},Catalog.parseDestDictionary({destDict:destDict,resultObj:resultObj}),Array.isArray(resultObj.dest)?openAction.dest=resultObj.dest:resultObj.action&&(openAction.action=resultObj.action)):Array.isArray(obj)&&(openAction.dest=obj),shadow(this,"openAction",0<objectSize(openAction)?openAction:null)}get attachments(){var key,value,obj=this._catDict.get("Names");let attachments=null;if(obj instanceof Dict&&obj.has("EmbeddedFiles"))for([key,value]of new NameTree(obj.getRaw("EmbeddedFiles"),this.xref).getAll()){var fs=new FileSpec(value,this.xref);(attachments=attachments||Object.create(null))[stringToPDFString(key)]=fs.serializable}return shadow(this,"attachments",attachments)}get xfaImages(){var key,value,obj=this._catDict.get("Names");let xfaImages=null;if(obj instanceof Dict&&obj.has("XFAImages"))for([key,value]of new NameTree(obj.getRaw("XFAImages"),this.xref).getAll())(xfaImages=xfaImages||new Dict(this.xref)).set(stringToPDFString(key),value);return shadow(this,"xfaImages",xfaImages)}_collectJavaScript(){var key,value,obj=this._catDict.get("Names");let javaScript=null;function appendIfJavaScriptDict(name,jsDict){if(jsDict instanceof Dict&&isName(jsDict.get("S"),"JavaScript")){let js=jsDict.get("JS");if(js instanceof BaseStream)js=js.getString();else if("string"!=typeof js)return;(js=stringToPDFString(js).replaceAll("\0",""))&&(javaScript||=new Map).set(name,js)}}if(obj instanceof Dict&&obj.has("JavaScript"))for([key,value]of new NameTree(obj.getRaw("JavaScript"),this.xref).getAll())appendIfJavaScriptDict(stringToPDFString(key),value);obj=this._catDict.get("OpenAction");return obj&&appendIfJavaScriptDict("OpenAction",obj),javaScript}get jsActions(){var javaScript=this._collectJavaScript();let actions=collectActions(this.xref,this._catDict,DocumentActionEventType);if(javaScript){actions||=Object.create(null);for(var[key,val]of javaScript)key in actions?actions[key].push(val):actions[key]=[val]}return shadow(this,"jsActions",actions)}async fontFallback(id,handler){for(const translatedFont of await Promise.all(this.fontCache))if(translatedFont.loadedName===id)return void translatedFont.fallback(handler)}async cleanup(manuallyTriggered=!1){var dict;clearGlobalCaches(),this.globalImageCache.clear(manuallyTriggered),this.pageKidsCountCache.clear(),this.pageIndexCache.clear(),this.nonBlendModesSet.clear();for({dict}of await Promise.all(this.fontCache))delete dict.cacheKey;this.fontCache.clear(),this.builtInCMapCache.clear(),this.standardFontDataCache.clear(),this.systemFontCache.clear()}async getPageDict(pageIndex){var nodesToVisit=[this.toplevelPagesDict],visitedNodes=new RefSet,pagesRef=this._catDict.getRaw("Pages"),xref=(pagesRef instanceof Ref&&visitedNodes.put(pagesRef),this.xref),pageKidsCountCache=this.pageKidsCountCache,pageIndexCache=this.pageIndexCache;let currentPageIndex=0;for(;nodesToVisit.length;){var currentNode=nodesToVisit.pop();if(currentNode instanceof Ref){const count=pageKidsCountCache.get(currentNode);if(0<=count&¤tPageIndex+count<=pageIndex){currentPageIndex+=count;continue}if(visitedNodes.has(currentNode))throw new FormatError("Pages tree contains circular reference.");visitedNodes.put(currentNode);var obj=await xref.fetchAsync(currentNode);if(obj instanceof Dict){let type=obj.getRaw("Type");if(isName(type=type instanceof Ref?await xref.fetchAsync(type):type,"Page")||!obj.has("Kids")){if(pageKidsCountCache.has(currentNode)||pageKidsCountCache.put(currentNode,1),pageIndexCache.has(currentNode)||pageIndexCache.put(currentNode,currentPageIndex),currentPageIndex===pageIndex)return[obj,currentNode];currentPageIndex++;continue}}nodesToVisit.push(obj)}else{if(!(currentNode instanceof Dict))throw new FormatError("Page dictionary kid reference points to wrong type of object.");obj=currentNode["objId"];let count=currentNode.getRaw("Count");if(count instanceof Ref&&(count=await xref.fetchAsync(count)),Number.isInteger(count)&&0<=count&&(obj&&!pageKidsCountCache.has(obj)&&pageKidsCountCache.put(obj,count),currentPageIndex+count<=pageIndex))currentPageIndex+=count;else{let kids=currentNode.getRaw("Kids");if(kids instanceof Ref&&(kids=await xref.fetchAsync(kids)),Array.isArray(kids))for(let last=kids.length-1;0<=last;last--)nodesToVisit.push(kids[last]);else{let type=currentNode.getRaw("Type");if(!isName(type=type instanceof Ref?await xref.fetchAsync(type):type,"Page")&¤tNode.has("Kids"))throw new FormatError("Page dictionary kids object is not an array.");if(currentPageIndex===pageIndex)return[currentNode,null];currentPageIndex++}}}}throw new Error(`Page index ${pageIndex} not found.`)}async getAllPageDicts(recoveryMode=!1){const ignoreErrors=this.pdfManager.evaluatorOptions["ignoreErrors"];var queue=[{currentNode:this.toplevelPagesDict,posInKids:0}],visitedNodes=new RefSet,pagesRef=this._catDict.getRaw("Pages");pagesRef instanceof Ref&&visitedNodes.put(pagesRef);const map=new Map,xref=this.xref,pageIndexCache=this.pageIndexCache;let pageIndex=0;function addPageError(error){if(error instanceof XRefEntryException&&!recoveryMode)throw error;recoveryMode&&ignoreErrors&&0===pageIndex&&(warn(`getAllPageDicts - Skipping invalid first page: "${error}".`),error=Dict.empty),map.set(pageIndex++,[error,null])}for(;0<queue.length;){var queueItem=queue.at(-1),{currentNode,posInKids}=queueItem;let kids=currentNode.getRaw("Kids");if(kids instanceof Ref)try{kids=await xref.fetchAsync(kids)}catch(ex){addPageError(ex);break}if(!Array.isArray(kids)){addPageError(new FormatError("Page dictionary kids object is not an array."));break}if(posInKids>=kids.length)queue.pop();else{var currentNode=kids[posInKids];let obj;if(currentNode instanceof Ref){if(visitedNodes.has(currentNode)){addPageError(new FormatError("Pages tree contains circular reference."));break}visitedNodes.put(currentNode);try{obj=await xref.fetchAsync(currentNode)}catch(ex){addPageError(ex);break}}else obj=currentNode;if(!(obj instanceof Dict)){addPageError(new FormatError("Page dictionary kid reference points to wrong type of object."));break}let type=obj.getRaw("Type");if(type instanceof Ref)try{type=await xref.fetchAsync(type)}catch(ex){addPageError(ex);break}isName(type,"Page")||!obj.has("Kids")?(posInKids=obj,(currentNode=currentNode instanceof Ref?currentNode:null)&&!pageIndexCache.has(currentNode)&&pageIndexCache.put(currentNode,pageIndex),map.set(pageIndex++,[posInKids,currentNode])):queue.push({currentNode:obj,posInKids:0}),queueItem.posInKids++}}return map}getPageIndex(pageRef){var cachedPageIndex=this.pageIndexCache.get(pageRef);if(void 0!==cachedPageIndex)return Promise.resolve(cachedPageIndex);const xref=this.xref;let total=0;const next=ref=>function(kidRef){let total=0,parentRef;return xref.fetchAsync(kidRef).then(function(node){if(isRefsEqual(kidRef,pageRef)&&!isDict(node,"Page")&&!(node instanceof Dict&&!node.has("Type")&&node.has("Contents")))throw new FormatError("The reference does not point to a /Page dictionary.");if(!node)return null;if(node instanceof Dict)return parentRef=node.getRaw("Parent"),node.getAsync("Parent");throw new FormatError("Node must be a dictionary.")}).then(function(parent){if(!parent)return null;if(parent instanceof Dict)return parent.getAsync("Kids");throw new FormatError("Parent must be a dictionary.")}).then(function(kids){if(!kids)return null;var kidPromises=[];let found=!1;for(const kid of kids){if(!(kid instanceof Ref))throw new FormatError("Kid must be a reference.");if(isRefsEqual(kid,kidRef)){found=!0;break}kidPromises.push(xref.fetchAsync(kid).then(function(obj){if(!(obj instanceof Dict))throw new FormatError("Kid node must be a dictionary.");obj.has("Count")?total+=obj.get("Count"):total++}))}if(found)return Promise.all(kidPromises).then(function(){return[total,parentRef]});throw new FormatError("Kid reference not found in parent's kids.")})}(ref).then(args=>{var parentRef;return args?([args,parentRef]=args,total+=args,next(parentRef)):(this.pageIndexCache.put(pageRef,total),total)});return next(pageRef)}get baseUrl(){var uri=this._catDict.get("URI");if(uri instanceof Dict){uri=uri.get("Base");if("string"==typeof uri){uri=createValidAbsoluteUrl(uri,null,{tryConvertEncoding:!0});if(uri)return shadow(this,"baseUrl",uri.href)}}return shadow(this,"baseUrl",this.pdfManager.docBaseUrl)}static parseDestDictionary({destDict,resultObj,docBaseUrl=null,docAttachments=null}){if(destDict instanceof Dict){let action=destDict.get("A"),url,dest;if(action instanceof Dict||(destDict.has("Dest")?action=destDict.get("Dest"):(action=destDict.get("AA"))instanceof Dict&&(action.has("D")?action=action.get("D"):action.has("U")&&(action=action.get("U")))),action instanceof Dict){var actionType=action.get("S");if(!(actionType instanceof Name))return void warn("parseDestDictionary: Invalid type in Action dictionary.");var actionName=actionType.name;switch(actionName){case"ResetForm":var flags=action.get("Flags"),flags=0==(1&("number"==typeof flags?flags:0)),fields=[],refs=[];for(const obj of action.get("Fields")||[])obj instanceof Ref?refs.push(obj.toString()):"string"==typeof obj&&fields.push(stringToPDFString(obj));resultObj.resetForm={fields:fields,refs:refs,include:flags};break;case"URI":(url=action.get("URI"))instanceof Name&&(url="/"+url.name);break;case"GoTo":dest=action.get("D");break;case"Launch":case"GoToR":var flags=action.get("F"),filename=(flags instanceof Dict?(filename=new FileSpec(flags,null,!0).serializable["filename"],url=filename):"string"==typeof flags&&(url=flags),fetchRemoteDest(action)),flags=(filename&&"string"==typeof url&&(url=url.split("#",1)[0]+"#"+filename),action.get("NewWindow"));"boolean"==typeof flags&&(resultObj.newWindow=flags);break;case"GoToE":var filename=action.get("T");let attachment;(attachment=docAttachments&&filename instanceof Dict&&(flags=filename.get("R"),filename=filename.get("N"),isName(flags,"C"))&&"string"==typeof filename?docAttachments[stringToPDFString(filename)]:attachment)?(resultObj.attachment=attachment,(flags=fetchRemoteDest(action))&&(resultObj.attachmentDest=flags)):warn('parseDestDictionary - unimplemented "GoToE" action.');break;case"Named":filename=action.get("N");filename instanceof Name&&(resultObj.action=filename.name);break;case"SetOCGState":flags=action.get("State"),filename=action.get("PreserveRB");if(Array.isArray(flags)&&0!==flags.length){var stateArr=[];for(const elem of flags)if(elem instanceof Name)switch(elem.name){case"ON":case"OFF":case"Toggle":stateArr.push(elem.name)}else elem instanceof Ref&&stateArr.push(elem.toString());stateArr.length===flags.length&&(resultObj.setOCGState={state:stateArr,preserveRB:"boolean"!=typeof filename||filename})}break;case"JavaScript":flags=action.get("JS");let js;flags instanceof BaseStream?js=flags.getString():"string"==typeof flags&&(js=flags);filename=js&&recoverJsURL(stringToPDFString(js));if(filename){url=filename.url,resultObj.newWindow=filename.newWindow;break}default:"JavaScript"!==actionName&&"SubmitForm"!==actionName&&warn(`parseDestDictionary - unsupported action: "${actionName}".`)}}else destDict.has("Dest")&&(dest=destDict.get("Dest"));"string"==typeof url&&((actionType=createValidAbsoluteUrl(url,docBaseUrl,{addDefaultProtocol:!0,tryConvertEncoding:!0}))&&(resultObj.url=actionType.href),resultObj.unsafeUrl=url),dest&&("string"==typeof(dest=dest instanceof Name?dest.name:dest)?resultObj.dest=stringToPDFString(dest):isValidExplicitDest(dest)&&(resultObj.dest=dest))}else warn("parseDestDictionary: `destDict` must be a dictionary.")}}function mayHaveChildren(value){return value instanceof Ref||value instanceof Dict||value instanceof BaseStream||Array.isArray(value)}function addChildren(node,nodesToVisit){if(node instanceof Dict)node=node.getRawValues();else if(node instanceof BaseStream)node=node.dict.getRawValues();else if(!Array.isArray(node))return;for(const rawValue of node)mayHaveChildren(rawValue)&&nodesToVisit.push(rawValue)}class ObjectLoader{constructor(dict,keys,xref){this.dict=dict,this.keys=keys,this.xref=xref,this.refSet=null}async load(){if(!this.xref.stream.isDataLoaded){var{keys,dict}=this,nodesToVisit=(this.refSet=new RefSet,[]);for(const key of keys){var rawValue=dict.getRaw(key);void 0!==rawValue&&nodesToVisit.push(rawValue)}return this._walk(nodesToVisit)}}async _walk(nodesToVisit){for(var nodesToRevisit=[],pendingRequests=[];nodesToVisit.length;){let currentNode=nodesToVisit.pop();if(currentNode instanceof Ref){if(this.refSet.has(currentNode))continue;try{this.refSet.put(currentNode),currentNode=this.xref.fetch(currentNode)}catch(ex){if(!(ex instanceof MissingDataException))return warn(`ObjectLoader._walk - requesting all data: "${ex}".`),this.refSet=null,manager=this.xref.stream["manager"],manager.requestAllChunks();nodesToRevisit.push(currentNode),pendingRequests.push({begin:ex.begin,end:ex.end})}}if(currentNode instanceof BaseStream){var manager=currentNode.getBaseStreams();if(manager){let foundMissingData=!1;for(const stream of manager)stream.isDataLoaded||(foundMissingData=!0,pendingRequests.push({begin:stream.start,end:stream.end}));foundMissingData&&nodesToRevisit.push(currentNode)}}addChildren(currentNode,nodesToVisit)}if(pendingRequests.length){await this.xref.stream.manager.requestRanges(pendingRequests);for(const node of nodesToRevisit)node instanceof Ref&&this.refSet.remove(node);return this._walk(nodesToRevisit)}this.refSet=null}}const $acceptWhitespace=Symbol(),$addHTML=Symbol(),$appendChild=Symbol(),$childrenToHTML=Symbol(),$clean=Symbol(),$cleanPage=Symbol(),$cleanup=Symbol(),$clone=Symbol(),$consumed=Symbol(),$content=Symbol("content"),$data=Symbol("data"),$dump=Symbol(),$extra=Symbol("extra"),$finalize=Symbol(),$flushHTML=Symbol(),$getAttributeIt=Symbol(),$getAttributes=Symbol(),$getAvailableSpace=Symbol(),$getChildrenByClass=Symbol(),$getChildrenByName=Symbol(),$getChildrenByNameIt=Symbol(),$getDataValue=Symbol(),$getExtra=Symbol(),$getRealChildrenByNameIt=Symbol(),$getChildren=Symbol(),$getContainedChildren=Symbol(),$getNextPage=Symbol(),$getSubformParent=Symbol(),$getParent=Symbol(),$getTemplateRoot=Symbol(),$globalData=Symbol(),$hasSettableValue=Symbol(),$ids=Symbol(),$indexOf=Symbol(),$insertAt=Symbol(),$isCDATAXml=Symbol(),$isBindable=Symbol(),$isDataValue=Symbol(),$isDescendent=Symbol(),$isNsAgnostic=Symbol(),$isSplittable=Symbol(),$isThereMoreWidth=Symbol(),$isTransparent=Symbol(),$isUsable=Symbol(),$lastAttribute=Symbol(),$namespaceId=Symbol("namespaceId"),$nodeName=Symbol("nodeName"),$nsAttributes=Symbol(),$onChild=Symbol(),$onChildCheck=Symbol(),$onText=Symbol(),$pushGlyphs=Symbol(),$popPara=Symbol(),$pushPara=Symbol(),$removeChild=Symbol(),$root=Symbol("root"),$resolvePrototypes=Symbol(),$searchNode=Symbol(),$setId=Symbol(),$setSetAttributes=Symbol(),$setValue=Symbol(),$tabIndex=Symbol(),$text=Symbol(),$toPages=Symbol(),$toHTML=Symbol(),$toString=Symbol(),$toStyle=Symbol(),$uid=Symbol("uid"),$buildXFAObject=Symbol(),NamespaceIds={config:{id:0,check:ns=>ns.startsWith("http://www.xfa.org/schema/xci/")},connectionSet:{id:1,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-connection-set/")},datasets:{id:2,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-data/")},form:{id:3,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-form/")},localeSet:{id:4,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-locale-set/")},pdf:{id:5,check:ns=>"http://ns.adobe.com/xdp/pdf/"===ns},signature:{id:6,check:ns=>"http://www.w3.org/2000/09/xmldsig#"===ns},sourceSet:{id:7,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-source-set/")},stylesheet:{id:8,check:ns=>"http://www.w3.org/1999/XSL/Transform"===ns},template:{id:9,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-template/")},xdc:{id:10,check:ns=>ns.startsWith("http://www.xfa.org/schema/xdc/")},xdp:{id:11,check:ns=>"http://ns.adobe.com/xdp/"===ns},xfdf:{id:12,check:ns=>"http://ns.adobe.com/xfdf/"===ns},xhtml:{id:13,check:ns=>"http://www.w3.org/1999/xhtml"===ns},xmpmeta:{id:14,check:ns=>"http://ns.adobe.com/xmpmeta/"===ns}},dimConverters={pt:x=>x,cm:x=>x/2.54*72,mm:x=>x/25.4*72,in:x=>72*x,px:x=>x},measurementPattern=/([+-]?\d+\.?\d*)(.*)/;function stripQuotes(str){return str.startsWith("'")||str.startsWith('"')?str.slice(1,-1):str}function getInteger({data,defaultValue,validate}){if(!data)return defaultValue;data=data.trim();data=parseInt(data,10);return!isNaN(data)&&validate(data)?data:defaultValue}function getFloat({data,defaultValue,validate}){if(!data)return defaultValue;data=data.trim();data=parseFloat(data);return!isNaN(data)&&validate(data)?data:defaultValue}function getKeyword({data,defaultValue,validate}){return data&&validate(data=data.trim())?data:defaultValue}function getStringOption(data,options){return getKeyword({data:data,defaultValue:options[0],validate:k=>options.includes(k)})}function getMeasurement(str,def="0"){var unit;return def||="0",!str||!(str=str.trim().match(measurementPattern))||([,str,unit]=str,str=parseFloat(str),isNaN(str))?getMeasurement(def):0===str?0:(unit=dimConverters[unit])?unit(str):str}function getRatio(data){var den;return!data||(1===(data=data.trim().split(/\s*:\s*/).map(x=>parseFloat(x)).filter(x=>!isNaN(x))).length&&data.push(1),0===data.length)?{num:1,den:1}:([data,den]=data,{num:data,den:den})}function getRelevant(data){return data?data.trim().split(/\s+/).map(e=>({excluded:"-"===e[0],viewname:e.substring(1)})):[]}function getColor(data,def=[0,0,0]){var[def,g,b]=def;return!data||(data=data.trim().split(/\s*,\s*/).map(c=>Math.min(Math.max(0,parseInt(c.trim(),10)),255)).map(c=>isNaN(c)?0:c)).length<3||([def,g,b]=data),{r:def,g:g,b:b}}function getBBox(data){var y,width,height;return!data||(data=data.trim().split(/\s*,\s*/).map(m=>getMeasurement(m,"-1"))).length<4||data[2]<0||data[3]<0?{x:-1,y:-1,width:-1,height:-1}:([data,y,width,height]=data,{x:data,y:y,width:width,height:height})}class HTMLResult{static get FAILURE(){return shadow(this,"FAILURE",new HTMLResult(!1,null,null,null))}static get EMPTY(){return shadow(this,"EMPTY",new HTMLResult(!0,null,null,null))}constructor(success,html,bbox,breakNode){this.success=success,this.html=html,this.bbox=bbox,this.breakNode=breakNode}isBreak(){return!!this.breakNode}static breakNode(node){return new HTMLResult(!1,null,null,node)}static success(html,bbox=null){return new HTMLResult(!0,html,bbox,null)}}class FontFinder{constructor(pdfFonts){this.fonts=new Map,this.cache=new Map,this.warned=new Set,this.defaultFont=null,this.add(pdfFonts)}add(pdfFonts,reallyMissingFonts=null){for(const pdfFont of pdfFonts)this.addPdfFont(pdfFont);for(const pdfFont of this.fonts.values())pdfFont.regular||(pdfFont.regular=pdfFont.italic||pdfFont.bold||pdfFont.bolditalic);if(reallyMissingFonts&&0!==reallyMissingFonts.size){var myriad=this.fonts.get("PdfJS-Fallback-PdfJS-XFA");for(const missing of reallyMissingFonts)this.fonts.set(missing,myriad)}}addPdfFont(pdfFont){var cssFontInfo=pdfFont.cssFontInfo,name=cssFontInfo.fontFamily;let font=this.fonts.get(name),property=(font||(font=Object.create(null),this.fonts.set(name,font),this.defaultFont)||(this.defaultFont=font),"");name=parseFloat(cssFontInfo.fontWeight);0!==parseFloat(cssFontInfo.italicAngle)?property=700<=name?"bolditalic":"italic":700<=name&&(property="bold"),!property&&((pdfFont.name.includes("Bold")||pdfFont.psName?.includes("Bold"))&&(property="bold"),pdfFont.name.includes("Italic")||pdfFont.name.endsWith("It")||pdfFont.psName?.includes("Italic")||pdfFont.psName?.endsWith("It"))&&(property+="italic"),property=property||"regular",font[property]=pdfFont}getDefault(){return this.defaultFont}find(fontName,mustWarn=!0){var font=this.fonts.get(fontName)||this.cache.get(fontName);if(font)return font;var pattern=/,|-|_| |bolditalic|bold|italic|regular|it/gi;let name=fontName.replaceAll(pattern,"");if(font=this.fonts.get(name))return this.cache.set(fontName,font),font;name=name.toLowerCase();var family,pdfFont,maybe=[];for([family,pdfFont]of this.fonts.entries())family.replaceAll(pattern,"").toLowerCase().startsWith(name)&&maybe.push(pdfFont);if(0===maybe.length)for(const[,pdfFont]of this.fonts.entries())pdfFont.regular.name?.replaceAll(pattern,"").toLowerCase().startsWith(name)&&maybe.push(pdfFont);if(0===maybe.length){name=name.replaceAll(/psmt|mt/gi,"");for(const[family,pdfFont]of this.fonts.entries())family.replaceAll(pattern,"").toLowerCase().startsWith(name)&&maybe.push(pdfFont)}if(0===maybe.length)for(const pdfFont of this.fonts.values())pdfFont.regular.name?.replaceAll(pattern,"").toLowerCase().startsWith(name)&&maybe.push(pdfFont);return 1<=maybe.length?(1!==maybe.length&&mustWarn&&warn("XFA - Too many choices to guess the correct font: "+fontName),this.cache.set(fontName,maybe[0]),maybe[0]):(mustWarn&&!this.warned.has(fontName)&&(this.warned.add(fontName),warn("XFA - Cannot find the font: "+fontName)),null)}}function selectFont(xfaFont,typeface){return"italic"===xfaFont.posture?"bold"===xfaFont.weight?typeface.bolditalic:typeface.italic:"bold"===xfaFont.weight?typeface.bold:typeface.regular}function fonts_getMetrics(xfaFont,real=!1){let pdfFont=null;var name;return xfaFont&&(name=stripQuotes(xfaFont.typeface),name=xfaFont[$globalData].fontFinder.find(name),pdfFont=selectFont(xfaFont,name)),pdfFont?(name=xfaFont.size||10,{lineHeight:(xfaFont=pdfFont.lineHeight?Math.max(real?0:1.2,pdfFont.lineHeight):1.2)*name,lineGap:(real=void 0===pdfFont.lineGap?.2:pdfFont.lineGap)*name,lineNoGap:Math.max(1,xfaFont-real)*name}):{lineHeight:12,lineGap:2,lineNoGap:10}}const WIDTH_FACTOR=1.02;class FontInfo{constructor(xfaFont,margin,lineHeight,fontFinder){this.lineHeight=lineHeight,this.paraMargin=margin||{top:0,bottom:0,left:0,right:0},xfaFont&&(this.xfaFont={typeface:xfaFont.typeface,posture:xfaFont.posture,weight:xfaFont.weight,size:xfaFont.size,letterSpacing:xfaFont.letterSpacing},lineHeight=fontFinder.find(xfaFont.typeface))&&(this.pdfFont=selectFont(xfaFont,lineHeight),this.pdfFont)||([this.pdfFont,this.xfaFont]=this.defaultFont(fontFinder))}defaultFont(fontFinder){fontFinder=fontFinder.find("Helvetica",!1)||fontFinder.find("Myriad Pro",!1)||fontFinder.find("Arial",!1)||fontFinder.getDefault();if(fontFinder?.regular){fontFinder=fontFinder.regular;const xfaFont={typeface:fontFinder.cssFontInfo.fontFamily,posture:"normal",weight:"normal",size:10,letterSpacing:0};return[fontFinder,xfaFont]}const xfaFont={typeface:"Courier",posture:"normal",weight:"normal",size:10,letterSpacing:0};return[null,xfaFont]}}class FontSelector{constructor(defaultXfaFont,defaultParaMargin,defaultLineHeight,fontFinder){this.fontFinder=fontFinder,this.stack=[new FontInfo(defaultXfaFont,defaultParaMargin,defaultLineHeight,fontFinder)]}pushData(xfaFont,margin,lineHeight){var lastFont=this.stack.at(-1);for(const name of["typeface","posture","weight","size","letterSpacing"])xfaFont[name]||(xfaFont[name]=lastFont.xfaFont[name]);for(const name of["top","bottom","left","right"])isNaN(margin[name])&&(margin[name]=lastFont.paraMargin[name]);lineHeight=new FontInfo(xfaFont,margin,lineHeight||lastFont.lineHeight,this.fontFinder);lineHeight.pdfFont||(lineHeight.pdfFont=lastFont.pdfFont),this.stack.push(lineHeight)}popFont(){this.stack.pop()}topFont(){return this.stack.at(-1)}}class TextMeasure{constructor(defaultXfaFont,defaultParaMargin,defaultLineHeight,fonts){this.glyphs=[],this.fontSelector=new FontSelector(defaultXfaFont,defaultParaMargin,defaultLineHeight,fonts),this.extraHeight=0}pushData(xfaFont,margin,lineHeight){this.fontSelector.pushData(xfaFont,margin,lineHeight)}popFont(xfaFont){return this.fontSelector.popFont()}addPara(){var lastFont=this.fontSelector.topFont();this.extraHeight+=lastFont.paraMargin.top+lastFont.paraMargin.bottom}addString(str){if(str){var lastFont=this.fontSelector.topFont(),fontSize=lastFont.xfaFont.size;if(lastFont.pdfFont){var letterSpacing=lastFont.xfaFont.letterSpacing,pdfFont=lastFont.pdfFont,fontLineHeight=pdfFont.lineHeight||1.2,lineHeight=lastFont.lineHeight||Math.max(1.2,fontLineHeight)*fontSize,lastFont=void 0===pdfFont.lineGap?.2:pdfFont.lineGap,firstLineHeight=Math.max(1,fontLineHeight-lastFont)*fontSize,scale=fontSize/1e3,fallbackWidth=pdfFont.defaultWidth||pdfFont.charsToGlyphs(" ")[0].width;for(const line of str.split(/[\u2029\n]/)){var encodedLine=pdfFont.encodeString(line).join("");for(const glyph of pdfFont.charsToGlyphs(encodedLine)){var width=glyph.width||fallbackWidth;this.glyphs.push([width*scale+letterSpacing,lineHeight,firstLineHeight,glyph.unicode,!1])}this.glyphs.push([0,0,0,"\n",!0])}}else for(const line of str.split(/[\u2029\n]/)){for(const char of line.split(""))this.glyphs.push([fontSize,1.2*fontSize,fontSize,char,!1]);this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}}compute(maxWidth){let lastSpacePos=-1,lastSpaceWidth=0,width=0,height=0,currentLineWidth=0,currentLineHeight=0,isBroken=!1,isFirstLine=!0;for(let i=0,ii=this.glyphs.length;i<ii;i++){var[glyphWidth,lineHeight,firstLineHeight,char,isEOL]=this.glyphs[i],char=" "===char,firstLineHeight=isFirstLine?firstLineHeight:lineHeight;isEOL?(width=Math.max(width,currentLineWidth),currentLineWidth=0,height+=currentLineHeight,currentLineHeight=firstLineHeight,lastSpacePos=-1,lastSpaceWidth=0,isFirstLine=!1):char?currentLineWidth+glyphWidth>maxWidth?(width=Math.max(width,currentLineWidth),currentLineWidth=0,height+=currentLineHeight,currentLineHeight=firstLineHeight,lastSpacePos=-1,lastSpaceWidth=0,isBroken=!0,isFirstLine=!1):(currentLineHeight=Math.max(firstLineHeight,currentLineHeight),lastSpaceWidth=currentLineWidth,currentLineWidth+=glyphWidth,lastSpacePos=i):currentLineWidth+glyphWidth>maxWidth?(height+=currentLineHeight,currentLineHeight=firstLineHeight,-1!==lastSpacePos?(i=lastSpacePos,width=Math.max(width,lastSpaceWidth),currentLineWidth=0,lastSpacePos=-1,lastSpaceWidth=0):(width=Math.max(width,currentLineWidth),currentLineWidth=glyphWidth),isBroken=!0,isFirstLine=!1):(currentLineWidth+=glyphWidth,currentLineHeight=Math.max(firstLineHeight,currentLineHeight))}return width=Math.max(width,currentLineWidth),height+=currentLineHeight+this.extraHeight,{width:WIDTH_FACTOR*width,height:height,isBroken:isBroken}}}const namePattern=/^[^.[]+/,indexPattern=/^[^\]]+/,operators={dot:0,dotDot:1,dotHash:2,dotBracket:3,dotParen:4},shortcuts=new Map([["$data",(root,current)=>root.datasets?root.datasets.data:root],["$record",(root,current)=>(root.datasets?root.datasets.data:root)[$getChildren]()[0]],["$template",(root,current)=>root.template],["$connectionSet",(root,current)=>root.connectionSet],["$form",(root,current)=>root.form],["$layout",(root,current)=>root.layout],["$host",(root,current)=>root.host],["$dataWindow",(root,current)=>root.dataWindow],["$event",(root,current)=>root.event],["!",(root,current)=>root.datasets],["$xfa",(root,current)=>root],["xfa",(root,current)=>root],["$",(root,current)=>current]]),somCache=new WeakMap;function parseIndex(index){return"*"===(index=index.trim())?1/0:parseInt(index,10)||0}function parseExpression(expr,dotDotAllowed,noExpr=!0){let match=expr.match(namePattern);if(!match)return null;var[name]=match,parsed=[{name:name,cacheName:"."+name,index:0,js:null,formCalc:null,operator:operators.dot}];let pos=name.length;for(;pos<expr.length;){var spos=pos;if("["===expr.charAt(pos++)){if(!(match=expr.slice(pos).match(indexPattern)))return warn("XFA - Invalid index in SOM expression"),null;parsed.at(-1).index=parseIndex(match[0]),pos+=match[0].length+1}else{let operator;switch(expr.charAt(pos)){case".":if(!dotDotAllowed)return null;pos++,operator=operators.dotDot;break;case"#":pos++,operator=operators.dotHash;break;case"[":if(noExpr)return warn("XFA - SOM expression contains a FormCalc subexpression which is not supported for now."),null;operator=operators.dotBracket;break;case"(":if(noExpr)return warn("XFA - SOM expression contains a JavaScript subexpression which is not supported for now."),null;operator=operators.dotParen;break;default:operator=operators.dot}if(!(match=expr.slice(pos).match(namePattern)))break;[name]=match,pos+=name.length,parsed.push({name:name,cacheName:expr.slice(spos,pos),operator:operator,index:0,js:null,formCalc:null})}}return parsed}function searchNode(root,container,expr,dotDotAllowed=!0,useCache=!0){var parsed=parseExpression(expr,dotDotAllowed);if(!parsed)return null;expr=shortcuts.get(parsed[0].name);let i=0,isQualified;expr?(isQualified=!0,root=[expr(root,container)],i=1):(isQualified=null===container,root=[container||root]);for(var ii=parsed.length;i<ii;i++){const{name,cacheName,operator,index}=parsed[i];var nodes=[];for(const node of root)if(node.isXFAObject){let children,cached;if(useCache&&((cached=somCache.get(node))||(cached=new Map,somCache.set(node,cached)),children=cached.get(cacheName)),!children){switch(operator){case operators.dot:children=node[$getChildrenByName](name,!1);break;case operators.dotDot:children=node[$getChildrenByName](name,!0);break;case operators.dotHash:children=(children=node[$getChildrenByClass](name)).isXFAObjectArray?children.children:[children]}useCache&&cached.set(cacheName,children)}0<children.length&&nodes.push(children)}if(0!==nodes.length||isQualified||0!==i)root=isFinite(index)?nodes.filter(node=>index<node.length).map(node=>node[index]):nodes.flat();else{if(!(container=container[$getParent]()))return null;i=-1,root=[container]}}return 0===root.length?null:root}function createDataNode(root,container,expr){var parsed=parseExpression(expr);if(parsed&&!parsed.some(x=>x.operator===operators.dotDot)){expr=shortcuts.get(parsed[0].name);let i=0;expr?(root=expr(root,container),i=1):root=container||root;for(var ii=parsed.length;i<ii;i++){var{name,operator,index}=parsed[i];if(!isFinite(index))return parsed[i].index=0,root.createNodes(parsed.slice(i));let children;switch(operator){case operators.dot:children=root[$getChildrenByName](name,!1);break;case operators.dotDot:children=root[$getChildrenByName](name,!0);break;case operators.dotHash:children=(children=root[$getChildrenByClass](name)).isXFAObjectArray?children.children:[children]}if(0===children.length)return root.createNodes(parsed.slice(i));if(!(index<children.length))return parsed[i].index=index-children.length,root.createNodes(parsed.slice(i));operator=children[index];if(!operator.isXFAObject)return warn("XFA - Cannot create a node."),null;root=operator}}return null}const _applyPrototype=Symbol(),_attributes=Symbol(),_attributeNames=Symbol(),_children=Symbol("_children"),_cloneAttribute=Symbol(),_dataValue=Symbol(),_defaultValue=Symbol(),_filteredChildrenGenerator=Symbol(),_getPrototype=Symbol(),_getUnsetAttributes=Symbol(),_hasChildren=Symbol(),_max=Symbol(),_options=Symbol(),_parent=Symbol("parent"),_resolvePrototypesHelper=Symbol(),_setAttributes=Symbol(),_validator=Symbol();let uid=0;const NS_DATASETS=NamespaceIds.datasets.id;class XFAObject{constructor(nsId,name,hasChildren=!1){this[$namespaceId]=nsId,this[$nodeName]=name,this[_hasChildren]=hasChildren,this[_parent]=null,this[_children]=[],this[$uid]=""+name+uid++,this[$globalData]=null}get isXFAObject(){return!0}get isXFAObjectArray(){return!1}createNodes(path){let root=this,node=null;for(var{name,index}of path){for(let i=0,ii=isFinite(index)?index:0;i<=ii;i++){var nsId=root[$namespaceId]===NS_DATASETS?-1:root[$namespaceId];node=new XmlObject(nsId,name),root[$appendChild](node)}root=node}return node}[$onChild](child){if(this[_hasChildren]&&this[$onChildCheck](child)){var name=child[$nodeName],node=this[name];if(!(node instanceof XFAObjectArray))return null!==node&&this[$removeChild](node),this[name]=child,this[$appendChild](child),!0;if(node.push(child))return this[$appendChild](child),!0;let id="";this.id?id=` (id: ${this.id})`:this.name&&(id=` (name: ${this.name} ${this.h.value})`),warn(`XFA - node "${this[$nodeName]}"${id} has already enough "${name}"!`)}return!1}[$onChildCheck](child){return this.hasOwnProperty(child[$nodeName])&&child[$namespaceId]===this[$namespaceId]}[$isNsAgnostic](){return!1}[$acceptWhitespace](){return!1}[$isCDATAXml](){return!1}[$isBindable](){return!1}[$popPara](){this.para&&this[$getTemplateRoot]()[$extra].paraStack.pop()}[$pushPara](){this[$getTemplateRoot]()[$extra].paraStack.push(this.para)}[$setId](ids){this.id&&this[$namespaceId]===NamespaceIds.template.id&&ids.set(this.id,this)}[$getTemplateRoot](){return this[$globalData].template}[$isSplittable](){return!1}[$isThereMoreWidth](){return!1}[$appendChild](child){(child[_parent]=this)[_children].push(child),!child[$globalData]&&this[$globalData]&&(child[$globalData]=this[$globalData])}[$removeChild](child){child=this[_children].indexOf(child);this[_children].splice(child,1)}[$hasSettableValue](){return this.hasOwnProperty("value")}[$setValue](_){}[$onText](_){}[$finalize](){}[$clean](builder){delete this[_hasChildren],this[$cleanup]&&(builder.clean(this[$cleanup]),delete this[$cleanup])}[$indexOf](child){return this[_children].indexOf(child)}[$insertAt](i,child){(child[_parent]=this)[_children].splice(i,0,child),!child[$globalData]&&this[$globalData]&&(child[$globalData]=this[$globalData])}[$isTransparent](){return!this.name}[$lastAttribute](){return""}[$text](){return 0===this[_children].length?this[$content]:this[_children].map(c=>c[$text]()).join("")}get[_attributeNames](){var proto=Object.getPrototypeOf(this);if(!proto._attributes){var attributes=proto._attributes=new Set;for(const name of Object.getOwnPropertyNames(this)){if(null===this[name]||this[name]instanceof XFAObject||this[name]instanceof XFAObjectArray)break;attributes.add(name)}}return shadow(this,_attributeNames,proto._attributes)}[$isDescendent](parent){let node=this;for(;node;){if(node===parent)return!0;node=node[$getParent]()}return!1}[$getParent](){return this[_parent]}[$getSubformParent](){return this[$getParent]()}[$getChildren](name=null){return name?this[name]:this[_children]}[$dump](){var dumped=Object.create(null);this[$content]&&(dumped.$content=this[$content]);for(const name of Object.getOwnPropertyNames(this)){var value=this[name];null!==value&&(value instanceof XFAObject?dumped[name]=value[$dump]():value instanceof XFAObjectArray?value.isEmpty()||(dumped[name]=value.dump()):dumped[name]=value)}return dumped}[$toStyle](){return null}[$toHTML](){return HTMLResult.EMPTY}*[$getContainedChildren](){for(const node of this[$getChildren]())yield node}*[_filteredChildrenGenerator](filter,include){for(const node of this[$getContainedChildren]()){var availableSpace;filter&&include!==filter.has(node[$nodeName])||(availableSpace=this[$getAvailableSpace](),(availableSpace=node[$toHTML](availableSpace)).success||(this[$extra].failingNode=node),yield availableSpace)}}[$flushHTML](){return null}[$addHTML](html,bbox){this[$extra].children.push(html)}[$getAvailableSpace](){}[$childrenToHTML]({filter=null,include=!0}){if(this[$extra].generator){var availableSpace=this[$getAvailableSpace](),availableSpace=this[$extra].failingNode[$toHTML](availableSpace);if(!availableSpace.success)return availableSpace;availableSpace.html&&this[$addHTML](availableSpace.html,availableSpace.bbox),delete this[$extra].failingNode}else this[$extra].generator=this[_filteredChildrenGenerator](filter,include);for(;;){var gen=this[$extra].generator.next();if(gen.done)break;const res=gen.value;if(!res.success)return res;res.html&&this[$addHTML](res.html,res.bbox)}return this[$extra].generator=null,HTMLResult.EMPTY}[$setSetAttributes](attributes){this[_setAttributes]=new Set(Object.keys(attributes))}[_getUnsetAttributes](protoAttributes){const allAttr=this[_attributeNames],setAttr=this[_setAttributes];return[...protoAttributes].filter(x=>allAttr.has(x)&&!setAttr.has(x))}[$resolvePrototypes](ids,ancestors=new Set){for(const child of this[_children])child[_resolvePrototypesHelper](ids,ancestors)}[_resolvePrototypesHelper](ids,ancestors){var proto=this[_getPrototype](ids,ancestors);proto?this[_applyPrototype](proto,ids,ancestors):this[$resolvePrototypes](ids,ancestors)}[_getPrototype](ids,ancestors){var{use,usehref}=this;if(!use&&!usehref)return null;let proto=null,somExpression=null,id=null,ref=use;if(usehref?(ref=usehref).startsWith("#som(")&&usehref.endsWith(")")?somExpression=usehref.slice("#som(".length,-1):usehref.startsWith(".#som(")&&usehref.endsWith(")")?somExpression=usehref.slice(".#som(".length,-1):usehref.startsWith("#")?id=usehref.slice(1):usehref.startsWith(".#")&&(id=usehref.slice(2)):use.startsWith("#")?id=use.slice(1):somExpression=use,this.use=this.usehref="",!(proto=id?ids.get(id):(proto=searchNode(ids.get($root),this,somExpression,!0,!1))&&proto[0]))return warn(`XFA - Invalid prototype reference: ${ref}.`),null;if(proto[$nodeName]!==this[$nodeName])return warn(`XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`),null;if(ancestors.has(proto))return warn("XFA - Cycle detected in prototypes use."),null;ancestors.add(proto);usehref=proto[_getPrototype](ids,ancestors);return usehref&&proto[_applyPrototype](usehref,ids,ancestors),proto[$resolvePrototypes](ids,ancestors),ancestors.delete(proto),proto}[_applyPrototype](proto,ids,ancestors){if(ancestors.has(proto))warn("XFA - Cycle detected in prototypes use.");else{!this[$content]&&proto[$content]&&(this[$content]=proto[$content]),new Set(ancestors).add(proto);for(const unsetAttrName of this[_getUnsetAttributes](proto[_setAttributes]))this[unsetAttrName]=proto[unsetAttrName],this[_setAttributes]&&this[_setAttributes].add(unsetAttrName);for(const name of Object.getOwnPropertyNames(this))if(!this[_attributeNames].has(name)){var value=this[name],protoValue=proto[name];if(value instanceof XFAObjectArray){for(const child of value[_children])child[_resolvePrototypesHelper](ids,ancestors);for(let i=value[_children].length,ii=protoValue[_children].length;i<ii;i++){var child=proto[_children][i][$clone]();if(!value.push(child))break;(child[_parent]=this)[_children].push(child),child[_resolvePrototypesHelper](ids,ancestors)}}else if(null!==value)value[$resolvePrototypes](ids,ancestors),protoValue&&value[_applyPrototype](protoValue,ids,ancestors);else if(null!==protoValue){const child=protoValue[$clone]();(child[_parent]=this)[name]=child,this[_children].push(child),child[_resolvePrototypesHelper](ids,ancestors)}}}}static[_cloneAttribute](obj){return Array.isArray(obj)?obj.map(x=>XFAObject[_cloneAttribute](x)):"object"==typeof obj&&null!==obj?Object.assign({},obj):obj}[$clone](){var value,clone=Object.create(Object.getPrototypeOf(this));for(const $symbol of Object.getOwnPropertySymbols(this))try{clone[$symbol]=this[$symbol]}catch{shadow(clone,$symbol,this[$symbol])}clone[$uid]=""+clone[$nodeName]+uid++,clone[_children]=[];for(const name of Object.getOwnPropertyNames(this))this[_attributeNames].has(name)?clone[name]=XFAObject[_cloneAttribute](this[name]):(value=this[name],clone[name]=value instanceof XFAObjectArray?new XFAObjectArray(value[_max]):null);for(const child of this[_children]){var name=child[$nodeName],clonedChild=child[$clone]();clone[_children].push(clonedChild),null===(clonedChild[_parent]=clone)[name]?clone[name]=clonedChild:clone[name][_children].push(clonedChild)}return clone}[$getChildren](name=null){return name?this[_children].filter(c=>c[$nodeName]===name):this[_children]}[$getChildrenByClass](name){return this[name]}[$getChildrenByName](name,allTransparent,first=!0){return Array.from(this[$getChildrenByNameIt](name,allTransparent,first))}*[$getChildrenByNameIt](name,allTransparent,first=!0){if("parent"===name)yield this[_parent];else{for(const child of this[_children])child[$nodeName]===name&&(yield child),child.name===name&&(yield child),(allTransparent||child[$isTransparent]())&&(yield*child[$getChildrenByNameIt](name,allTransparent,!1));first&&this[_attributeNames].has(name)&&(yield new XFAAttribute(this,name,this[name]))}}}class XFAObjectArray{constructor(max=1/0){this[_max]=max,this[_children]=[]}get isXFAObject(){return!1}get isXFAObjectArray(){return!0}push(child){return this[_children].length<=this[_max]?(this[_children].push(child),!0):(warn(`XFA - node "${child[$nodeName]}" accepts no more than ${this[_max]} children`),!1)}isEmpty(){return 0===this[_children].length}dump(){return 1===this[_children].length?this[_children][0][$dump]():this[_children].map(x=>x[$dump]())}[$clone](){var clone=new XFAObjectArray(this[_max]);return clone[_children]=this[_children].map(c=>c[$clone]()),clone}get children(){return this[_children]}clear(){this[_children].length=0}}class XFAAttribute{constructor(node,name,value){this[_parent]=node,this[$nodeName]=name,this[$content]=value,this[$consumed]=!1,this[$uid]="attribute"+uid++}[$getParent](){return this[_parent]}[$isDataValue](){return!0}[$getDataValue](){return this[$content].trim()}[$setValue](value){value=value.value||"",this[$content]=value.toString()}[$text](){return this[$content]}[$isDescendent](parent){return this[_parent]===parent||this[_parent][$isDescendent](parent)}}class XmlObject extends XFAObject{constructor(nsId,name,attributes={}){if(super(nsId,name),this[$content]="",this[_dataValue]=null,"#text"!==name){var attrName,value,map=new Map;this[_attributes]=map;for([attrName,value]of Object.entries(attributes))map.set(attrName,new XFAAttribute(this,attrName,value));attributes.hasOwnProperty($nsAttributes)&&void 0!==(nsId=attributes[$nsAttributes].xfa.dataNode)&&("dataGroup"===nsId?this[_dataValue]=!1:"dataValue"===nsId&&(this[_dataValue]=!0))}this[$consumed]=!1}[$toString](buf){var tagName=this[$nodeName];if("#text"===tagName)buf.push(encodeToXmlString(this[$content]));else{var name,value,tagName=utf8StringToString(tagName),prefix=this[$namespaceId]===NS_DATASETS?"xfa:":"";buf.push("<"+prefix+tagName);for([name,value]of this[_attributes].entries()){var utf8Name=utf8StringToString(name);buf.push(` ${utf8Name}="${encodeToXmlString(value[$content])}"`)}if(null!==this[_dataValue]&&(this[_dataValue]?buf.push(' xfa:dataNode="dataValue"'):buf.push(' xfa:dataNode="dataGroup"')),this[$content]||0!==this[_children].length){if(buf.push(">"),this[$content])"string"==typeof this[$content]?buf.push(encodeToXmlString(this[$content])):this[$content][$toString](buf);else for(const child of this[_children])child[$toString](buf);buf.push(`</${prefix}${tagName}>`)}else buf.push("/>")}}[$onChild](child){var node;return this[$content]&&(node=new XmlObject(this[$namespaceId],"#text"),this[$appendChild](node),node[$content]=this[$content],this[$content]=""),this[$appendChild](child),!0}[$onText](str){this[$content]+=str}[$finalize](){var node;this[$content]&&0<this[_children].length&&(node=new XmlObject(this[$namespaceId],"#text"),this[$appendChild](node),node[$content]=this[$content],delete this[$content])}[$toHTML](){return"#text"===this[$nodeName]?HTMLResult.success({name:"#text",value:this[$content]}):HTMLResult.EMPTY}[$getChildren](name=null){return name?this[_children].filter(c=>c[$nodeName]===name):this[_children]}[$getAttributes](){return this[_attributes]}[$getChildrenByClass](name){var value=this[_attributes].get(name);return void 0!==value?value:this[$getChildren](name)}*[$getChildrenByNameIt](name,allTransparent){var value=this[_attributes].get(name);value&&(yield value);for(const child of this[_children])child[$nodeName]===name&&(yield child),allTransparent&&(yield*child[$getChildrenByNameIt](name,allTransparent))}*[$getAttributeIt](name,skipConsumed){var value=this[_attributes].get(name);!value||skipConsumed&&value[$consumed]||(yield value);for(const child of this[_children])yield*child[$getAttributeIt](name,skipConsumed)}*[$getRealChildrenByNameIt](name,allTransparent,skipConsumed){for(const child of this[_children])child[$nodeName]!==name||skipConsumed&&child[$consumed]||(yield child),allTransparent&&(yield*child[$getRealChildrenByNameIt](name,allTransparent,skipConsumed))}[$isDataValue](){return null===this[_dataValue]?0===this[_children].length||this[_children][0][$namespaceId]===NamespaceIds.xhtml.id:this[_dataValue]}[$getDataValue](){return null!==this[_dataValue]||0===this[_children].length?this[$content].trim():this[_children][0][$namespaceId]===NamespaceIds.xhtml.id?this[_children][0][$text]().trim():null}[$setValue](value){value=value.value||"",this[$content]=value.toString()}[$dump](hasNS=!1){var name,value,dumped=Object.create(null);hasNS&&(dumped.$ns=this[$namespaceId]),this[$content]&&(dumped.$content=this[$content]),dumped.$name=this[$nodeName],dumped.children=[];for(const child of this[_children])dumped.children.push(child[$dump](hasNS));dumped.attributes=Object.create(null);for([name,value]of this[_attributes])dumped.attributes[name]=value[$content];return dumped}}class ContentObject extends XFAObject{constructor(nsId,name){super(nsId,name),this[$content]=""}[$onText](text){this[$content]+=text}[$finalize](){}}class OptionObject extends ContentObject{constructor(nsId,name,options){super(nsId,name),this[_options]=options}[$finalize](){this[$content]=getKeyword({data:this[$content],defaultValue:this[_options][0],validate:k=>this[_options].includes(k)})}[$clean](builder){super[$clean](builder),delete this[_options]}}class StringObject extends ContentObject{[$finalize](){this[$content]=this[$content].trim()}}class IntegerObject extends ContentObject{constructor(nsId,name,defaultValue,validator){super(nsId,name),this[_defaultValue]=defaultValue,this[_validator]=validator}[$finalize](){this[$content]=getInteger({data:this[$content],defaultValue:this[_defaultValue],validate:this[_validator]})}[$clean](builder){super[$clean](builder),delete this[_defaultValue],delete this[_validator]}}class Option01 extends IntegerObject{constructor(nsId,name){super(nsId,name,0,n=>1===n)}}class Option10 extends IntegerObject{constructor(nsId,name){super(nsId,name,1,n=>0===n)}}function measureToString(m){return"string"==typeof m?"0px":Number.isInteger(m)?m+"px":m.toFixed(2)+"px"}const converters={anchorType(node,style){var parent=node[$getSubformParent]();if(parent&&(!parent.layout||"position"===parent.layout))switch("transform"in style||(style.transform=""),node.anchorType){case"bottomCenter":style.transform+="translate(-50%, -100%)";break;case"bottomLeft":style.transform+="translate(0,-100%)";break;case"bottomRight":style.transform+="translate(-100%,-100%)";break;case"middleCenter":style.transform+="translate(-50%,-50%)";break;case"middleLeft":style.transform+="translate(0,-50%)";break;case"middleRight":style.transform+="translate(-100%,-50%)";break;case"topCenter":style.transform+="translate(-50%,0)";break;case"topRight":style.transform+="translate(-100%,0)"}},dimensions(node,style){var parent=node[$getSubformParent]();let width=node.w;var height=node.h;if(parent.layout?.includes("row")){var parent=parent[$extra],colSpan=node.colSpan;let w;-1===colSpan?(w=parent.columnWidths.slice(parent.currentColumn).reduce((a,x)=>a+x,0),parent.currentColumn=0):(w=parent.columnWidths.slice(parent.currentColumn,parent.currentColumn+colSpan).reduce((a,x)=>a+x,0),parent.currentColumn=(parent.currentColumn+node.colSpan)%parent.columnWidths.length),isNaN(w)||(width=node.w=w)}style.width=""!==width?measureToString(width):"auto",style.height=""!==height?measureToString(height):"auto"},position(node,style){var parent=node[$getSubformParent]();parent?.layout&&"position"!==parent.layout||(style.position="absolute",style.left=measureToString(node.x),style.top=measureToString(node.y))},rotate(node,style){node.rotate&&("transform"in style||(style.transform=""),style.transform+=`rotate(-${node.rotate}deg)`,style.transformOrigin="top left")},presence(node,style){switch(node.presence){case"invisible":style.visibility="hidden";break;case"hidden":case"inactive":style.display="none"}},hAlign(node,style){if("para"===node[$nodeName])switch(node.hAlign){case"justifyAll":style.textAlign="justify-all";break;case"radix":style.textAlign="left";break;default:style.textAlign=node.hAlign}else switch(node.hAlign){case"left":style.alignSelf="start";break;case"center":style.alignSelf="center";break;case"right":style.alignSelf="end"}},margin(node,style){node.margin&&(style.margin=node.margin[$toStyle]().margin)}};function setMinMaxDimensions(node,style){"position"===node[$getSubformParent]().layout&&(0<node.minW&&(style.minWidth=measureToString(node.minW)),0<node.maxW&&(style.maxWidth=measureToString(node.maxW)),0<node.minH&&(style.minHeight=measureToString(node.minH)),0<node.maxH)&&(style.maxHeight=measureToString(node.maxH))}function layoutText(text,xfaFont,margin,lineHeight,fontFinder,width){xfaFont=new TextMeasure(xfaFont,margin,lineHeight,fontFinder);return"string"==typeof text?xfaFont.addString(text):text[$pushGlyphs](xfaFont),xfaFont.compute(width)}function layoutNode(node,availableSpace){let height=null,width=null,isBroken=!1;if((!node.w||!node.h)&&node.value){let marginH=0,marginV=0,lineHeight=(node.margin&&(marginH=node.margin.leftInset+node.margin.rightInset,marginV=node.margin.topInset+node.margin.bottomInset),null),margin=null,font=(node.para&&(margin=Object.create(null),lineHeight=""===node.para.lineHeight?null:node.para.lineHeight,margin.top=""===node.para.spaceAbove?0:node.para.spaceAbove,margin.bottom=""===node.para.spaceBelow?0:node.para.spaceBelow,margin.left=""===node.para.marginLeft?0:node.para.marginLeft,margin.right=""===node.para.marginRight?0:node.para.marginRight),node.font);if(!font){var root=node[$getTemplateRoot]();let parent=node[$getParent]();for(;parent&&parent!==root;){if(parent.font){font=parent.font;break}parent=parent[$getParent]()}}var availableSpace=(node.w||availableSpace.width)-marginH,fontFinder=node[$globalData].fontFinder;if(node.value.exData&&node.value.exData[$content]&&"text/html"===node.value.exData.contentType){var res=layoutText(node.value.exData[$content],font,margin,lineHeight,fontFinder,availableSpace);width=res.width,height=res.height,isBroken=res.isBroken}else{var text=node.value[$text]();if(text){const res=layoutText(text,font,margin,lineHeight,fontFinder,availableSpace);width=res.width,height=res.height,isBroken=res.isBroken}}null===width||node.w||(width+=marginH),null===height||node.h||(height+=marginV)}return{w:width,h:height,isBroken:isBroken}}function computeBbox(node,html,availableSpace){let bbox;if(""!==node.w&&""!==node.h)bbox=[node.x,node.y,node.w,node.h];else{if(!availableSpace)return null;let width=node.w;var parent;""===width&&(width=0===node.maxW?"position"===(parent=node[$getSubformParent]()).layout&&""!==parent.w?0:node.minW:Math.min(node.maxW,availableSpace.width),html.attributes.style.width=measureToString(width));let height=node.h;if(""===height){if(0===node.maxH){const parent=node[$getSubformParent]();height="position"===parent.layout&&""!==parent.h?0:node.minH}else height=Math.min(node.maxH,availableSpace.height);html.attributes.style.height=measureToString(height)}bbox=[node.x,node.y,width,height]}return bbox}function fixDimensions(node){var parent=node[$getSubformParent]();if(parent.layout?.includes("row")){var extra=parent[$extra],colSpan=node.colSpan;let width;width=-1===colSpan?extra.columnWidths.slice(extra.currentColumn).reduce((a,w)=>a+w,0):extra.columnWidths.slice(extra.currentColumn,extra.currentColumn+colSpan).reduce((a,w)=>a+w,0),isNaN(width)||(node.w=width)}parent.layout&&"position"!==parent.layout&&(node.x=node.y=0),"table"===node.layout&&""===node.w&&Array.isArray(node.columnWidths)&&(node.w=node.columnWidths.reduce((a,x)=>a+x,0))}function layoutClass(node){switch(node.layout){case"position":return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb";default:return"xfaPosition"}}function toStyle(node,...names){var style=Object.create(null);for(const name of names){var value=node[name];null!==value&&(converters.hasOwnProperty(name)?converters[name](node,style):value instanceof XFAObject&&((value=value[$toStyle]())?Object.assign(style,value):warn(`(DEBUG) - XFA - style for ${name} not implemented yet`)))}return style}function createWrapper(node,html){var attributes=html["attributes"],style=attributes["style"],wrapper={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};if(attributes.class.push("xfaWrapped"),node.border){var{widths,insets:attributes}=node.border[$extra];let width,height,top=attributes[0],left=attributes[3];var insetsH=attributes[0]+attributes[2],insetsW=attributes[1]+attributes[3];switch(node.border.hand){case"even":top-=widths[0]/2,left-=widths[3]/2,width=`calc(100% + ${(widths[1]+widths[3])/2-insetsW}px)`,height=`calc(100% + ${(widths[0]+widths[2])/2-insetsH}px)`;break;case"left":top-=widths[0],left-=widths[3],width=`calc(100% + ${widths[1]+widths[3]-insetsW}px)`,height=`calc(100% + ${widths[0]+widths[2]-insetsH}px)`;break;case"right":width=insetsW?`calc(100% - ${insetsW}px)`:"100%",height=insetsH?`calc(100% - ${insetsH}px)`:"100%"}var attributes=["xfaBorder"],border=(isPrintOnly(node.border)&&attributes.push("xfaPrintOnly"),{name:"div",attributes:{class:attributes,style:{top:top+"px",left:left+"px",width:width,height:height}},children:[]});for(const key of["border","borderWidth","borderColor","borderRadius","borderStyle"])void 0!==style[key]&&(border.attributes.style[key]=style[key],delete style[key]);wrapper.children.push(border,html)}else wrapper.children.push(html);for(const key of["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"])void 0!==style[key]&&(wrapper.attributes.style[key]=style[key],delete style[key]);return wrapper.attributes.style.position="absolute"===style.position?"absolute":"relative",delete style.position,style.alignSelf&&(wrapper.attributes.style.alignSelf=style.alignSelf,delete style.alignSelf),wrapper}function fixTextIndent(styles){var name,padding,indent=getMeasurement(styles.textIndent,"0px");0<=indent||(padding=getMeasurement(styles[name="padding"+("left"==("right"===styles.textAlign?"right":"left")?"Left":"Right")],"0px"),styles[name]=padding-indent+"px")}function setAccess(node,classNames){switch(node.access){case"nonInteractive":classNames.push("xfaNonInteractive");break;case"readOnly":classNames.push("xfaReadOnly");break;case"protected":classNames.push("xfaDisabled")}}function isPrintOnly(node){return 0<node.relevant.length&&!node.relevant[0].excluded&&"print"===node.relevant[0].viewname}function getCurrentPara(node){node=node[$getTemplateRoot]()[$extra].paraStack;return node.length?node.at(-1):null}function setPara(node,nodeStyle,value){if(value.attributes.class?.includes("xfaRich")){nodeStyle&&(""===node.h&&(nodeStyle.height="auto"),""===node.w)&&(nodeStyle.width="auto");nodeStyle=getCurrentPara(node);if(nodeStyle){var valueStyle=value.attributes.style;switch(valueStyle.display="flex",valueStyle.flexDirection="column",nodeStyle.vAlign){case"top":valueStyle.justifyContent="start";break;case"bottom":valueStyle.justifyContent="end";break;case"middle":valueStyle.justifyContent="center"}var key,val,node=nodeStyle[$toStyle]();for([key,val]of Object.entries(node))key in valueStyle||(valueStyle[key]=val)}}}function setFontFamily(xfaFont,node,fontFinder,style){var name,fontFamily;fontFinder?(name=stripQuotes(xfaFont.typeface),style.fontFamily=`"${name}"`,(fontFinder=fontFinder.find(name))&&(fontFamily=fontFinder.regular.cssFontInfo["fontFamily"],fontFamily!==name&&(style.fontFamily=`"${fontFamily}"`),(name=getCurrentPara(node))&&""!==name.lineHeight||style.lineHeight||(fontFamily=selectFont(xfaFont,fontFinder))&&(style.lineHeight=Math.max(1.2,fontFamily.lineHeight)))):delete style.fontFamily}function fixURL(str){str=createValidAbsoluteUrl(str,null,{addDefaultProtocol:!0,tryConvertEncoding:!0});return str?str.href:null}function createLine(node,children){return{name:"div",attributes:{class:["lr-tb"===node.layout?"xfaLr":"xfaRl"]},children:children}}function flushHTML(node){var html,htmlFromFailing;return!node[$extra]||(html={name:"div",attributes:node[$extra].attributes,children:node[$extra].children},node[$extra].failingNode&&(htmlFromFailing=node[$extra].failingNode[$flushHTML]())&&(node.layout.endsWith("-tb")?html.children.push(createLine(node,[htmlFromFailing])):html.children.push(htmlFromFailing)),0===html.children.length)?null:html}function addHTML(node,html,bbox){var extra=node[$extra],availableSpace=extra.availableSpace,[x,y,w,h]=bbox;switch(node.layout){case"position":extra.width=Math.max(extra.width,x+w),extra.height=Math.max(extra.height,y+h),extra.children.push(html);break;case"lr-tb":case"rl-tb":extra.line&&1!==extra.attempt||(extra.line=createLine(node,[]),extra.children.push(extra.line),extra.numberInLine=0),extra.numberInLine+=1,extra.line.children.push(html),0===extra.attempt?(extra.currentWidth+=w,extra.height=Math.max(extra.height,extra.prevHeight+h)):(extra.currentWidth=w,extra.prevHeight=extra.height,extra.height+=h,extra.attempt=0),extra.width=Math.max(extra.width,extra.currentWidth);break;case"rl-row":case"row":extra.children.push(html),extra.width+=w,extra.height=Math.max(extra.height,h);var height=measureToString(extra.height);for(const child of extra.children)child.attributes.style.height=height;break;case"table":case"tb":extra.width=Math.min(availableSpace.width,Math.max(extra.width,w)),extra.height+=h,extra.children.push(html)}}function getAvailableSpace(node){var availableSpace=node[$extra].availableSpace,marginV=node.margin?node.margin.topInset+node.margin.bottomInset:0,marginH=node.margin?node.margin.leftInset+node.margin.rightInset:0;switch(node.layout){case"lr-tb":case"rl-tb":return 0===node[$extra].attempt?{width:availableSpace.width-marginH-node[$extra].currentWidth,height:availableSpace.height-marginV-node[$extra].prevHeight}:{width:availableSpace.width-marginH,height:availableSpace.height-marginV-node[$extra].height};case"rl-row":case"row":return{width:node[$extra].columnWidths.slice(node[$extra].currentColumn).reduce((a,x)=>a+x),height:availableSpace.height-marginH};case"table":case"tb":return{width:availableSpace.width-marginH,height:availableSpace.height-marginV-node[$extra].height};default:return availableSpace}}function getTransformedBBox(node){let w=""===node.w?NaN:node.w,h=""===node.h?NaN:node.h,[centerX,centerY]=[0,0];switch(node.anchorType||""){case"bottomCenter":[centerX,centerY]=[w/2,h];break;case"bottomLeft":[centerX,centerY]=[0,h];break;case"bottomRight":[centerX,centerY]=[w,h];break;case"middleCenter":[centerX,centerY]=[w/2,h/2];break;case"middleLeft":[centerX,centerY]=[0,h/2];break;case"middleRight":[centerX,centerY]=[w,h/2];break;case"topCenter":[centerX,centerY]=[w/2,0];break;case"topRight":[centerX,centerY]=[w,0]}let x,y;switch(node.rotate||0){case 0:[x,y]=[-centerX,-centerY];break;case 90:[x,y]=[-centerY,centerX],[w,h]=[h,-w];break;case 180:[x,y]=[centerX,centerY],[w,h]=[-w,-h];break;case 270:[x,y]=[centerY,-centerX],[w,h]=[-h,w]}return[node.x+x+Math.min(0,w),node.y+y+Math.min(0,h),Math.abs(w),Math.abs(h)]}function checkDimensions(node,space){if(null===node[$getTemplateRoot]()[$extra].firstUnsplittable)return!0;if(0===node.w||0===node.h)return!0;var parent=node[$getSubformParent](),attempt=parent[$extra]?.attempt||0,[,y,w,h]=getTransformedBBox(node);switch(parent.layout){case"lr-tb":case"rl-tb":return 0===attempt?node[$getTemplateRoot]()[$extra].noLayoutFailure?""!==node.w?Math.round(w-space.width)<=2:2<space.width:!(""!==node.h&&2<Math.round(h-space.height))&&(""!==node.w?Math.round(w-space.width)<=2||0===parent[$extra].numberInLine&&2<space.height:2<space.width):!!node[$getTemplateRoot]()[$extra].noLayoutFailure||!(""!==node.h&&2<Math.round(h-space.height))&&(""===node.w||Math.round(w-space.width)<=2||!parent[$isThereMoreWidth]())&&2<space.height;case"table":case"tb":return node[$getTemplateRoot]()[$extra].noLayoutFailure?!0:""===node.h||node[$isSplittable]()?(""===node.w||Math.round(w-space.width)<=2||!parent[$isThereMoreWidth]())&&2<space.height:Math.round(h-space.height)<=2;case"position":return node[$getTemplateRoot]()[$extra].noLayoutFailure?!0:""===node.h||Math.round(h+y-space.height)<=2||h+y>node[$getTemplateRoot]()[$extra].currentContentArea.h;case"rl-row":case"row":return node[$getTemplateRoot]()[$extra].noLayoutFailure?!0:""===node.h||Math.round(h-space.height)<=2;default:return!0}}const TEMPLATE_NS_ID=NamespaceIds.template.id,SVG_NS="http://www.w3.org/2000/svg",MAX_ATTEMPTS_FOR_LRTB_LAYOUT=2,MAX_EMPTY_PAGES=3,DEFAULT_TAB_INDEX=5e3,HEADING_PATTERN=/^H(\d+)$/,MIMES=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif","application/octet-stream"]),IMAGES_HEADERS=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(node){return node&&node.border&&(node=node.border[$getExtra]())?{w:node.widths[0]+node.widths[2]+node.insets[0]+node.insets[2],h:node.widths[1]+node.widths[3]+node.insets[1]+node.insets[3]}:{w:0,h:0}}function hasMargin(node){return node.margin&&(node.margin.topInset||node.margin.rightInset||node.margin.bottomInset||node.margin.leftInset)}function _setValue(templateNode,value){var nodeValue;templateNode.value||(nodeValue=new Value({}),templateNode[$appendChild](nodeValue),templateNode.value=nodeValue),templateNode.value[$setValue](value)}function*getContainedChildren(node){for(const child of node[$getChildren]())child instanceof SubformSet?yield*child[$getContainedChildren]():yield child}function isRequired(node){return"error"===node.validate?.nullTest}function setTabIndex(node){for(;node;){if(!node.traversal)return void(node[$tabIndex]=node[$getParent]()[$tabIndex]);if(node[$tabIndex])return;let next=null;for(const child of node.traversal[$getChildren]())if("next"===child.operation){next=child;break}if(!next||!next.ref)return void(node[$tabIndex]=node[$getParent]()[$tabIndex]);var root=node[$getTemplateRoot](),root=(node[$tabIndex]=++root[$tabIndex],root[$searchNode](next.ref,node));if(!root)return;node=root[0]}}function applyAssist(obj,attributes){var assistTitle,assist=obj.assist;assist&&((assistTitle=assist[$toHTML]())&&(attributes.title=assistTitle),assistTitle=assist.role.match(HEADING_PATTERN))&&(assist=assistTitle[1],attributes.role="heading",attributes["aria-level"]=assist),"table"===obj.layout?attributes.role="table":"row"===obj.layout?attributes.role="row":"row"===(assistTitle=obj[$getParent]()).layout&&(attributes.role="TH"===assistTitle.assist?.role?"columnheader":"cell")}function ariaLabel(obj){return obj.assist?(obj=obj.assist).speak&&""!==obj.speak[$content]?obj.speak[$content]:obj.toolTip?obj.toolTip[$content]:null:null}function valueToHtml(value){return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:value}]})}function setFirstUnsplittable(node){var root=node[$getTemplateRoot]();null===root[$extra].firstUnsplittable&&(root[$extra].firstUnsplittable=node,root[$extra].noLayoutFailure=!0)}function unsetFirstUnsplittable(node){var root=node[$getTemplateRoot]();root[$extra].firstUnsplittable===node&&(root[$extra].noLayoutFailure=!1)}function handleBreak(node){if(node[$extra])return!1;if(node[$extra]=Object.create(null),"auto"===node.targetType)return!1;var root=node[$getTemplateRoot]();let target=null;if(node.target){if(!(target=root[$searchNode](node.target,node[$getParent]())))return!1;target=target[0]}var{currentPageArea:root,currentContentArea}=root[$extra];if("pageArea"===node.targetType)return target instanceof PageArea||(target=null),node.startNew?(node[$extra].target=target||root,!0):!(!target||target===root||(node[$extra].target=target,0));var indexForCurrent,contentAreas,pageArea=(target=target instanceof ContentArea?target:null)&&target[$getParent]();let index,nextPageArea=pageArea;if(node.startNew)index=target?(indexForCurrent=(contentAreas=pageArea.contentArea.children).indexOf(currentContentArea),contentAreas=contentAreas.indexOf(target),-1!==indexForCurrent&&indexForCurrent<contentAreas&&(nextPageArea=null),contentAreas-1):root.contentArea.children.indexOf(currentContentArea);else{if(!target||target===currentContentArea)return!1;{const contentAreas=pageArea.contentArea.children;index=contentAreas.indexOf(target)-1,nextPageArea=pageArea===root?null:pageArea}}return node[$extra].target=nextPageArea,node[$extra].index=index,!0}function handleOverflow(node,extraNode,space){var root=node[$getTemplateRoot](),saved=root[$extra].noLayoutFailure,savedMethod=extraNode[$getSubformParent],space=(extraNode[$getSubformParent]=()=>node,root[$extra].noLayoutFailure=!0,extraNode[$toHTML](space));node[$addHTML](space.html,space.bbox),root[$extra].noLayoutFailure=saved,extraNode[$getSubformParent]=savedMethod}class AppearanceFilter extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"appearanceFilter"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Arc extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"arc",!0),this.circular=getInteger({data:attributes.circular,defaultValue:0,validate:x=>1===x}),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.startAngle=getFloat({data:attributes.startAngle,defaultValue:0,validate:x=>!0}),this.sweepAngle=getFloat({data:attributes.sweepAngle,defaultValue:360,validate:x=>!0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.edge=null,this.fill=null}[$toHTML](){var edge=this.edge||new Edge({}),edgeStyle=edge[$toStyle](),style=Object.create(null);"visible"===this.fill?.presence?Object.assign(style,this.fill[$toStyle]()):style.fill="transparent",style.strokeWidth=measureToString("visible"===edge.presence?edge.thickness:0),style.stroke=edgeStyle.color;let arc;var largeArc,sweepAngle,x2,y2,edge={xmlns:SVG_NS,style:{width:"100%",height:"100%",overflow:"visible"}},edgeStyle=(360===this.sweepAngle?arc={name:"ellipse",attributes:{xmlns:SVG_NS,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:style}}:(edgeStyle=this.startAngle*Math.PI/180,sweepAngle=this.sweepAngle*Math.PI/180,largeArc=180<this.sweepAngle?1:0,[edgeStyle,sweepAngle,x2,y2]=[50*(1+Math.cos(edgeStyle)),50*(1-Math.sin(edgeStyle)),50*(1+Math.cos(edgeStyle+sweepAngle)),50*(1-Math.sin(edgeStyle+sweepAngle))],arc={name:"path",attributes:{xmlns:SVG_NS,d:`M ${edgeStyle} ${sweepAngle} A 50 50 0 ${largeArc} 0 ${x2} `+y2,vectorEffect:"non-scaling-stroke",style:style}},Object.assign(edge,{viewBox:"0 0 100 100",preserveAspectRatio:"none"})),{name:"svg",children:[arc],attributes:edge});return hasMargin(this[$getParent]()[$getParent]())?HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[edgeStyle]}):(edgeStyle.attributes.style.position="absolute",HTMLResult.success(edgeStyle))}}class Area extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"area",!0),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.id=attributes.id||"",this.name=attributes.name||"",this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.desc=null,this.extras=null,this.area=new XFAObjectArray,this.draw=new XFAObjectArray,this.exObject=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.subform=new XFAObjectArray,this.subformSet=new XFAObjectArray}*[$getContainedChildren](){yield*getContainedChildren(this)}[$isTransparent](){return!0}[$isBindable](){return!0}[$addHTML](html,bbox){var[bbox,y,w,h]=bbox;this[$extra].width=Math.max(this[$extra].width,bbox+w),this[$extra].height=Math.max(this[$extra].height,y+h),this[$extra].children.push(html)}[$getAvailableSpace](){return this[$extra].availableSpace}[$toHTML](availableSpace){var style=toStyle(this,"position"),attributes={style:style,id:this[$uid],class:["xfaArea"]},children=(isPrintOnly(this)&&attributes.class.push("xfaPrintOnly"),this.name&&(attributes.xfaName=this.name),[]),availableSpace=(this[$extra]={children:children,width:0,height:0,availableSpace:availableSpace},this[$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0}));if(!availableSpace.success)return availableSpace.isBreak()?availableSpace:(delete this[$extra],HTMLResult.FAILURE);style.width=measureToString(this[$extra].width),style.height=measureToString(this[$extra].height);availableSpace={name:"div",attributes:attributes,children:children},style=[this.x,this.y,this[$extra].width,this[$extra].height];return delete this[$extra],HTMLResult.success(availableSpace,style)}}class Assist extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"assist",!0),this.id=attributes.id||"",this.role=attributes.role||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.speak=null,this.toolTip=null}[$toHTML](){return this.toolTip?.[$content]||null}}class Barcode extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"barcode",!0),this.charEncoding=getKeyword({data:attributes.charEncoding?attributes.charEncoding.toLowerCase():"",defaultValue:"",validate:k=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(k)||k.match(/iso-8859-\d{2}/)}),this.checksum=getStringOption(attributes.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]),this.dataColumnCount=getInteger({data:attributes.dataColumnCount,defaultValue:-1,validate:x=>0<=x}),this.dataLength=getInteger({data:attributes.dataLength,defaultValue:-1,validate:x=>0<=x}),this.dataPrep=getStringOption(attributes.dataPrep,["none","flateCompress"]),this.dataRowCount=getInteger({data:attributes.dataRowCount,defaultValue:-1,validate:x=>0<=x}),this.endChar=attributes.endChar||"",this.errorCorrectionLevel=getInteger({data:attributes.errorCorrectionLevel,defaultValue:-1,validate:x=>0<=x&&x<=8}),this.id=attributes.id||"",this.moduleHeight=getMeasurement(attributes.moduleHeight,"5mm"),this.moduleWidth=getMeasurement(attributes.moduleWidth,"0.25mm"),this.printCheckDigit=getInteger({data:attributes.printCheckDigit,defaultValue:0,validate:x=>1===x}),this.rowColumnRatio=getRatio(attributes.rowColumnRatio),this.startChar=attributes.startChar||"",this.textLocation=getStringOption(attributes.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]),this.truncate=getInteger({data:attributes.truncate,defaultValue:0,validate:x=>1===x}),this.type=getStringOption(attributes.type?attributes.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]),this.upsMode=getStringOption(attributes.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.wideNarrowRatio=getRatio(attributes.wideNarrowRatio),this.encrypt=null,this.extras=null}}class Bind extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bind",!0),this.match=getStringOption(attributes.match,["once","dataRef","global","none"]),this.ref=attributes.ref||"",this.picture=null}}class BindItems extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bindItems"),this.connection=attributes.connection||"",this.labelRef=attributes.labelRef||"",this.ref=attributes.ref||"",this.valueRef=attributes.valueRef||""}}class Bookend extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bookend"),this.id=attributes.id||"",this.leader=attributes.leader||"",this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class BooleanElement extends Option01{constructor(attributes){super(TEMPLATE_NS_ID,"boolean"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$toHTML](availableSpace){return valueToHtml(1===this[$content]?"1":"0")}}class Border extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"border",!0),this.break=getStringOption(attributes.break,["close","open"]),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.corner=new XFAObjectArray(4),this.edge=new XFAObjectArray(4),this.extras=null,this.fill=null,this.margin=null}[$getExtra](){if(!this[$extra]){var edges=this.edge.children.slice();if(edges.length<4){var defaultEdge=edges.at(-1)||new Edge({});for(let i=edges.length;i<4;i++)edges.push(defaultEdge)}var widths=edges.map(edge=>edge.thickness),insets=[0,0,0,0];this.margin&&(insets[0]=this.margin.topInset,insets[1]=this.margin.rightInset,insets[2]=this.margin.bottomInset,insets[3]=this.margin.leftInset),this[$extra]={widths:widths,insets:insets,edges:edges}}return this[$extra]}[$toStyle](){var edges=this[$getExtra]()["edges"],edgeStyles=edges.map(node=>{node=node[$toStyle]();return node.color||="#000000",node}),style=Object.create(null);if(this.margin&&Object.assign(style,this.margin[$toStyle]()),"visible"===this.fill?.presence&&Object.assign(style,this.fill[$toStyle]()),this.corner.children.some(node=>0!==node.radius)){var cornerStyles=this.corner.children.map(node=>node[$toStyle]());if(2===cornerStyles.length||3===cornerStyles.length){var last=cornerStyles.at(-1);for(let i=cornerStyles.length;i<4;i++)cornerStyles.push(last)}style.borderRadius=cornerStyles.map(s=>s.radius).join(" ")}switch(this.presence){case"invisible":case"hidden":style.borderStyle="";break;case"inactive":style.borderStyle="none";break;default:style.borderStyle=edgeStyles.map(s=>s.style).join(" ")}return style.borderWidth=edgeStyles.map(s=>s.width).join(" "),style.borderColor=edgeStyles.map(s=>s.color).join(" "),style}}class Break extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"break",!0),this.after=getStringOption(attributes.after,["auto","contentArea","pageArea","pageEven","pageOdd"]),this.afterTarget=attributes.afterTarget||"",this.before=getStringOption(attributes.before,["auto","contentArea","pageArea","pageEven","pageOdd"]),this.beforeTarget=attributes.beforeTarget||"",this.bookendLeader=attributes.bookendLeader||"",this.bookendTrailer=attributes.bookendTrailer||"",this.id=attributes.id||"",this.overflowLeader=attributes.overflowLeader||"",this.overflowTarget=attributes.overflowTarget||"",this.overflowTrailer=attributes.overflowTrailer||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class BreakAfter extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"breakAfter",!0),this.id=attributes.id||"",this.leader=attributes.leader||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.target=attributes.target||"",this.targetType=getStringOption(attributes.targetType,["auto","contentArea","pageArea"]),this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.script=null}}class BreakBefore extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"breakBefore",!0),this.id=attributes.id||"",this.leader=attributes.leader||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.target=attributes.target||"",this.targetType=getStringOption(attributes.targetType,["auto","contentArea","pageArea"]),this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.script=null}[$toHTML](availableSpace){return this[$extra]={},HTMLResult.FAILURE}}class Button extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"button",!0),this.highlight=getStringOption(attributes.highlight,["inverted","none","outline","push"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$toHTML](availableSpace){var jsURL,href,grandpa=this[$getParent]()[$getParent](),htmlButton={name:"button",attributes:{id:this[$uid],class:["xfaButton"],style:{}},children:[]};for(const event of grandpa.event.children)"click"===event.activity&&event.script&&(jsURL=recoverJsURL(event.script[$content]))&&(href=fixURL(jsURL.url))&&htmlButton.children.push({name:"a",attributes:{id:"link"+this[$uid],href:href,newWindow:jsURL.newWindow,class:["xfaLink"],style:{}},children:[]});return HTMLResult.success(htmlButton)}}class Calculate extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"calculate",!0),this.id=attributes.id||"",this.override=getStringOption(attributes.override,["disabled","error","ignore","warning"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.message=null,this.script=null}}class Caption extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"caption",!0),this.id=attributes.id||"",this.placement=getStringOption(attributes.placement,["left","bottom","inline","right","top"]),this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.reserve=Math.ceil(getMeasurement(attributes.reserve)),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.font=null,this.margin=null,this.para=null,this.value=null}[$setValue](value){_setValue(this,value)}[$getExtra](availableSpace){if(!this[$extra]){let{width,height}=availableSpace;switch(this.placement){case"left":case"right":case"inline":width=this.reserve<=0?width:this.reserve;break;case"top":case"bottom":height=this.reserve<=0?height:this.reserve}this[$extra]=layoutNode(this,{width:width,height:height})}return this[$extra]}[$toHTML](availableSpace){if(!this.value)return HTMLResult.EMPTY;this[$pushPara]();var value=this.value[$toHTML](availableSpace).html;if(!value)return this[$popPara](),HTMLResult.EMPTY;var savedReserve=this.reserve;if(this.reserve<=0){var{w,h}=this[$getExtra](availableSpace);switch(this.placement){case"left":case"right":case"inline":this.reserve=w;break;case"top":case"bottom":this.reserve=h}}var availableSpace=[],style=(availableSpace.push("string"==typeof value?{name:"#text",value:value}:value),toStyle(this,"font","margin","visibility"));switch(this.placement){case"left":case"right":0<this.reserve&&(style.width=measureToString(this.reserve));break;case"top":case"bottom":0<this.reserve&&(style.height=measureToString(this.reserve))}return setPara(this,null,value),this[$popPara](),this.reserve=savedReserve,HTMLResult.success({name:"div",attributes:{style:style,class:["xfaCaption"]},children:availableSpace})}}class Certificate extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"certificate"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Certificates extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"certificates",!0),this.credentialServerPolicy=getStringOption(attributes.credentialServerPolicy,["optional","required"]),this.id=attributes.id||"",this.url=attributes.url||"",this.urlPolicy=attributes.urlPolicy||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.encryption=null,this.issuers=null,this.keyUsage=null,this.oids=null,this.signing=null,this.subjectDNs=null}}class CheckButton extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"checkButton",!0),this.id=attributes.id||"",this.mark=getStringOption(attributes.mark,["default","check","circle","cross","diamond","square","star"]),this.shape=getStringOption(attributes.shape,["square","round"]),this.size=getMeasurement(attributes.size,"10pt"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle("margin"),size=measureToString(this.size);style.width=style.height=size;let type,className,groupId;var size=this[$getParent]()[$getParent](),items=size.items.children.length&&size.items.children[0][$toHTML]().html||[],items={on:(void 0!==items[0]?items[0]:"on").toString(),off:(void 0!==items[1]?items[1]:"off").toString()},checked=(size.value?.[$text]()||"off")===items.on||void 0,container=size[$getSubformParent](),fieldId=size[$uid];let dataId;dataId=container instanceof ExclGroup?(groupId=container[$uid],type="radio",className="xfaRadio",container[$data]?.[$uid]||container[$uid]):(type="checkbox",className="xfaCheckbox",size[$data]?.[$uid]||size[$uid]);container={name:"input",attributes:{class:[className],style:style,fieldId:fieldId,dataId:dataId,type:type,checked:checked,xfaOn:items.on,xfaOff:items.off,"aria-label":ariaLabel(size),"aria-required":!1}};return groupId&&(container.attributes.name=groupId),isRequired(size)&&(container.attributes["aria-required"]=!0,container.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[container]})}}class ChoiceList extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"choiceList",!0),this.commitOn=getStringOption(attributes.commitOn,["select","exit"]),this.id=attributes.id||"",this.open=getStringOption(attributes.open,["userControl","always","multiSelect","onEntry"]),this.textEntry=getInteger({data:attributes.textEntry,defaultValue:0,validate:x=>1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","margin"),field=this[$getParent]()[$getParent](),optionStyle={fontSize:`calc(${field.font?.size||10}px * var(--scale-factor))`},children=[];if(0<field.items.children.length){var items=field.items;let displayedIndex=0,saveIndex=0;2===items.children.length&&(displayedIndex=items.children[0].save,saveIndex=1-displayedIndex);var displayed=items.children[displayedIndex][$toHTML]().html,values=items.children[saveIndex][$toHTML]().html;let selected=!1;var value=field.value?.[$text]()||"";for(let i=0,ii=displayed.length;i<ii;i++){var option={name:"option",attributes:{value:values[i]||displayed[i],style:optionStyle},value:displayed[i]};values[i]===value&&(option.attributes.selected=selected=!0),children.push(option)}selected||children.splice(0,0,{name:"option",attributes:{hidden:!0,selected:!0},value:" "})}items={class:["xfaSelect"],fieldId:field[$uid],dataId:field[$data]?.[$uid]||field[$uid],style:style,"aria-label":ariaLabel(field),"aria-required":!1};return isRequired(field)&&(items["aria-required"]=!0,items.required=!0),"multiSelect"===this.open&&(items.multiple=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[{name:"select",children:children,attributes:items}]})}}class Color extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"color",!0),this.cSpace=getStringOption(attributes.cSpace,["SRGB"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.value=attributes.value?getColor(attributes.value):"",this.extras=null}[$hasSettableValue](){return!1}[$toStyle](){return this.value?Util.makeHexColor(this.value.r,this.value.g,this.value.b):null}}class Comb extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"comb"),this.id=attributes.id||"",this.numberOfCells=getInteger({data:attributes.numberOfCells,defaultValue:0,validate:x=>0<=x}),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Connect extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"connect",!0),this.connection=attributes.connection||"",this.id=attributes.id||"",this.ref=attributes.ref||"",this.usage=getStringOption(attributes.usage,["exportAndImport","exportOnly","importOnly"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.picture=null}}class ContentArea extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"contentArea",!0),this.h=getMeasurement(attributes.h),this.id=attributes.id||"",this.name=attributes.name||"",this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=getMeasurement(attributes.w),this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.desc=null,this.extras=null}[$toHTML](availableSpace){var style={left:measureToString(this.x),top:measureToString(this.y),width:measureToString(this.w),height:measureToString(this.h)},classNames=["xfaContentarea"];return isPrintOnly(this)&&classNames.push("xfaPrintOnly"),HTMLResult.success({name:"div",children:[],attributes:{style:style,class:classNames,id:this[$uid]}})}}class Corner extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"corner",!0),this.id=attributes.id||"",this.inverted=getInteger({data:attributes.inverted,defaultValue:0,validate:x=>1===x}),this.join=getStringOption(attributes.join,["square","round"]),this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.radius=getMeasurement(attributes.radius),this.stroke=getStringOption(attributes.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]),this.thickness=getMeasurement(attributes.thickness,"0.5pt"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](){var style=toStyle(this,"visibility");return style.radius=measureToString("square"===this.join?0:this.radius),style}}class DateElement extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"date"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class DateTime extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"dateTime"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class DateTimeEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"dateTimeEdit",!0),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.picker=getStringOption(attributes.picker,["host","none"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","font","margin"),field=this[$getParent]()[$getParent](),style={name:"input",attributes:{type:"text",fieldId:field[$uid],dataId:field[$data]?.[$uid]||field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}};return isRequired(field)&&(style.attributes["aria-required"]=!0,style.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[style]})}}class Decimal extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"decimal"),this.fracDigits=getInteger({data:attributes.fracDigits,defaultValue:2,validate:x=>!0}),this.id=attributes.id||"",this.leadDigits=getInteger({data:attributes.leadDigits,defaultValue:-1,validate:x=>!0}),this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseFloat(this[$content].trim());this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class DefaultUi extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"defaultUi",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class Desc extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"desc",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}}class DigestMethod extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class DigestMethods extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"digestMethods",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.digestMethod=new XFAObjectArray}}class Draw extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"draw",!0),this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.rotate=getInteger({data:attributes.rotate,defaultValue:0,validate:x=>x%90==0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.border=null,this.caption=null,this.desc=null,this.extras=null,this.font=null,this.keep=null,this.margin=null,this.para=null,this.traversal=null,this.ui=null,this.value=null,this.setProperty=new XFAObjectArray}[$setValue](value){_setValue(this,value)}[$toHTML](availableSpace){if(setTabIndex(this),"hidden"===this.presence||"inactive"===this.presence)return HTMLResult.EMPTY;fixDimensions(this),this[$pushPara]();var savedW=this.w,savedH=this.h,{w,h,isBroken}=layoutNode(this,availableSpace);if(w&&""===this.w){if(isBroken&&this[$getSubformParent]()[$isThereMoreWidth]())return this[$popPara](),HTMLResult.FAILURE;this.w=w}if(h&&""===this.h&&(this.h=h),setFirstUnsplittable(this),!checkDimensions(this,availableSpace))return this.w=savedW,this.h=savedH,this[$popPara](),HTMLResult.FAILURE;unsetFirstUnsplittable(this);isBroken=toStyle(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin"),setMinMaxDimensions(this,isBroken),isBroken.margin&&(isBroken.padding=isBroken.margin,delete isBroken.margin),w=["xfaDraw"],this.font&&w.push("xfaFont"),isPrintOnly(this)&&w.push("xfaPrintOnly"),h={style:isBroken,id:this[$uid],class:w},this.name&&(h.xfaName=this.name),w={name:"div",attributes:h,children:[]},applyAssist(this,h),h=computeBbox(this,w,availableSpace),availableSpace=this.value?this.value[$toHTML](availableSpace).html:null;return null===availableSpace?(this.w=savedW,this.h=savedH,this[$popPara]()):(w.children.push(availableSpace),setPara(this,isBroken,availableSpace),this.w=savedW,this.h=savedH,this[$popPara]()),HTMLResult.success(createWrapper(this,w),h)}}class Edge extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"edge",!0),this.cap=getStringOption(attributes.cap,["square","butt","round"]),this.id=attributes.id||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.stroke=getStringOption(attributes.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]),this.thickness=getMeasurement(attributes.thickness,"0.5pt"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](){var style=toStyle(this,"visibility");if(Object.assign(style,{linecap:this.cap,width:measureToString(this.thickness),color:this.color?this.color[$toStyle]():"#000000",style:""}),"visible"!==this.presence)style.style="none";else switch(this.stroke){case"solid":style.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":style.style="dashed";break;case"dotted":style.style="dotted";break;case"embossed":style.style="ridge";break;case"etched":style.style="groove";break;case"lowered":style.style="inset";break;case"raised":style.style="outset"}return style}}class Encoding extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Encodings extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encodings",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.encoding=new XFAObjectArray}}class Encrypt extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encrypt",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=null}}class EncryptData extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptData",!0),this.id=attributes.id||"",this.operation=getStringOption(attributes.operation,["encrypt","decrypt"]),this.target=attributes.target||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.filter=null,this.manifest=null}}class Encryption extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryption",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=new XFAObjectArray}}class EncryptionMethod extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class EncryptionMethods extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptionMethods",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.encryptionMethod=new XFAObjectArray}}class Event extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"event",!0),this.activity=getStringOption(attributes.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]),this.id=attributes.id||"",this.listen=getStringOption(attributes.listen,["refOnly","refAndDescendents"]),this.name=attributes.name||"",this.ref=attributes.ref||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.encryptData=null,this.execute=null,this.script=null,this.signData=null,this.submit=null}}class ExData extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"exData"),this.contentType=attributes.contentType||"",this.href=attributes.href||"",this.id=attributes.id||"",this.maxLength=getInteger({data:attributes.maxLength,defaultValue:-1,validate:x=>-1<=x}),this.name=attributes.name||"",this.rid=attributes.rid||"",this.transferEncoding=getStringOption(attributes.transferEncoding,["none","base64","package"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$isCDATAXml](){return"text/html"===this.contentType}[$onChild](child){return("text/html"===this.contentType&&child[$namespaceId]===NamespaceIds.xhtml.id||"text/xml"===this.contentType)&&(this[$content]=child,!0)}[$toHTML](availableSpace){return"text/html"===this.contentType&&this[$content]?this[$content][$toHTML](availableSpace):HTMLResult.EMPTY}}class ExObject extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"exObject",!0),this.archive=attributes.archive||"",this.classId=attributes.classId||"",this.codeBase=attributes.codeBase||"",this.codeType=attributes.codeType||"",this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.exObject=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}}class ExclGroup extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"exclGroup",!0),this.access=getStringOption(attributes.access,["open","nonInteractive","protected","readOnly"]),this.accessKey=attributes.accessKey||"",this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.layout=getStringOption(attributes.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]),this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.border=null,this.calculate=null,this.caption=null,this.desc=null,this.extras=null,this.margin=null,this.para=null,this.traversal=null,this.validate=null,this.connect=new XFAObjectArray,this.event=new XFAObjectArray,this.field=new XFAObjectArray,this.setProperty=new XFAObjectArray}[$isBindable](){return!0}[$hasSettableValue](){return!0}[$setValue](value){for(const field of this.field.children){var nodeValue;field.value||(nodeValue=new Value({}),field[$appendChild](nodeValue),field.value=nodeValue),field.value[$setValue](value)}}[$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[$extra].attempt&&0<this[$extra].numberInLine||this[$getParent]()[$isThereMoreWidth]()}[$isSplittable](){var parent=this[$getSubformParent]();return!!parent[$isSplittable]()&&(void 0!==this[$extra]._isSplittable?this[$extra]._isSplittable:"position"===this.layout||this.layout.includes("row")?this[$extra]._isSplittable=!1:(!parent.layout?.endsWith("-tb")||0===parent[$extra].numberInLine)&&(this[$extra]._isSplittable=!0))}[$flushHTML](){return flushHTML(this)}[$addHTML](html,bbox){addHTML(this,html,bbox)}[$getAvailableSpace](){return getAvailableSpace(this)}[$toHTML](availableSpace){if(setTabIndex(this),"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return HTMLResult.EMPTY;fixDimensions(this);var children=[],attributes={id:this[$uid],class:[]},isSplittable=(setAccess(this,attributes.class),this[$extra]||(this[$extra]=Object.create(null)),Object.assign(this[$extra],{children:children,attributes:attributes,attempt:0,line:null,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,availableSpace.width),height:Math.min(this.h||1/0,availableSpace.height)},width:0,height:0,prevHeight:0,currentWidth:0}),this[$isSplittable]());if(isSplittable||setFirstUnsplittable(this),!checkDimensions(this,availableSpace))return HTMLResult.FAILURE;for(var filter=new Set(["field"]),availableSpace=(this.layout.includes("row")&&(availableSpace=this[$getSubformParent]().columnWidths,Array.isArray(availableSpace))&&0<availableSpace.length&&(this[$extra].columnWidths=availableSpace,this[$extra].currentColumn=0),toStyle(this,"anchorType","dimensions","position","presence","border","margin","hAlign")),classNames=["xfaExclgroup"],cl=layoutClass(this),isLrTb=(cl&&classNames.push(cl),isPrintOnly(this)&&classNames.push("xfaPrintOnly"),attributes.style=availableSpace,attributes.class=classNames,this.name&&(attributes.xfaName=this.name),this[$pushPara](),"lr-tb"===this.layout||"rl-tb"===this.layout),maxRun=isLrTb?MAX_ATTEMPTS_FOR_LRTB_LAYOUT:1;this[$extra].attempt<maxRun;this[$extra].attempt++){isLrTb&&this[$extra].attempt===MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1&&(this[$extra].numberInLine=0);var result=this[$childrenToHTML]({filter:filter,include:!0});if(result.success)break;if(result.isBreak())return this[$popPara](),result;if(isLrTb&&0===this[$extra].attempt&&0===this[$extra].numberInLine&&!this[$getTemplateRoot]()[$extra].noLayoutFailure){this[$extra].attempt=maxRun;break}}if(this[$popPara](),isSplittable||unsetFirstUnsplittable(this),this[$extra].attempt===maxRun)return isSplittable||delete this[$extra],HTMLResult.FAILURE;let marginH=0,marginV=0;this.margin&&(marginH=this.margin.leftInset+this.margin.rightInset,marginV=this.margin.topInset+this.margin.bottomInset);cl=Math.max(this[$extra].width+marginH,this.w||0),classNames=Math.max(this[$extra].height+marginV,this.h||0),isSplittable=[this.x,this.y,cl,classNames],""===this.w&&(availableSpace.width=measureToString(cl)),""===this.h&&(availableSpace.height=measureToString(classNames)),cl={name:"div",attributes:attributes,children:children};return applyAssist(this,attributes),delete this[$extra],HTMLResult.success(createWrapper(this,cl),isSplittable)}}class Execute extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"execute"),this.connection=attributes.connection||"",this.executeType=getStringOption(attributes.executeType,["import","remerge"]),this.id=attributes.id||"",this.runAt=getStringOption(attributes.runAt,["client","both","server"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Extras extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"extras",!0),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.extras=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}}class Field extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"field",!0),this.access=getStringOption(attributes.access,["open","nonInteractive","protected","readOnly"]),this.accessKey=attributes.accessKey||"",this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.rotate=getInteger({data:attributes.rotate,defaultValue:0,validate:x=>x%90==0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.border=null,this.calculate=null,this.caption=null,this.desc=null,this.extras=null,this.font=null,this.format=null,this.items=new XFAObjectArray(2),this.keep=null,this.margin=null,this.para=null,this.traversal=null,this.ui=null,this.validate=null,this.value=null,this.bindItems=new XFAObjectArray,this.connect=new XFAObjectArray,this.event=new XFAObjectArray,this.setProperty=new XFAObjectArray}[$isBindable](){return!0}[$setValue](value){_setValue(this,value)}[$toHTML](availableSpace){if(setTabIndex(this),!this.ui){this.ui=new Ui({}),this.ui[$globalData]=this[$globalData],this[$appendChild](this.ui);let node;switch(this.items.children.length){case 0:node=new TextEdit({}),this.ui.textEdit=node;break;case 1:node=new CheckButton({}),this.ui.checkButton=node;break;case 2:node=new ChoiceList({}),this.ui.choiceList=node}this.ui[$appendChild](node)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return HTMLResult.EMPTY;this.caption&&delete this.caption[$extra],this[$pushPara]();var caption=this.caption?this.caption[$toHTML](availableSpace).html:null,savedW=this.w,savedH=this.h;let marginH=0,marginV=0,borderDims=(this.margin&&(marginH=this.margin.leftInset+this.margin.rightInset,marginV=this.margin.topInset+this.margin.bottomInset),null);if(""===this.w||""===this.h){let width=null,height=null,uiW=0,uiH=0;if(this.ui.checkButton?uiW=uiH=this.ui.checkButton.size:({w,h}=layoutNode(this,availableSpace),uiH=null!==w?(uiW=w,h):fonts_getMetrics(this.font,!0).lineNoGap),borderDims=getBorderDims(this.ui[$getExtra]()),uiW+=borderDims.w,uiH+=borderDims.h,this.caption){const{w,h,isBroken}=this.caption[$getExtra](availableSpace);if(isBroken&&this[$getSubformParent]()[$isThereMoreWidth]())return this[$popPara](),HTMLResult.FAILURE;switch(width=w,height=h,this.caption.placement){case"left":case"right":case"inline":width+=uiW;break;case"top":case"bottom":height+=uiH}}else width=uiW,height=uiH;width&&""===this.w&&(width+=marginH,this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+1<width?width:this.minW)),height&&""===this.h&&(height+=marginV,this.h=Math.min(this.maxH<=0?1/0:this.maxH,this.minH+1<height?height:this.minH))}if(this[$popPara](),fixDimensions(this),setFirstUnsplittable(this),!checkDimensions(this,availableSpace))return this.w=savedW,this.h=savedH,this[$popPara](),HTMLResult.FAILURE;unsetFirstUnsplittable(this);var w=toStyle(this,"font","dimensions","position","rotate","anchorType","presence","margin","hAlign"),h=(setMinMaxDimensions(this,w),["xfaField"]),attributes=(this.font&&h.push("xfaFont"),isPrintOnly(this)&&h.push("xfaPrintOnly"),{style:w,id:this[$uid],class:h}),h=(w.margin&&(w.padding=w.margin,delete w.margin),setAccess(this,h),this.name&&(attributes.xfaName=this.name),[]),html={name:"div",attributes:attributes,children:h},attributes=(applyAssist(this,attributes),this.border?this.border[$toStyle]():null),bbox=computeBbox(this,html,availableSpace),ui=this.ui[$toHTML]().html;if(ui){this[$tabIndex]&&(ui.children?.[0]?ui.children[0].attributes.tabindex=this[$tabIndex]:ui.attributes.tabindex=this[$tabIndex]),ui.attributes.style||(ui.attributes.style=Object.create(null));let aElement=null;if(this.ui.button?(1===ui.children.length&&([aElement]=ui.children.splice(0,1)),Object.assign(ui.attributes.style,attributes)):Object.assign(w,attributes),h.push(ui),this.value)if(this.ui.imageEdit)ui.children.push(this.value[$toHTML]().html);else if(!this.ui.button){let value="";this.value.exData?value=this.value.exData[$text]():this.value.text?value=this.value.text[$getExtra]():null!==(h=this.value[$toHTML]().html)&&(value=h.children[0].value),this.ui.textEdit&&this.value.text?.maxChars&&(ui.children[0].attributes.maxLength=this.value.text.maxChars),value&&(this.ui.numericEdit&&(value=parseFloat(value),value=isNaN(value)?"":value.toString()),"textarea"===ui.children[0].name?ui.children[0].attributes.textContent=value:ui.children[0].attributes.value=value)}if(!this.ui.imageEdit&&ui.children?.[0]&&this.h){borderDims=borderDims||getBorderDims(this.ui[$getExtra]());let captionHeight=0;this.caption&&["top","bottom"].includes(this.caption.placement)?((captionHeight=this.caption.reserve)<=0&&(captionHeight=this.caption[$getExtra](availableSpace).h),h=this.h-captionHeight-marginV-borderDims.h,ui.children[0].attributes.style.height=measureToString(h)):ui.children[0].attributes.style.height="100%"}if(aElement&&ui.children.push(aElement),caption){if(this.ui.button)return w.padding&&delete w.padding,"div"===caption.name&&(caption.name="span"),ui.children.push(caption),HTMLResult.success(html,bbox);switch(this.ui.checkButton&&(caption.attributes.class[0]="xfaCaptionForCheckButton"),ui.attributes.class||(ui.attributes.class=[]),ui.children.splice(0,0,caption),this.caption.placement){case"left":ui.attributes.class.push("xfaLeft");break;case"right":ui.attributes.class.push("xfaRight");break;case"top":ui.attributes.class.push("xfaTop");break;case"bottom":ui.attributes.class.push("xfaBottom");break;case"inline":ui.attributes.class.push("xfaLeft")}}else ui.attributes.class&&ui.attributes.class.push("xfaLeft");this.w=savedW,this.h=savedH}else Object.assign(w,attributes);return HTMLResult.success(createWrapper(this,html),bbox)}}class Fill extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"fill",!0),this.id=attributes.id||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null,this.linear=null,this.pattern=null,this.radial=null,this.solid=null,this.stipple=null}[$toStyle](){var parent=this[$getParent](),ggrandpa=parent[$getParent]()[$getParent](),style=Object.create(null);let propName="color",altPropName=propName;parent instanceof Border&&(propName="background-color",altPropName="background",ggrandpa instanceof Ui)&&(style.backgroundColor="white"),(parent instanceof Rectangle||parent instanceof Arc)&&(propName=altPropName="fill",style.fill="white");for(const name of Object.getOwnPropertyNames(this))if("extras"!==name&&"color"!==name){var obj=this[name];if(obj instanceof XFAObject)return(obj=obj[$toStyle](this.color))&&(style[obj.startsWith("#")?propName:altPropName]=obj),style}if(this.color?.value){const color=this.color[$toStyle]();style[color.startsWith("#")?propName:altPropName]=color}return style}}class Filter extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"filter",!0),this.addRevocationInfo=getStringOption(attributes.addRevocationInfo,["","required","optional","none"]),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.version=getInteger({data:this.version,defaultValue:5,validate:x=>1<=x&&x<=5}),this.appearanceFilter=null,this.certificates=null,this.digestMethods=null,this.encodings=null,this.encryptionMethods=null,this.handler=null,this.lockDocument=null,this.mdp=null,this.reasons=null,this.timeStamp=null}}class Float extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"float"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseFloat(this[$content].trim());this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class template_Font extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"font",!0),this.baselineShift=getMeasurement(attributes.baselineShift),this.fontHorizontalScale=getFloat({data:attributes.fontHorizontalScale,defaultValue:100,validate:x=>0<=x}),this.fontVerticalScale=getFloat({data:attributes.fontVerticalScale,defaultValue:100,validate:x=>0<=x}),this.id=attributes.id||"",this.kerningMode=getStringOption(attributes.kerningMode,["none","pair"]),this.letterSpacing=getMeasurement(attributes.letterSpacing,"0"),this.lineThrough=getInteger({data:attributes.lineThrough,defaultValue:0,validate:x=>1===x||2===x}),this.lineThroughPeriod=getStringOption(attributes.lineThroughPeriod,["all","word"]),this.overline=getInteger({data:attributes.overline,defaultValue:0,validate:x=>1===x||2===x}),this.overlinePeriod=getStringOption(attributes.overlinePeriod,["all","word"]),this.posture=getStringOption(attributes.posture,["normal","italic"]),this.size=getMeasurement(attributes.size,"10pt"),this.typeface=attributes.typeface||"Courier",this.underline=getInteger({data:attributes.underline,defaultValue:0,validate:x=>1===x||2===x}),this.underlinePeriod=getStringOption(attributes.underlinePeriod,["all","word"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.weight=getStringOption(attributes.weight,["normal","bold"]),this.extras=null,this.fill=null}[$clean](builder){super[$clean](builder),this[$globalData].usedTypefaces.add(this.typeface)}[$toStyle](){var style=toStyle(this,"fill"),color=style.color;return color&&("#000000"===color?delete style.color:color.startsWith("#")||(style.background=color,style.backgroundClip="text",style.color="transparent")),this.baselineShift&&(style.verticalAlign=measureToString(this.baselineShift)),style.fontKerning="none"===this.kerningMode?"none":"normal",style.letterSpacing=measureToString(this.letterSpacing),0!==this.lineThrough&&(style.textDecoration="line-through",2===this.lineThrough)&&(style.textDecorationStyle="double"),0!==this.overline&&(style.textDecoration="overline",2===this.overline)&&(style.textDecorationStyle="double"),style.fontStyle=this.posture,style.fontSize=measureToString(.99*this.size),setFontFamily(this,this,this[$globalData].fontFinder,style),0!==this.underline&&(style.textDecoration="underline",2===this.underline)&&(style.textDecorationStyle="double"),style.fontWeight=this.weight,style}}class Format extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"format",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.picture=null}}class Handler extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"handler"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Hyphenation extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"hyphenation"),this.excludeAllCaps=getInteger({data:attributes.excludeAllCaps,defaultValue:0,validate:x=>1===x}),this.excludeInitialCap=getInteger({data:attributes.excludeInitialCap,defaultValue:0,validate:x=>1===x}),this.hyphenate=getInteger({data:attributes.hyphenate,defaultValue:0,validate:x=>1===x}),this.id=attributes.id||"",this.pushCharacterCount=getInteger({data:attributes.pushCharacterCount,defaultValue:3,validate:x=>0<=x}),this.remainCharacterCount=getInteger({data:attributes.remainCharacterCount,defaultValue:3,validate:x=>0<=x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.wordCharacterCount=getInteger({data:attributes.wordCharacterCount,defaultValue:7,validate:x=>0<=x})}}class Image extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"image"),this.aspect=getStringOption(attributes.aspect,["fit","actual","height","none","width"]),this.contentType=attributes.contentType||"",this.href=attributes.href||"",this.id=attributes.id||"",this.name=attributes.name||"",this.transferEncoding=getStringOption(attributes.transferEncoding,["base64","none","package"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$toHTML](){if(this.contentType&&!MIMES.has(this.contentType.toLowerCase()))return HTMLResult.EMPTY;let buffer=this[$globalData].images&&this[$globalData].images.get(this.href);if(!buffer&&(this.href||!this[$content]))return HTMLResult.EMPTY;if(!(buffer=buffer||"base64"!==this.transferEncoding?buffer:stringToBytes(atob(this[$content]))))return HTMLResult.EMPTY;if(!this.contentType){for(var[header,type]of IMAGES_HEADERS)if(buffer.length>header.length&&header.every((x,i)=>x===buffer[i])){this.contentType=type;break}if(!this.contentType)return HTMLResult.EMPTY}var blob=new Blob([buffer],{type:this.contentType});let style;switch(this.aspect){case"fit":case"actual":break;case"height":style={height:"100%",objectFit:"fill"};break;case"none":style={width:"100%",height:"100%",objectFit:"fill"};break;case"width":style={width:"100%",objectFit:"fill"}}var parent=this[$getParent]();return HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:style,src:URL.createObjectURL(blob),alt:parent?ariaLabel(parent[$getParent]()):null}})}}class ImageEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"imageEdit",!0),this.data=getStringOption(attributes.data,["link","embed"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){return"embed"===this.data?HTMLResult.success({name:"div",children:[],attributes:{}}):HTMLResult.EMPTY}}class Integer extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"integer"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseInt(this[$content].trim(),10);this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class Issuers extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"issuers",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=new XFAObjectArray}}class Items extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"items",!0),this.id=attributes.id||"",this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.ref=attributes.ref||"",this.save=getInteger({data:attributes.save,defaultValue:0,validate:x=>1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}[$toHTML](){var output=[];for(const child of this[$getChildren]())output.push(child[$text]());return HTMLResult.success(output)}}class Keep extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"keep",!0),this.id=attributes.id||"";var options=["none","contentArea","pageArea"];this.intact=getStringOption(attributes.intact,options),this.next=getStringOption(attributes.next,options),this.previous=getStringOption(attributes.previous,options),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class KeyUsage extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"keyUsage");var options=["","yes","no"];this.crlSign=getStringOption(attributes.crlSign,options),this.dataEncipherment=getStringOption(attributes.dataEncipherment,options),this.decipherOnly=getStringOption(attributes.decipherOnly,options),this.digitalSignature=getStringOption(attributes.digitalSignature,options),this.encipherOnly=getStringOption(attributes.encipherOnly,options),this.id=attributes.id||"",this.keyAgreement=getStringOption(attributes.keyAgreement,options),this.keyCertSign=getStringOption(attributes.keyCertSign,options),this.keyEncipherment=getStringOption(attributes.keyEncipherment,options),this.nonRepudiation=getStringOption(attributes.nonRepudiation,options),this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Line extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"line",!0),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.slope=getStringOption(attributes.slope,["\\","/"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.edge=null}[$toHTML](){var parent=this[$getParent]()[$getParent](),edge=this.edge||new Edge({}),edgeStyle=edge[$toStyle](),style=Object.create(null),edge="visible"===edge.presence?edge.thickness:0;style.strokeWidth=measureToString(edge),style.stroke=edgeStyle.color;let x1,y1,x2,y2,width="100%",height="100%";parent.w<=edge?([x1,y1,x2,y2]=["50%",0,"50%","100%"],width=style.strokeWidth):parent.h<=edge?([x1,y1,x2,y2]=[0,"50%","100%","50%"],height=style.strokeWidth):"\\"===this.slope?[x1,y1,x2,y2]=[0,0,"100%","100%"]:[x1,y1,x2,y2]=[0,"100%","100%",0];edgeStyle={name:"svg",children:[{name:"line",attributes:{xmlns:SVG_NS,x1:x1,y1:y1,x2:x2,y2:y2,style:style}}],attributes:{xmlns:SVG_NS,width:width,height:height,style:{overflow:"visible"}}};return hasMargin(parent)?HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[edgeStyle]}):(edgeStyle.attributes.style.position="absolute",HTMLResult.success(edgeStyle))}}class Linear extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"linear",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["toRight","toBottom","toLeft","toTop"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](startColor){return startColor=startColor?startColor[$toStyle]():"#FFFFFF",`linear-gradient(${this.type.replace(/([RBLT])/," $1").toLowerCase()}, ${startColor}, ${this.color?this.color[$toStyle]():"#000000"})`}}class LockDocument extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"lockDocument"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){this[$content]=getStringOption(this[$content],["auto","0","1"])}}class Manifest extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"manifest",!0),this.action=getStringOption(attributes.action,["include","all","exclude"]),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.ref=new XFAObjectArray}}class Margin extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"margin",!0),this.bottomInset=getMeasurement(attributes.bottomInset,"0"),this.id=attributes.id||"",this.leftInset=getMeasurement(attributes.leftInset,"0"),this.rightInset=getMeasurement(attributes.rightInset,"0"),this.topInset=getMeasurement(attributes.topInset,"0"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$toStyle](){return{margin:measureToString(this.topInset)+" "+measureToString(this.rightInset)+" "+measureToString(this.bottomInset)+" "+measureToString(this.leftInset)}}}class Mdp extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"mdp"),this.id=attributes.id||"",this.permissions=getInteger({data:attributes.permissions,defaultValue:2,validate:x=>1===x||3===x}),this.signatureType=getStringOption(attributes.signatureType,["filler","author"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Medium extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"medium"),this.id=attributes.id||"",this.imagingBBox=getBBox(attributes.imagingBBox),this.long=getMeasurement(attributes.long),this.orientation=getStringOption(attributes.orientation,["portrait","landscape"]),this.short=getMeasurement(attributes.short),this.stock=attributes.stock||"",this.trayIn=getStringOption(attributes.trayIn,["auto","delegate","pageFront"]),this.trayOut=getStringOption(attributes.trayOut,["auto","delegate"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Message extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"message",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.text=new XFAObjectArray}}class NumericEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"numericEdit",!0),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","font","margin"),field=this[$getParent]()[$getParent](),style={name:"input",attributes:{type:"text",fieldId:field[$uid],dataId:field[$data]?.[$uid]||field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}};return isRequired(field)&&(style.attributes["aria-required"]=!0,style.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[style]})}}class Occur extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"occur",!0),this.id=attributes.id||"",this.initial=""!==attributes.initial?getInteger({data:attributes.initial,defaultValue:"",validate:x=>!0}):"",this.max=""!==attributes.max?getInteger({data:attributes.max,defaultValue:1,validate:x=>!0}):"",this.min=""!==attributes.min?getInteger({data:attributes.min,defaultValue:1,validate:x=>!0}):"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$clean](){var parent=this[$getParent](),originalMin=this.min;""===this.min&&(this.min=parent instanceof PageArea||parent instanceof PageSet?0:1),""===this.max&&(this.max=""===originalMin?parent instanceof PageArea||parent instanceof PageSet?-1:1:this.min),-1!==this.max&&this.max<this.min&&(this.max=this.min),""===this.initial&&(this.initial=parent instanceof Template?1:this.min)}}class Oid extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"oid"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Oids extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"oids",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.oid=new XFAObjectArray}}class Overflow extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"overflow"),this.id=attributes.id||"",this.leader=attributes.leader||"",this.target=attributes.target||"",this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$getExtra](){var parent,target,leader,root;return this[$extra]||(parent=this[$getParent](),target=(root=this[$getTemplateRoot]())[$searchNode](this.target,parent),leader=root[$searchNode](this.leader,parent),root=root[$searchNode](this.trailer,parent),this[$extra]={target:target?.[0]||null,leader:leader?.[0]||null,trailer:root?.[0]||null,addLeader:!1,addTrailer:!1}),this[$extra]}}class PageArea extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"pageArea",!0),this.blankOrNotBlank=getStringOption(attributes.blankOrNotBlank,["any","blank","notBlank"]),this.id=attributes.id||"",this.initialNumber=getInteger({data:attributes.initialNumber,defaultValue:1,validate:x=>!0}),this.name=attributes.name||"",this.numbered=getInteger({data:attributes.numbered,defaultValue:1,validate:x=>!0}),this.oddOrEven=getStringOption(attributes.oddOrEven,["any","even","odd"]),this.pagePosition=getStringOption(attributes.pagePosition,["any","first","last","only","rest"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.desc=null,this.extras=null,this.medium=null,this.occur=null,this.area=new XFAObjectArray,this.contentArea=new XFAObjectArray,this.draw=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.subform=new XFAObjectArray}[$isUsable](){return this[$extra]?!this.occur||-1===this.occur.max||this[$extra].numberOfUse<this.occur.max:(this[$extra]={numberOfUse:0},!0)}[$cleanPage](){delete this[$extra]}[$getNextPage](){this[$extra]||(this[$extra]={numberOfUse:0});var parent=this[$getParent]();return"orderedOccurrence"===parent.relation&&this[$isUsable]()?(this[$extra].numberOfUse+=1,this):parent[$getNextPage]()}[$getAvailableSpace](){return this[$extra].space||{width:0,height:0}}[$toHTML](){this[$extra]||(this[$extra]={numberOfUse:1});var x,children=[],style=(this[$extra].children=children,Object.create(null));return this.medium&&this.medium.short&&this.medium.long?(style.width=measureToString(this.medium.short),style.height=measureToString(this.medium.long),this[$extra].space={width:this.medium.short,height:this.medium.long},"landscape"===this.medium.orientation&&(x=style.width,style.width=style.height,style.height=x,this[$extra].space={width:this.medium.long,height:this.medium.short})):warn("XFA - No medium specified in pageArea: please file a bug."),this[$childrenToHTML]({filter:new Set(["area","draw","field","subform"]),include:!0}),this[$childrenToHTML]({filter:new Set(["contentArea"]),include:!0}),HTMLResult.success({name:"div",children:children,attributes:{class:["xfaPage"],id:this[$uid],style:style,xfaName:this.name}})}}class PageSet extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"pageSet",!0),this.duplexImposition=getStringOption(attributes.duplexImposition,["longEdge","shortEdge"]),this.id=attributes.id||"",this.name=attributes.name||"",this.relation=getStringOption(attributes.relation,["orderedOccurrence","duplexPaginated","simplexPaginated"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.occur=null,this.pageArea=new XFAObjectArray,this.pageSet=new XFAObjectArray}[$cleanPage](){for(const page of this.pageArea.children)page[$cleanPage]();for(const page of this.pageSet.children)page[$cleanPage]()}[$isUsable](){return!this.occur||-1===this.occur.max||this[$extra].numberOfUse<this.occur.max}[$getNextPage](){if(this[$extra]||(this[$extra]={numberOfUse:1,pageIndex:-1,pageSetIndex:-1}),"orderedOccurrence"===this.relation){if(this[$extra].pageIndex+1<this.pageArea.children.length)return this[$extra].pageIndex+=1,this.pageArea.children[this[$extra].pageIndex][$getNextPage]();if(this[$extra].pageSetIndex+1<this.pageSet.children.length)return this[$extra].pageSetIndex+=1,this.pageSet.children[this[$extra].pageSetIndex][$getNextPage]();if(this[$isUsable]())this[$extra].numberOfUse+=1,this[$extra].pageIndex=-1,this[$extra].pageSetIndex=-1;else{var parent=this[$getParent]();if(parent instanceof PageSet)return parent[$getNextPage]();this[$cleanPage]()}return this[$getNextPage]()}parent=this[$getTemplateRoot]()[$extra].pageNumber;const parity=parent%2==0?"even":"odd",position=0===parent?"first":"rest";parent=this.pageArea.children.find(p=>p.oddOrEven===parity&&p.pagePosition===position);return parent||this.pageArea.children.find(p=>"any"===p.oddOrEven&&p.pagePosition===position)||this.pageArea.children.find(p=>"any"===p.oddOrEven&&"any"===p.pagePosition)||this.pageArea.children[0]}}class Para extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"para",!0),this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.lineHeight=attributes.lineHeight?getMeasurement(attributes.lineHeight,"0pt"):"",this.marginLeft=attributes.marginLeft?getMeasurement(attributes.marginLeft,"0pt"):"",this.marginRight=attributes.marginRight?getMeasurement(attributes.marginRight,"0pt"):"",this.orphans=getInteger({data:attributes.orphans,defaultValue:0,validate:x=>0<=x}),this.preserve=attributes.preserve||"",this.radixOffset=attributes.radixOffset?getMeasurement(attributes.radixOffset,"0pt"):"",this.spaceAbove=attributes.spaceAbove?getMeasurement(attributes.spaceAbove,"0pt"):"",this.spaceBelow=attributes.spaceBelow?getMeasurement(attributes.spaceBelow,"0pt"):"",this.tabDefault=attributes.tabDefault?getMeasurement(this.tabDefault):"",this.tabStops=(attributes.tabStops||"").trim().split(/\s+/).map((x,i)=>i%2==1?getMeasurement(x):x),this.textIndent=attributes.textIndent?getMeasurement(attributes.textIndent,"0pt"):"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.vAlign=getStringOption(attributes.vAlign,["top","bottom","middle"]),this.widows=getInteger({data:attributes.widows,defaultValue:0,validate:x=>0<=x}),this.hyphenation=null}[$toStyle](){var style=toStyle(this,"hAlign");return""!==this.marginLeft&&(style.paddingLeft=measureToString(this.marginLeft)),""!==this.marginRight&&(style.paddingight=measureToString(this.marginRight)),""!==this.spaceAbove&&(style.paddingTop=measureToString(this.spaceAbove)),""!==this.spaceBelow&&(style.paddingBottom=measureToString(this.spaceBelow)),""!==this.textIndent&&(style.textIndent=measureToString(this.textIndent),fixTextIndent(style)),0<this.lineHeight&&(style.lineHeight=measureToString(this.lineHeight)),""!==this.tabDefault&&(style.tabSize=measureToString(this.tabDefault)),this.tabStops.length,this.hyphenatation&&Object.assign(style,this.hyphenatation[$toStyle]()),style}}class PasswordEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"passwordEdit",!0),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.passwordChar=attributes.passwordChar||"*",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.margin=null}}class template_Pattern extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"pattern",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["crossHatch","crossDiagonal","diagonalLeft","diagonalRight","horizontal","vertical"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](startColor){startColor=startColor?startColor[$toStyle]():"#FFFFFF";var endColor=this.color?this.color[$toStyle]():"#000000",cmd="repeating-linear-gradient",colors=startColor+`,${startColor} 5px,${endColor} 5px,${endColor} 10px`;switch(this.type){case"crossHatch":return cmd+`(to top,${colors}) ${cmd}(to right,${colors})`;case"crossDiagonal":return cmd+`(45deg,${colors}) ${cmd}(-45deg,${colors})`;case"diagonalLeft":return cmd+`(45deg,${colors})`;case"diagonalRight":return cmd+`(-45deg,${colors})`;case"horizontal":return cmd+`(to top,${colors})`;case"vertical":return cmd+`(to right,${colors})`}return""}}class Picture extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"picture"),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Proto extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"proto",!0),this.appearanceFilter=new XFAObjectArray,this.arc=new XFAObjectArray,this.area=new XFAObjectArray,this.assist=new XFAObjectArray,this.barcode=new XFAObjectArray,this.bindItems=new XFAObjectArray,this.bookend=new XFAObjectArray,this.boolean=new XFAObjectArray,this.border=new XFAObjectArray,this.break=new XFAObjectArray,this.breakAfter=new XFAObjectArray,this.breakBefore=new XFAObjectArray,this.button=new XFAObjectArray,this.calculate=new XFAObjectArray,this.caption=new XFAObjectArray,this.certificate=new XFAObjectArray,this.certificates=new XFAObjectArray,this.checkButton=new XFAObjectArray,this.choiceList=new XFAObjectArray,this.color=new XFAObjectArray,this.comb=new XFAObjectArray,this.connect=new XFAObjectArray,this.contentArea=new XFAObjectArray,this.corner=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.dateTimeEdit=new XFAObjectArray,this.decimal=new XFAObjectArray,this.defaultUi=new XFAObjectArray,this.desc=new XFAObjectArray,this.digestMethod=new XFAObjectArray,this.digestMethods=new XFAObjectArray,this.draw=new XFAObjectArray,this.edge=new XFAObjectArray,this.encoding=new XFAObjectArray,this.encodings=new XFAObjectArray,this.encrypt=new XFAObjectArray,this.encryptData=new XFAObjectArray,this.encryption=new XFAObjectArray,this.encryptionMethod=new XFAObjectArray,this.encryptionMethods=new XFAObjectArray,this.event=new XFAObjectArray,this.exData=new XFAObjectArray,this.exObject=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.execute=new XFAObjectArray,this.extras=new XFAObjectArray,this.field=new XFAObjectArray,this.fill=new XFAObjectArray,this.filter=new XFAObjectArray,this.float=new XFAObjectArray,this.font=new XFAObjectArray,this.format=new XFAObjectArray,this.handler=new XFAObjectArray,this.hyphenation=new XFAObjectArray,this.image=new XFAObjectArray,this.imageEdit=new XFAObjectArray,this.integer=new XFAObjectArray,this.issuers=new XFAObjectArray,this.items=new XFAObjectArray,this.keep=new XFAObjectArray,this.keyUsage=new XFAObjectArray,this.line=new XFAObjectArray,this.linear=new XFAObjectArray,this.lockDocument=new XFAObjectArray,this.manifest=new XFAObjectArray,this.margin=new XFAObjectArray,this.mdp=new XFAObjectArray,this.medium=new XFAObjectArray,this.message=new XFAObjectArray,this.numericEdit=new XFAObjectArray,this.occur=new XFAObjectArray,this.oid=new XFAObjectArray,this.oids=new XFAObjectArray,this.overflow=new XFAObjectArray,this.pageArea=new XFAObjectArray,this.pageSet=new XFAObjectArray,this.para=new XFAObjectArray,this.passwordEdit=new XFAObjectArray,this.pattern=new XFAObjectArray,this.picture=new XFAObjectArray,this.radial=new XFAObjectArray,this.reason=new XFAObjectArray,this.reasons=new XFAObjectArray,this.rectangle=new XFAObjectArray,this.ref=new XFAObjectArray,this.script=new XFAObjectArray,this.setProperty=new XFAObjectArray,this.signData=new XFAObjectArray,this.signature=new XFAObjectArray,this.signing=new XFAObjectArray,this.solid=new XFAObjectArray,this.speak=new XFAObjectArray,this.stipple=new XFAObjectArray,this.subform=new XFAObjectArray,this.subformSet=new XFAObjectArray,this.subjectDN=new XFAObjectArray,this.subjectDNs=new XFAObjectArray,this.submit=new XFAObjectArray,this.text=new XFAObjectArray,this.textEdit=new XFAObjectArray,this.time=new XFAObjectArray,this.timeStamp=new XFAObjectArray,this.toolTip=new XFAObjectArray,this.traversal=new XFAObjectArray,this.traverse=new XFAObjectArray,this.ui=new XFAObjectArray,this.validate=new XFAObjectArray,this.value=new XFAObjectArray,this.variables=new XFAObjectArray}}class Radial extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"radial",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["toEdge","toCenter"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](startColor){startColor=startColor?startColor[$toStyle]():"#FFFFFF";var endColor=this.color?this.color[$toStyle]():"#000000";return`radial-gradient(circle at center, ${"toEdge"===this.type?startColor+","+endColor:endColor+","+startColor})`}}class Reason extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"reason"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Reasons extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"reasons",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.reason=new XFAObjectArray}}class Rectangle extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"rectangle",!0),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.corner=new XFAObjectArray(4),this.edge=new XFAObjectArray(4),this.fill=null}[$toHTML](){var edge=this.edge.children.length?this.edge.children[0]:new Edge({}),edgeStyle=edge[$toStyle](),style=Object.create(null);"visible"===this.fill?.presence?Object.assign(style,this.fill[$toStyle]()):style.fill="transparent",style.strokeWidth=measureToString("visible"===edge.presence?edge.thickness:0),style.stroke=edgeStyle.color;edge=(this.corner.children.length?this.corner.children[0]:new Corner({}))[$toStyle](),edgeStyle={name:"svg",children:[{name:"rect",attributes:{xmlns:SVG_NS,width:"100%",height:"100%",x:0,y:0,rx:edge.radius,ry:edge.radius,style:style}}],attributes:{xmlns:SVG_NS,style:{overflow:"visible"},width:"100%",height:"100%"}};return hasMargin(this[$getParent]()[$getParent]())?HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[edgeStyle]}):(edgeStyle.attributes.style.position="absolute",HTMLResult.success(edgeStyle))}}class RefElement extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"ref"),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Script extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"script"),this.binding=attributes.binding||"",this.contentType=attributes.contentType||"",this.id=attributes.id||"",this.name=attributes.name||"",this.runAt=getStringOption(attributes.runAt,["client","both","server"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class SetProperty extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"setProperty"),this.connection=attributes.connection||"",this.ref=attributes.ref||"",this.target=attributes.target||""}}class SignData extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"signData",!0),this.id=attributes.id||"",this.operation=getStringOption(attributes.operation,["sign","clear","verify"]),this.ref=attributes.ref||"",this.target=attributes.target||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.filter=null,this.manifest=null}}class Signature extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"signature",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["PDF1.3","PDF1.6"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.filter=null,this.manifest=null,this.margin=null}}class Signing extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"signing",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=new XFAObjectArray}}class Solid extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"solid",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$toStyle](startColor){return startColor?startColor[$toStyle]():"#FFFFFF"}}class Speak extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"speak"),this.disable=getInteger({data:attributes.disable,defaultValue:0,validate:x=>1===x}),this.id=attributes.id||"",this.priority=getStringOption(attributes.priority,["custom","caption","name","toolTip"]),this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Stipple extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"stipple",!0),this.id=attributes.id||"",this.rate=getInteger({data:attributes.rate,defaultValue:50,validate:x=>0<=x&&x<=100}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](bgColor){var alpha=this.rate/100;return Util.makeHexColor(Math.round(bgColor.value.r*(1-alpha)+this.value.r*alpha),Math.round(bgColor.value.g*(1-alpha)+this.value.g*alpha),Math.round(bgColor.value.b*(1-alpha)+this.value.b*alpha))}}class Subform extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subform",!0),this.access=getStringOption(attributes.access,["open","nonInteractive","protected","readOnly"]),this.allowMacro=getInteger({data:attributes.allowMacro,defaultValue:0,validate:x=>1===x}),this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.columnWidths=(attributes.columnWidths||"").trim().split(/\s+/).map(x=>"-1"===x?-1:getMeasurement(x)),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.layout=getStringOption(attributes.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]),this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.mergeMode=getStringOption(attributes.mergeMode,["consumeData","matchTemplate"]),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.restoreState=getStringOption(attributes.restoreState,["manual","auto"]),this.scope=getStringOption(attributes.scope,["name","none"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.bookend=null,this.border=null,this.break=null,this.calculate=null,this.desc=null,this.extras=null,this.keep=null,this.margin=null,this.occur=null,this.overflow=null,this.pageSet=null,this.para=null,this.traversal=null,this.validate=null,this.variables=null,this.area=new XFAObjectArray,this.breakAfter=new XFAObjectArray,this.breakBefore=new XFAObjectArray,this.connect=new XFAObjectArray,this.draw=new XFAObjectArray,this.event=new XFAObjectArray,this.exObject=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.proto=new XFAObjectArray,this.setProperty=new XFAObjectArray,this.subform=new XFAObjectArray,this.subformSet=new XFAObjectArray}[$getSubformParent](){var parent=this[$getParent]();return parent instanceof SubformSet?parent[$getSubformParent]():parent}[$isBindable](){return!0}[$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[$extra].attempt&&0<this[$extra].numberInLine||this[$getParent]()[$isThereMoreWidth]()}*[$getContainedChildren](){yield*getContainedChildren(this)}[$flushHTML](){return flushHTML(this)}[$addHTML](html,bbox){addHTML(this,html,bbox)}[$getAvailableSpace](){return getAvailableSpace(this)}[$isSplittable](){var parent=this[$getSubformParent]();return!!parent[$isSplittable]()&&(void 0!==this[$extra]._isSplittable?this[$extra]._isSplittable:"position"===this.layout||this.layout.includes("row")||this.keep&&"none"!==this.keep.intact?this[$extra]._isSplittable=!1:(!parent.layout?.endsWith("-tb")||0===parent[$extra].numberInLine)&&(this[$extra]._isSplittable=!0))}[$toHTML](availableSpace){if(setTabIndex(this),this.break){if("auto"===this.break.after&&""===this.break.afterTarget||((node=new BreakAfter({targetType:this.break.after,target:this.break.afterTarget,startNew:this.break.startNew.toString()}))[$globalData]=this[$globalData],this[$appendChild](node),this.breakAfter.push(node)),"auto"!==this.break.before||""!==this.break.beforeTarget){const node=new BreakBefore({targetType:this.break.before,target:this.break.beforeTarget,startNew:this.break.startNew.toString()});node[$globalData]=this[$globalData],this[$appendChild](node),this.breakBefore.push(node)}if(""!==this.break.overflowTarget){const node=new Overflow({target:this.break.overflowTarget,leader:this.break.overflowLeader,trailer:this.break.overflowTrailer});node[$globalData]=this[$globalData],this[$appendChild](node),this.overflow.push(node)}this[$removeChild](this.break),this.break=null}if("hidden"===this.presence||"inactive"===this.presence)return HTMLResult.EMPTY;if((1<this.breakBefore.children.length||1<this.breakAfter.children.length)&&warn("XFA - Several breakBefore or breakAfter in subforms: please file a bug."),1<=this.breakBefore.children.length){var node=this.breakBefore.children[0];if(handleBreak(node))return HTMLResult.breakNode(node)}if(this[$extra]?.afterBreakAfter)return HTMLResult.EMPTY;fixDimensions(this);var node=[],attributes={id:this[$uid],class:[]},root=(setAccess(this,attributes.class),this[$extra]||(this[$extra]=Object.create(null)),Object.assign(this[$extra],{children:node,line:null,attributes:attributes,attempt:0,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,availableSpace.width),height:Math.min(this.h||1/0,availableSpace.height)},width:0,height:0,prevHeight:0,currentWidth:0}),this[$getTemplateRoot]()),savedNoLayoutFailure=root[$extra].noLayoutFailure,isSplittable=this[$isSplittable]();if(isSplittable||setFirstUnsplittable(this),!checkDimensions(this,availableSpace))return HTMLResult.FAILURE;for(var filter=new Set(["area","draw","exclGroup","field","subform","subformSet"]),columnWidths=(this.layout.includes("row")&&(columnWidths=this[$getSubformParent]().columnWidths,Array.isArray(columnWidths))&&0<columnWidths.length&&(this[$extra].columnWidths=columnWidths,this[$extra].currentColumn=0),toStyle(this,"anchorType","dimensions","position","presence","border","margin","hAlign")),classNames=["xfaSubform"],cl=layoutClass(this),isLrTb=(cl&&classNames.push(cl),attributes.style=columnWidths,attributes.class=classNames,this.name&&(attributes.xfaName=this.name),this.overflow&&(cl=this.overflow[$getExtra]()).addLeader&&(cl.addLeader=!1,handleOverflow(this,cl.leader,availableSpace)),this[$pushPara](),"lr-tb"===this.layout||"rl-tb"===this.layout),maxRun=isLrTb?MAX_ATTEMPTS_FOR_LRTB_LAYOUT:1;this[$extra].attempt<maxRun;this[$extra].attempt++){isLrTb&&this[$extra].attempt===MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1&&(this[$extra].numberInLine=0);const result=this[$childrenToHTML]({filter:filter,include:!0});if(result.success)break;if(result.isBreak())return this[$popPara](),result;if(isLrTb&&0===this[$extra].attempt&&0===this[$extra].numberInLine&&!root[$extra].noLayoutFailure){this[$extra].attempt=maxRun;break}}if(this[$popPara](),isSplittable||unsetFirstUnsplittable(this),root[$extra].noLayoutFailure=savedNoLayoutFailure,this[$extra].attempt===maxRun)return this.overflow&&(this[$getTemplateRoot]()[$extra].overflowNode=this.overflow),isSplittable||delete this[$extra],HTMLResult.FAILURE;if(this.overflow){const overflowExtra=this.overflow[$getExtra]();overflowExtra.addTrailer&&(overflowExtra.addTrailer=!1,handleOverflow(this,overflowExtra.trailer,availableSpace))}let marginH=0,marginV=0;this.margin&&(marginH=this.margin.leftInset+this.margin.rightInset,marginV=this.margin.topInset+this.margin.bottomInset);classNames=Math.max(this[$extra].width+marginH,this.w||0),cl=Math.max(this[$extra].height+marginV,this.h||0),savedNoLayoutFailure=[this.x,this.y,classNames,cl];if(""===this.w&&(columnWidths.width=measureToString(classNames)),""===this.h&&(columnWidths.height=measureToString(cl)),("0px"===columnWidths.width||"0px"===columnWidths.height)&&0===node.length)return HTMLResult.EMPTY;isSplittable={name:"div",attributes:attributes,children:node};applyAssist(this,attributes);const result=HTMLResult.success(createWrapper(this,isSplittable),savedNoLayoutFailure);if(1<=this.breakAfter.children.length){availableSpace=this.breakAfter.children[0];if(handleBreak(availableSpace))return this[$extra].afterBreakAfter=result,HTMLResult.breakNode(availableSpace)}return delete this[$extra],result}}class SubformSet extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subformSet",!0),this.id=attributes.id||"",this.name=attributes.name||"",this.relation=getStringOption(attributes.relation,["ordered","choice","unordered"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.bookend=null,this.break=null,this.desc=null,this.extras=null,this.occur=null,this.overflow=null,this.breakAfter=new XFAObjectArray,this.breakBefore=new XFAObjectArray,this.subform=new XFAObjectArray,this.subformSet=new XFAObjectArray}*[$getContainedChildren](){yield*getContainedChildren(this)}[$getSubformParent](){let parent=this[$getParent]();for(;!(parent instanceof Subform);)parent=parent[$getParent]();return parent}[$isBindable](){return!0}}class SubjectDN extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"subjectDN"),this.delimiter=attributes.delimiter||",",this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){this[$content]=new Map(this[$content].split(this.delimiter).map(kv=>((kv=kv.split("=",2))[0]=kv[0].trim(),kv)))}}class SubjectDNs extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subjectDNs",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.subjectDN=new XFAObjectArray}}class Submit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"submit",!0),this.embedPDF=getInteger({data:attributes.embedPDF,defaultValue:0,validate:x=>1===x}),this.format=getStringOption(attributes.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]),this.id=attributes.id||"",this.target=attributes.target||"",this.textEncoding=getKeyword({data:attributes.textEncoding?attributes.textEncoding.toLowerCase():"",defaultValue:"",validate:k=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(k)||k.match(/iso-8859-\d{2}/)}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.xdpContent=attributes.xdpContent||"",this.encrypt=null,this.encryptData=new XFAObjectArray,this.signData=new XFAObjectArray}}class Template extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"template",!0),this.baseProfile=getStringOption(attributes.baseProfile,["full","interactiveForms"]),this.extras=null,this.subform=new XFAObjectArray}[$finalize](){0===this.subform.children.length&&warn("XFA - No subforms in template node."),2<=this.subform.children.length&&warn("XFA - Several subforms in template node: please file a bug."),this[$tabIndex]=DEFAULT_TAB_INDEX}[$isSplittable](){return!0}[$searchNode](expr,container){return expr.startsWith("#")?[this[$ids].get(expr.slice(1))]:searchNode(this,container,expr,!0,!0)}*[$toPages](){if(!this.subform.children.length)return HTMLResult.success({name:"div",children:[]});this[$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};const root=this.subform.children[0];root.pageSet[$cleanPage]();var pageAreas=root.pageSet.pageArea.children,mainHtml={name:"div",children:[]};let pageArea=null,breakBefore=null,breakBeforeTarget=null;1<=root.breakBefore.children.length?(breakBefore=root.breakBefore.children[0],breakBeforeTarget=breakBefore.target):1<=root.subform.children.length&&1<=root.subform.children[0].breakBefore.children.length?(breakBefore=root.subform.children[0].breakBefore.children[0],breakBeforeTarget=breakBefore.target):root.break?.beforeTarget?(breakBefore=root.break,breakBeforeTarget=breakBefore.beforeTarget):1<=root.subform.children.length&&root.subform.children[0].break?.beforeTarget&&(breakBefore=root.subform.children[0].break,breakBeforeTarget=breakBefore.beforeTarget),breakBefore&&(target=this[$searchNode](breakBeforeTarget,breakBefore[$getParent]()))instanceof PageArea&&(pageArea=target,breakBefore[$extra]={}),(pageArea=pageArea||pageAreas[0])[$extra]={numberOfUse:1};var target=pageArea[$getParent]();target[$extra]={numberOfUse:1,pageIndex:target.pageArea.children.indexOf(pageArea),pageSetIndex:0};let targetPageArea,leader=null,trailer=null,hasSomething=!0,hasSomethingCounter=0,startIndex=0;for(;;){if(hasSomething)hasSomethingCounter=0;else if(mainHtml.children.pop(),++hasSomethingCounter===MAX_EMPTY_PAGES)return warn("XFA - Something goes wrong: please file a bug."),mainHtml;targetPageArea=null;var page=(this[$extra].currentPageArea=pageArea)[$toHTML]().html,contentAreas=(mainHtml.children.push(page),leader&&(this[$extra].noLayoutFailure=!0,page.children.push(leader[$toHTML](pageArea[$extra].space).html),leader=null),trailer&&(this[$extra].noLayoutFailure=!0,page.children.push(trailer[$toHTML](pageArea[$extra].space).html),trailer=null),pageArea.contentArea.children);const htmlContentAreas=page.children.filter(node=>node.attributes.class.includes("xfaContentarea"));hasSomething=!1,this[$extra].firstUnsplittable=null,this[$extra].noLayoutFailure=!1;var flush=index=>{var html=root[$flushHTML]();html&&(hasSomething||=0<html.children?.length,htmlContentAreas[index].children.push(html))};for(let i=startIndex,ii=contentAreas.length;i<ii;i++){var contentArea=this[$extra].currentContentArea=contentAreas[i],contentArea={width:contentArea.w,height:contentArea.h},contentArea=(startIndex=0,leader&&(htmlContentAreas[i].children.push(leader[$toHTML](contentArea).html),leader=null),trailer&&(htmlContentAreas[i].children.push(trailer[$toHTML](contentArea).html),trailer=null),root[$toHTML](contentArea));if(contentArea.success)return contentArea.html?(hasSomething||=0<contentArea.html.children?.length,htmlContentAreas[i].children.push(contentArea.html)):!hasSomething&&1<mainHtml.children.length&&mainHtml.children.pop(),mainHtml;if(contentArea.isBreak()){contentArea=contentArea.breakNode;flush(i),"auto"!==contentArea.targetType&&(contentArea.leader&&(leader=(leader=this[$searchNode](contentArea.leader,contentArea[$getParent]()))?leader[0]:null),contentArea.trailer&&(trailer=(trailer=this[$searchNode](contentArea.trailer,contentArea[$getParent]()))?trailer[0]:null),i="pageArea"===contentArea.targetType?(targetPageArea=contentArea[$extra].target,1/0):contentArea[$extra].target?(targetPageArea=contentArea[$extra].target,startIndex=contentArea[$extra].index+1,1/0):contentArea[$extra].index)}else if(this[$extra].overflowNode){const node=this[$extra].overflowNode;this[$extra].overflowNode=null;contentArea=node[$getExtra]();const target=contentArea.target;contentArea.addLeader=null!==contentArea.leader,contentArea.addTrailer=null!==contentArea.trailer,flush(i);var index,contentArea=i;i=1/0,target instanceof PageArea?targetPageArea=target:target instanceof ContentArea&&(-1!==(index=contentAreas.indexOf(target))?contentArea<index?i=index-1:startIndex=index:(targetPageArea=target[$getParent](),startIndex=targetPageArea.contentArea.children.indexOf(target)))}else flush(i)}this[$extra].pageNumber+=1,targetPageArea&&(targetPageArea[$isUsable]()?targetPageArea[$extra].numberOfUse+=1:targetPageArea=null),pageArea=targetPageArea||pageArea[$getNextPage](),yield null}}}class Text extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"text"),this.id=attributes.id||"",this.maxChars=getInteger({data:attributes.maxChars,defaultValue:0,validate:x=>0<=x}),this.name=attributes.name||"",this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$acceptWhitespace](){return!0}[$onChild](child){return child[$namespaceId]===NamespaceIds.xhtml.id?(this[$content]=child,!0):(warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`),!1)}[$onText](str){this[$content]instanceof XFAObject||super[$onText](str)}[$finalize](){"string"==typeof this[$content]&&(this[$content]=this[$content].replaceAll("\r\n","\n"))}[$getExtra](){return"string"==typeof this[$content]?this[$content].split(/[\u2029\u2028\n]/).reduce((acc,line)=>(line&&acc.push(line),acc),[]).join("\n"):this[$content][$text]()}[$toHTML](availableSpace){if("string"!=typeof this[$content])return this[$content][$toHTML](availableSpace);{const html=valueToHtml(this[$content]).html;return this[$content].includes("\u2029")?(html.name="div",html.children=[],this[$content].split("\u2029").map(para=>para.split(/[\u2028\n]/).reduce((acc,line)=>(acc.push({name:"span",value:line},{name:"br"}),acc),[])).forEach(lines=>{html.children.push({name:"p",children:lines})})):/[\u2028\n]/.test(this[$content])&&(html.name="div",html.children=[],this[$content].split(/[\u2028\n]/).forEach(line=>{html.children.push({name:"span",value:line},{name:"br"})})),HTMLResult.success(html)}}}class TextEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"textEdit",!0),this.allowRichText=getInteger({data:attributes.allowRichText,defaultValue:0,validate:x=>1===x}),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.multiLine=getInteger({data:attributes.multiLine,defaultValue:"",validate:x=>0===x||1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.vScrollPolicy=getStringOption(attributes.vScrollPolicy,["auto","off","on"]),this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","font","margin");let html;var field=this[$getParent]()[$getParent]();return""===this.multiLine&&(this.multiLine=field instanceof Draw?1:0),html=1===this.multiLine?{name:"textarea",attributes:{dataId:field[$data]?.[$uid]||field[$uid],fieldId:field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}}:{name:"input",attributes:{type:"text",dataId:field[$data]?.[$uid]||field[$uid],fieldId:field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}},isRequired(field)&&(html.attributes["aria-required"]=!0,html.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[html]})}}class Time extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"time"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class TimeStamp extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"timeStamp"),this.id=attributes.id||"",this.server=attributes.server||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class ToolTip extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"toolTip"),this.id=attributes.id||"",this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Traversal extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"traversal",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.traverse=new XFAObjectArray}}class Traverse extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"traverse",!0),this.id=attributes.id||"",this.operation=getStringOption(attributes.operation,["next","back","down","first","left","right","up"]),this.ref=attributes.ref||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.script=null}get name(){return this.operation}[$isTransparent](){return!1}}class Ui extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"ui",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.picture=null,this.barcode=null,this.button=null,this.checkButton=null,this.choiceList=null,this.dateTimeEdit=null,this.defaultUi=null,this.imageEdit=null,this.numericEdit=null,this.passwordEdit=null,this.signature=null,this.textEdit=null}[$getExtra](){if(void 0===this[$extra]){for(const name of Object.getOwnPropertyNames(this))if("extras"!==name&&"picture"!==name){var obj=this[name];if(obj instanceof XFAObject)return this[$extra]=obj}this[$extra]=null}return this[$extra]}[$toHTML](availableSpace){var obj=this[$getExtra]();return obj?obj[$toHTML](availableSpace):HTMLResult.EMPTY}}class Validate extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"validate",!0),this.formatTest=getStringOption(attributes.formatTest,["warning","disabled","error"]),this.id=attributes.id||"",this.nullTest=getStringOption(attributes.nullTest,["disabled","error","warning"]),this.scriptTest=getStringOption(attributes.scriptTest,["error","disabled","warning"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.message=null,this.picture=null,this.script=null}}class Value extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"value",!0),this.id=attributes.id||"",this.override=getInteger({data:attributes.override,defaultValue:0,validate:x=>1===x}),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.arc=null,this.boolean=null,this.date=null,this.dateTime=null,this.decimal=null,this.exData=null,this.float=null,this.image=null,this.integer=null,this.line=null,this.rectangle=null,this.text=null,this.time=null}[$setValue](value){var parent=this[$getParent]();if(parent instanceof Field&&parent.ui?.imageEdit)this.image||(this.image=new Image({}),this[$appendChild](this.image)),this.image[$content]=value[$content];else{parent=value[$nodeName];if(null!==this[parent])this[parent][$content]=value[$content];else{for(const name of Object.getOwnPropertyNames(this)){var obj=this[name];obj instanceof XFAObject&&(this[name]=null,this[$removeChild](obj))}this[value[$nodeName]]=value,this[$appendChild](value)}}}[$text](){if(this.exData)return("string"==typeof this.exData[$content]?this.exData[$content]:this.exData[$content][$text]()).trim();for(const name of Object.getOwnPropertyNames(this))if("image"!==name){var obj=this[name];if(obj instanceof XFAObject)return(obj[$content]||"").toString().trim()}return null}[$toHTML](availableSpace){for(const name of Object.getOwnPropertyNames(this)){var obj=this[name];if(obj instanceof XFAObject)return obj[$toHTML](availableSpace)}return HTMLResult.EMPTY}}class Variables extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"variables",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.manifest=new XFAObjectArray,this.script=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}[$isTransparent](){return!0}}class TemplateNamespace{static[$buildXFAObject](name,attributes){if(TemplateNamespace.hasOwnProperty(name))return(name=TemplateNamespace[name](attributes))[$setSetAttributes](attributes),name}static appearanceFilter(attrs){return new AppearanceFilter(attrs)}static arc(attrs){return new Arc(attrs)}static area(attrs){return new Area(attrs)}static assist(attrs){return new Assist(attrs)}static barcode(attrs){return new Barcode(attrs)}static bind(attrs){return new Bind(attrs)}static bindItems(attrs){return new BindItems(attrs)}static bookend(attrs){return new Bookend(attrs)}static boolean(attrs){return new BooleanElement(attrs)}static border(attrs){return new Border(attrs)}static break(attrs){return new Break(attrs)}static breakAfter(attrs){return new BreakAfter(attrs)}static breakBefore(attrs){return new BreakBefore(attrs)}static button(attrs){return new Button(attrs)}static calculate(attrs){return new Calculate(attrs)}static caption(attrs){return new Caption(attrs)}static certificate(attrs){return new Certificate(attrs)}static certificates(attrs){return new Certificates(attrs)}static checkButton(attrs){return new CheckButton(attrs)}static choiceList(attrs){return new ChoiceList(attrs)}static color(attrs){return new Color(attrs)}static comb(attrs){return new Comb(attrs)}static connect(attrs){return new Connect(attrs)}static contentArea(attrs){return new ContentArea(attrs)}static corner(attrs){return new Corner(attrs)}static date(attrs){return new DateElement(attrs)}static dateTime(attrs){return new DateTime(attrs)}static dateTimeEdit(attrs){return new DateTimeEdit(attrs)}static decimal(attrs){return new Decimal(attrs)}static defaultUi(attrs){return new DefaultUi(attrs)}static desc(attrs){return new Desc(attrs)}static digestMethod(attrs){return new DigestMethod(attrs)}static digestMethods(attrs){return new DigestMethods(attrs)}static draw(attrs){return new Draw(attrs)}static edge(attrs){return new Edge(attrs)}static encoding(attrs){return new Encoding(attrs)}static encodings(attrs){return new Encodings(attrs)}static encrypt(attrs){return new Encrypt(attrs)}static encryptData(attrs){return new EncryptData(attrs)}static encryption(attrs){return new Encryption(attrs)}static encryptionMethod(attrs){return new EncryptionMethod(attrs)}static encryptionMethods(attrs){return new EncryptionMethods(attrs)}static event(attrs){return new Event(attrs)}static exData(attrs){return new ExData(attrs)}static exObject(attrs){return new ExObject(attrs)}static exclGroup(attrs){return new ExclGroup(attrs)}static execute(attrs){return new Execute(attrs)}static extras(attrs){return new Extras(attrs)}static field(attrs){return new Field(attrs)}static fill(attrs){return new Fill(attrs)}static filter(attrs){return new Filter(attrs)}static float(attrs){return new Float(attrs)}static font(attrs){return new template_Font(attrs)}static format(attrs){return new Format(attrs)}static handler(attrs){return new Handler(attrs)}static hyphenation(attrs){return new Hyphenation(attrs)}static image(attrs){return new Image(attrs)}static imageEdit(attrs){return new ImageEdit(attrs)}static integer(attrs){return new Integer(attrs)}static issuers(attrs){return new Issuers(attrs)}static items(attrs){return new Items(attrs)}static keep(attrs){return new Keep(attrs)}static keyUsage(attrs){return new KeyUsage(attrs)}static line(attrs){return new Line(attrs)}static linear(attrs){return new Linear(attrs)}static lockDocument(attrs){return new LockDocument(attrs)}static manifest(attrs){return new Manifest(attrs)}static margin(attrs){return new Margin(attrs)}static mdp(attrs){return new Mdp(attrs)}static medium(attrs){return new Medium(attrs)}static message(attrs){return new Message(attrs)}static numericEdit(attrs){return new NumericEdit(attrs)}static occur(attrs){return new Occur(attrs)}static oid(attrs){return new Oid(attrs)}static oids(attrs){return new Oids(attrs)}static overflow(attrs){return new Overflow(attrs)}static pageArea(attrs){return new PageArea(attrs)}static pageSet(attrs){return new PageSet(attrs)}static para(attrs){return new Para(attrs)}static passwordEdit(attrs){return new PasswordEdit(attrs)}static pattern(attrs){return new template_Pattern(attrs)}static picture(attrs){return new Picture(attrs)}static proto(attrs){return new Proto(attrs)}static radial(attrs){return new Radial(attrs)}static reason(attrs){return new Reason(attrs)}static reasons(attrs){return new Reasons(attrs)}static rectangle(attrs){return new Rectangle(attrs)}static ref(attrs){return new RefElement(attrs)}static script(attrs){return new Script(attrs)}static setProperty(attrs){return new SetProperty(attrs)}static signData(attrs){return new SignData(attrs)}static signature(attrs){return new Signature(attrs)}static signing(attrs){return new Signing(attrs)}static solid(attrs){return new Solid(attrs)}static speak(attrs){return new Speak(attrs)}static stipple(attrs){return new Stipple(attrs)}static subform(attrs){return new Subform(attrs)}static subformSet(attrs){return new SubformSet(attrs)}static subjectDN(attrs){return new SubjectDN(attrs)}static subjectDNs(attrs){return new SubjectDNs(attrs)}static submit(attrs){return new Submit(attrs)}static template(attrs){return new Template(attrs)}static text(attrs){return new Text(attrs)}static textEdit(attrs){return new TextEdit(attrs)}static time(attrs){return new Time(attrs)}static timeStamp(attrs){return new TimeStamp(attrs)}static toolTip(attrs){return new ToolTip(attrs)}static traversal(attrs){return new Traversal(attrs)}static traverse(attrs){return new Traverse(attrs)}static ui(attrs){return new Ui(attrs)}static validate(attrs){return new Validate(attrs)}static value(attrs){return new Value(attrs)}static variables(attrs){return new Variables(attrs)}}const bind_NS_DATASETS=NamespaceIds.datasets.id;function createText(content){var node=new Text({});return node[$content]=content,node}class Binder{constructor(root){this.root=root,this.datasets=root.datasets,this.data=root.datasets?.data||new XmlObject(NamespaceIds.datasets.id,"data"),this.emptyMerge=0===this.data[$getChildren]().length,this.root.form=this.form=root.template[$clone]()}_isConsumeData(){return!this.emptyMerge&&this._mergeMode}_isMatchTemplate(){return!this._isConsumeData()}bind(){return this._bindElement(this.form,this.data),this.form}getData(){return this.data}_bindValue(formNode,data,picture){if(formNode[$data]=data,formNode[$hasSettableValue]())if(data[$isDataValue]()){var value=data[$getDataValue]();formNode[$setValue](createText(value))}else if(formNode instanceof Field&&"multiSelect"===formNode.ui?.choiceList?.open){const value=data[$getChildren]().map(child=>child[$content].trim()).join("\n");formNode[$setValue](createText(value))}else this._isConsumeData()&&warn("XFA - Nodes haven't the same type.");else!data[$isDataValue]()||this._isMatchTemplate()?this._bindElement(formNode,data):warn("XFA - Nodes haven't the same type.")}_findDataByNameToConsume(name,isValue,dataNode,global){if(!name)return null;let generator,match;for(let i=0;i<3;i++){for(generator=dataNode[$getRealChildrenByNameIt](name,!1,!0);;){if(!(match=generator.next().value))break;if(isValue===match[$isDataValue]())return match}if(dataNode[$namespaceId]===NamespaceIds.datasets.id&&"data"===dataNode[$nodeName])break;dataNode=dataNode[$getParent]()}return global?(generator=this.data[$getRealChildrenByNameIt](name,!0,!1),(match=generator.next().value)||(generator=this.data[$getAttributeIt](name,!0),(match=generator.next().value)?.[$isDataValue]()?match:null)):null}_setProperties(formNode,dataNode){if(formNode.hasOwnProperty("setProperty"))for(var{ref,target,connection}of formNode.setProperty.children){var targetNodes,targetParent,content,name,attrs;connection||ref&&((connection=searchNode(this.root,dataNode,ref,!1,!1))?([connection]=connection,connection[$isDescendent](this.data)?(targetNodes=searchNode(this.root,formNode,target,!1,!1))?([targetNodes]=targetNodes,targetNodes[$isDescendent](formNode)?(targetParent=targetNodes[$getParent](),targetNodes instanceof SetProperty||targetParent instanceof SetProperty?warn("XFA - Invalid target: cannot be a setProperty or one of its properties."):targetNodes instanceof BindItems||targetParent instanceof BindItems?warn("XFA - Invalid target: cannot be a bindItems or one of its properties."):(content=connection[$text](),name=targetNodes[$nodeName],targetNodes instanceof XFAAttribute?((attrs=Object.create(null))[name]=content,attrs=Reflect.construct(Object.getPrototypeOf(targetParent).constructor,[attrs]),targetParent[name]=attrs[name]):targetNodes.hasOwnProperty($content)?(targetNodes[$data]=connection,targetNodes[$content]=content,targetNodes[$finalize]()):warn("XFA - Invalid node to use in setProperty"))):warn("XFA - Invalid target: must be a property or subproperty.")):warn(`XFA - Invalid target: ${target}.`):warn("XFA - Invalid node: must be a data node.")):warn(`XFA - Invalid reference: ${ref}.`))}}_bindItems(formNode,dataNode){if(formNode.hasOwnProperty("items")&&formNode.hasOwnProperty("bindItems")&&!formNode.bindItems.isEmpty()){for(const item of formNode.items.children)formNode[$removeChild](item);formNode.items.clear();var ref,labelRef,valueRef,connection,labels=new Items({}),values=new Items({});formNode[$appendChild](labels),formNode.items.push(labels),formNode[$appendChild](values),formNode.items.push(values);for({ref,labelRef,valueRef,connection}of formNode.bindItems.children)if(!connection&&ref){var labelNodes,valueNodes,nodes=searchNode(this.root,dataNode,ref,!1,!1);if(nodes)for(const node of nodes)node[$isDescendent](this.datasets)?(labelNodes=searchNode(this.root,node,labelRef,!0,!1))?([labelNodes]=labelNodes,labelNodes[$isDescendent](this.datasets)?(valueNodes=searchNode(this.root,node,valueRef,!0,!1))?([valueNodes]=valueNodes,valueNodes[$isDescendent](this.datasets)?(labelNodes=createText(labelNodes[$text]()),valueNodes=createText(valueNodes[$text]()),labels[$appendChild](labelNodes),labels.text.push(labelNodes),values[$appendChild](valueNodes),values.text.push(valueNodes)):warn("XFA - Invalid value: must be a datasets child.")):warn(`XFA - Invalid value: ${valueRef}.`):warn("XFA - Invalid label: must be a datasets child.")):warn(`XFA - Invalid label: ${labelRef}.`):warn(`XFA - Invalid ref (${ref}): must be a datasets child.`);else warn(`XFA - Invalid reference: ${ref}.`)}}}_bindOccurrences(formNode,matches,picture){let baseClone;if(1<matches.length&&((baseClone=formNode[$clone]())[$removeChild](baseClone.occur),baseClone.occur=null),this._bindValue(formNode,matches[0],picture),this._setProperties(formNode,matches[0]),this._bindItems(formNode,matches[0]),1!==matches.length){var parent=formNode[$getParent](),name=formNode[$nodeName],pos=parent[$indexOf](formNode);for(let i=1,ii=matches.length;i<ii;i++){var match=matches[i],clone=baseClone[$clone]();parent[name].push(clone),parent[$insertAt](pos+i,clone),this._bindValue(clone,match,picture),this._setProperties(clone,match),this._bindItems(clone,match)}}}_createOccurrences(formNode){if(this.emptyMerge){var occur=formNode["occur"];if(occur&&!(occur.initial<=1)){var parent=formNode[$getParent](),name=formNode[$nodeName];if(parent[name]instanceof XFAObjectArray){let currentNumber;currentNumber=(formNode.name?parent[name].children.filter(e=>e.name===formNode.name):parent[name].children).length;var pos=parent[$indexOf](formNode)+1,ii=occur.initial-currentNumber;if(ii){var nodeClone=formNode[$clone]();nodeClone[$removeChild](nodeClone.occur),nodeClone.occur=null,parent[name].push(nodeClone),parent[$insertAt](pos,nodeClone);for(let i=1;i<ii;i++){var clone=nodeClone[$clone]();parent[name].push(clone),parent[$insertAt](pos+i,clone)}}}}}}_getOccurInfo(formNode){var{name:formNode,occur}=formNode;return occur&&formNode?(formNode=-1===occur.max?1/0:occur.max,[occur.min,formNode]):[1,1]}_setAndBind(formNode,dataNode){this._setProperties(formNode,dataNode),this._bindItems(formNode,dataNode),this._bindElement(formNode,dataNode)}_bindElement(formNode,dataNode){var uselessNodes=[];this._createOccurrences(formNode);for(const child of formNode[$getChildren]())if(!child[$data])if(void 0===this._mergeMode&&"subform"===child[$nodeName]){this._mergeMode="consumeData"===child.mergeMode;var dataChildren=dataNode[$getChildren]();0<dataChildren.length?this._bindOccurrences(child,[dataChildren[0]],null):this.emptyMerge&&(dataChildren=dataNode[$namespaceId]===bind_NS_DATASETS?-1:dataNode[$namespaceId],dataChildren=child[$data]=new XmlObject(dataChildren,child.name||"root"),dataNode[$appendChild](dataChildren),this._bindElement(child,dataChildren))}else if(child[$isBindable]()){let global=!1,picture=null,ref=null,match=null;if(child.bind){switch(child.bind.match){case"none":this._setAndBind(child,dataNode);continue;case"global":global=!0;break;case"dataRef":if(!child.bind.ref){warn(`XFA - ref is empty in node ${child[$nodeName]}.`),this._setAndBind(child,dataNode);continue}ref=child.bind.ref}child.bind.picture&&(picture=child.bind.picture[$content])}var[dataChildren,max]=this._getOccurInfo(child);if(ref){if(null===(match=searchNode(this.root,dataNode,ref,!0,!1))){if(!(match=createDataNode(this.data,dataNode,ref)))continue;this._isConsumeData()&&(match[$consumed]=!0),this._setAndBind(child,match);continue}(match=this._isConsumeData()?match.filter(node=>!node[$consumed]):match).length>max?match=match.slice(0,max):0===match.length&&(match=null),match&&this._isConsumeData()&&match.forEach(node=>{node[$consumed]=!0})}else{if(!child.name){this._setAndBind(child,dataNode);continue}if(this._isConsumeData()){for(var matches=[];matches.length<max;){var found=this._findDataByNameToConsume(child.name,child[$hasSettableValue](),dataNode,global);if(!found)break;found[$consumed]=!0,matches.push(found)}match=0<matches.length?matches:null}else{if(!(match=dataNode[$getRealChildrenByNameIt](child.name,!1,this.emptyMerge).next().value)){if(0===dataChildren){uselessNodes.push(child);continue}const nsId=dataNode[$namespaceId]===bind_NS_DATASETS?-1:dataNode[$namespaceId];match=child[$data]=new XmlObject(nsId,child.name),this.emptyMerge&&(match[$consumed]=!0),dataNode[$appendChild](match),this._setAndBind(child,match);continue}this.emptyMerge&&(match[$consumed]=!0),match=[match]}}match?this._bindOccurrences(child,match,picture):0<dataChildren?this._setAndBind(child,dataNode):uselessNodes.push(child)}uselessNodes.forEach(node=>node[$getParent]()[$removeChild](node))}}class DataHandler{constructor(root,data){this.data=data,this.dataset=root.datasets||null}serialize(storage){for(var stack=[[-1,this.data[$getChildren]()]];0<stack.length;){var last=stack.at(-1),[i,children]=last;if(i+1===children.length)stack.pop();else{i=children[++last[0]],children=storage.get(i[$uid]);if(children)i[$setValue](children);else for(const value of i[$getAttributes]().values()){var entry=storage.get(value[$uid]);if(entry){value[$setValue](entry);break}}last=i[$getChildren]();0<last.length&&stack.push([-1,last])}}var buf=['<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">'];if(this.dataset)for(const child of this.dataset[$getChildren]())"data"!==child[$nodeName]&&child[$toString](buf);return this.data[$toString](buf),buf.push("</xfa:datasets>"),buf.join("")}}const CONFIG_NS_ID=NamespaceIds.config.id;class Acrobat extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"acrobat",!0),this.acrobat7=null,this.autoSave=null,this.common=null,this.validate=null,this.validateApprovalSignatures=null,this.submitUrl=new XFAObjectArray}}class Acrobat7 extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"acrobat7",!0),this.dynamicRender=null}}class ADBE_JSConsole extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ADBE_JSConsole",["delegate","Enable","Disable"])}}class ADBE_JSDebugger extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ADBE_JSDebugger",["delegate","Enable","Disable"])}}class AddSilentPrint extends Option01{constructor(attributes){super(CONFIG_NS_ID,"addSilentPrint")}}class AddViewerPreferences extends Option01{constructor(attributes){super(CONFIG_NS_ID,"addViewerPreferences")}}class AdjustData extends Option10{constructor(attributes){super(CONFIG_NS_ID,"adjustData")}}class AdobeExtensionLevel extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"adobeExtensionLevel",0,n=>1<=n&&n<=8)}}class Agent extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"agent",!0),this.name=attributes.name?attributes.name.trim():"",this.common=new XFAObjectArray}}class AlwaysEmbed extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"alwaysEmbed")}}class Amd extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"amd")}}class config_Area extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"area"),this.level=getInteger({data:attributes.level,defaultValue:0,validate:n=>1<=n&&n<=3}),this.name=getStringOption(attributes.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"])}}class Attributes extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"attributes",["preserve","delegate","ignore"])}}class AutoSave extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"autoSave",["disabled","enabled"])}}class Base extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"base")}}class BatchOutput extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"batchOutput"),this.format=getStringOption(attributes.format,["none","concat","zip","zipCompress"])}}class BehaviorOverride extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"behaviorOverride")}[$finalize](){this[$content]=new Map(this[$content].trim().split(/\s+/).filter(x=>x.includes(":")).map(x=>x.split(":",2)))}}class Cache extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"cache",!0),this.templateCache=null}}class Change extends Option01{constructor(attributes){super(CONFIG_NS_ID,"change")}}class Common extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"common",!0),this.data=null,this.locale=null,this.localeSet=null,this.messaging=null,this.suppressBanner=null,this.template=null,this.validationMessaging=null,this.versionControl=null,this.log=new XFAObjectArray}}class Compress extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"compress"),this.scope=getStringOption(attributes.scope,["imageOnly","document"])}}class CompressLogicalStructure extends Option01{constructor(attributes){super(CONFIG_NS_ID,"compressLogicalStructure")}}class CompressObjectStream extends Option10{constructor(attributes){super(CONFIG_NS_ID,"compressObjectStream")}}class Compression extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"compression",!0),this.compressLogicalStructure=null,this.compressObjectStream=null,this.level=null,this.type=null}}class Config extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"config",!0),this.acrobat=null,this.present=null,this.trace=null,this.agent=new XFAObjectArray}}class Conformance extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"conformance",["A","B"])}}class ContentCopy extends Option01{constructor(attributes){super(CONFIG_NS_ID,"contentCopy")}}class Copies extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"copies",1,n=>1<=n)}}class Creator extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"creator")}}class CurrentPage extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"currentPage",0,n=>0<=n)}}class Data extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"data",!0),this.adjustData=null,this.attributes=null,this.incrementalLoad=null,this.outputXSL=null,this.range=null,this.record=null,this.startNode=null,this.uri=null,this.window=null,this.xsl=null,this.excludeNS=new XFAObjectArray,this.transform=new XFAObjectArray}}class Debug extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"debug",!0),this.uri=null}}class DefaultTypeface extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"defaultTypeface"),this.writingScript=getStringOption(attributes.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"])}}class Destination extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"destination",["pdf","pcl","ps","webClient","zpl"])}}class DocumentAssembly extends Option01{constructor(attributes){super(CONFIG_NS_ID,"documentAssembly")}}class Driver extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"driver",!0),this.name=attributes.name?attributes.name.trim():"",this.fontInfo=null,this.xdc=null}}class DuplexOption extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}}class DynamicRender extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"dynamicRender",["forbidden","required"])}}class Embed extends Option01{constructor(attributes){super(CONFIG_NS_ID,"embed")}}class config_Encrypt extends Option01{constructor(attributes){super(CONFIG_NS_ID,"encrypt")}}class config_Encryption extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"encryption",!0),this.encrypt=null,this.encryptionLevel=null,this.permissions=null}}class EncryptionLevel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"encryptionLevel",["40bit","128bit"])}}class Enforce extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"enforce")}}class Equate extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"equate"),this.force=getInteger({data:attributes.force,defaultValue:1,validate:n=>0===n}),this.from=attributes.from||"",this.to=attributes.to||""}}class EquateRange extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"equateRange"),this.from=attributes.from||"",this.to=attributes.to||"",this._unicodeRange=attributes.unicodeRange||""}get unicodeRange(){var range,ranges=[];const unicodeRegex=/U\+([0-9a-fA-F]+)/;for(range of this._unicodeRange.split(",").map(x=>x.trim()).filter(x=>!!x))1===(range=range.split("-",2).map(x=>{x=x.match(unicodeRegex);return x?parseInt(x[1],16):0})).length&&range.push(range[0]),ranges.push(range);return shadow(this,"unicodeRange",ranges)}}class Exclude extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"exclude")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/).filter(x=>x&&["calculate","close","enter","exit","initialize","ready","validate"].includes(x))}}class ExcludeNS extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"excludeNS")}}class FlipLabel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"flipLabel",["usePrinterSetting","on","off"])}}class config_FontInfo extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"fontInfo",!0),this.embed=null,this.map=null,this.subsetBelow=null,this.alwaysEmbed=new XFAObjectArray,this.defaultTypeface=new XFAObjectArray,this.neverEmbed=new XFAObjectArray}}class FormFieldFilling extends Option01{constructor(attributes){super(CONFIG_NS_ID,"formFieldFilling")}}class GroupParent extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"groupParent")}}class IfEmpty extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}}class IncludeXDPContent extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"includeXDPContent")}}class IncrementalLoad extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"incrementalLoad",["none","forwardOnly"])}}class IncrementalMerge extends Option01{constructor(attributes){super(CONFIG_NS_ID,"incrementalMerge")}}class Interactive extends Option01{constructor(attributes){super(CONFIG_NS_ID,"interactive")}}class Jog extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"jog",["usePrinterSetting","none","pageSet"])}}class LabelPrinter extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"labelPrinter",!0),this.name=getStringOption(attributes.name,["zpl","dpl","ipl","tcpl"]),this.batchOutput=null,this.flipLabel=null,this.fontInfo=null,this.xdc=null}}class Layout extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"layout",["paginate","panel"])}}class Level extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"level",0,n=>0<n)}}class Linearized extends Option01{constructor(attributes){super(CONFIG_NS_ID,"linearized")}}class Locale extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"locale")}}class LocaleSet extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"localeSet")}}class Log extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"log",!0),this.mode=null,this.threshold=null,this.to=null,this.uri=null}}class MapElement extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"map",!0),this.equate=new XFAObjectArray,this.equateRange=new XFAObjectArray}}class MediumInfo extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"mediumInfo",!0),this.map=null}}class config_Message extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"message",!0),this.msgId=null,this.severity=null}}class Messaging extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"messaging",!0),this.message=new XFAObjectArray}}class Mode extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"mode",["append","overwrite"])}}class ModifyAnnots extends Option01{constructor(attributes){super(CONFIG_NS_ID,"modifyAnnots")}}class MsgId extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"msgId",1,n=>1<=n)}}class NameAttr extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"nameAttr")}}class NeverEmbed extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"neverEmbed")}}class NumberOfCopies extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"numberOfCopies",null,n=>2<=n&&n<=5)}}class OpenAction extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"openAction",!0),this.destination=null}}class Output extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"output",!0),this.to=null,this.type=null,this.uri=null}}class OutputBin extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"outputBin")}}class OutputXSL extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"outputXSL",!0),this.uri=null}}class Overprint extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"overprint",["none","both","draw","field"])}}class Packets extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"packets")}[$finalize](){"*"!==this[$content]&&(this[$content]=this[$content].trim().split(/\s+/).filter(x=>["config","datasets","template","xfdf","xslt"].includes(x)))}}class PageOffset extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pageOffset"),this.x=getInteger({data:attributes.x,defaultValue:"useXDCSetting",validate:n=>!0}),this.y=getInteger({data:attributes.y,defaultValue:"useXDCSetting",validate:n=>!0})}}class PageRange extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"pageRange")}[$finalize](){var numbers=this[$content].trim().split(/\s+/).map(x=>parseInt(x,10)),ranges=[];for(let i=0,ii=numbers.length;i<ii;i+=2)ranges.push(numbers.slice(i,i+2));this[$content]=ranges}}class Pagination extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"pagination",["simplex","duplexShortEdge","duplexLongEdge"])}}class PaginationOverride extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"paginationOverride",["none","forceDuplex","forceDuplexLongEdge","forceDuplexShortEdge","forceSimplex"])}}class Part extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"part",1,n=>!1)}}class Pcl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pcl",!0),this.name=attributes.name||"",this.batchOutput=null,this.fontInfo=null,this.jog=null,this.mediumInfo=null,this.outputBin=null,this.pageOffset=null,this.staple=null,this.xdc=null}}class Pdf extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pdf",!0),this.name=attributes.name||"",this.adobeExtensionLevel=null,this.batchOutput=null,this.compression=null,this.creator=null,this.encryption=null,this.fontInfo=null,this.interactive=null,this.linearized=null,this.openAction=null,this.pdfa=null,this.producer=null,this.renderPolicy=null,this.scriptModel=null,this.silentPrint=null,this.submitFormat=null,this.tagged=null,this.version=null,this.viewerPreferences=null,this.xdc=null}}class Pdfa extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pdfa",!0),this.amd=null,this.conformance=null,this.includeXDPContent=null,this.part=null}}class Permissions extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"permissions",!0),this.accessibleContent=null,this.change=null,this.contentCopy=null,this.documentAssembly=null,this.formFieldFilling=null,this.modifyAnnots=null,this.plaintextMetadata=null,this.print=null,this.printHighQuality=null}}class PickTrayByPDFSize extends Option01{constructor(attributes){super(CONFIG_NS_ID,"pickTrayByPDFSize")}}class config_Picture extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"picture")}}class PlaintextMetadata extends Option01{constructor(attributes){super(CONFIG_NS_ID,"plaintextMetadata")}}class Presence extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}}class Present extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"present",!0),this.behaviorOverride=null,this.cache=null,this.common=null,this.copies=null,this.destination=null,this.incrementalMerge=null,this.layout=null,this.output=null,this.overprint=null,this.pagination=null,this.paginationOverride=null,this.script=null,this.validate=null,this.xdp=null,this.driver=new XFAObjectArray,this.labelPrinter=new XFAObjectArray,this.pcl=new XFAObjectArray,this.pdf=new XFAObjectArray,this.ps=new XFAObjectArray,this.submitUrl=new XFAObjectArray,this.webClient=new XFAObjectArray,this.zpl=new XFAObjectArray}}class Print extends Option01{constructor(attributes){super(CONFIG_NS_ID,"print")}}class PrintHighQuality extends Option01{constructor(attributes){super(CONFIG_NS_ID,"printHighQuality")}}class PrintScaling extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"printScaling",["appdefault","noScaling"])}}class PrinterName extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"printerName")}}class Producer extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"producer")}}class Ps extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"ps",!0),this.name=attributes.name||"",this.batchOutput=null,this.fontInfo=null,this.jog=null,this.mediumInfo=null,this.outputBin=null,this.staple=null,this.xdc=null}}class Range extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"range")}[$finalize](){this[$content]=this[$content].trim().split(/\s*,\s*/,2).map(range=>range.split("-").map(x=>parseInt(x.trim(),10))).filter(range=>range.every(x=>!isNaN(x))).map(range=>(1===range.length&&range.push(range[0]),range))}}class Record extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"record")}[$finalize](){this[$content]=this[$content].trim();var n=parseInt(this[$content],10);!isNaN(n)&&0<=n&&(this[$content]=n)}}class Relevant extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"relevant")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/)}}class Rename extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"rename")}[$finalize](){this[$content]=this[$content].trim(),(this[$content].toLowerCase().startsWith("xml")||new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u").test(this[$content]))&&warn("XFA - Rename: invalid XFA name")}}class RenderPolicy extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"renderPolicy",["server","client"])}}class RunScripts extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"runScripts",["both","client","none","server"])}}class config_Script extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"script",!0),this.currentPage=null,this.exclude=null,this.runScripts=null}}class ScriptModel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"scriptModel",["XFA","none"])}}class Severity extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"severity",["ignore","error","information","trace","warning"])}}class SilentPrint extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"silentPrint",!0),this.addSilentPrint=null,this.printerName=null}}class Staple extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"staple"),this.mode=getStringOption(attributes.mode,["usePrinterSetting","on","off"])}}class StartNode extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"startNode")}}class StartPage extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"startPage",0,n=>!0)}}class SubmitFormat extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"submitFormat",["html","delegate","fdf","xml","pdf"])}}class SubmitUrl extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"submitUrl")}}class SubsetBelow extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"subsetBelow",100,n=>0<=n&&n<=100)}}class SuppressBanner extends Option01{constructor(attributes){super(CONFIG_NS_ID,"suppressBanner")}}class Tagged extends Option01{constructor(attributes){super(CONFIG_NS_ID,"tagged")}}class config_Template extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"template",!0),this.base=null,this.relevant=null,this.startPage=null,this.uri=null,this.xsl=null}}class Threshold extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"threshold",["trace","error","information","warning"])}}class To extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"to",["null","memory","stderr","stdout","system","uri"])}}class TemplateCache extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"templateCache"),this.maxEntries=getInteger({data:attributes.maxEntries,defaultValue:5,validate:n=>0<=n})}}class Trace extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"trace",!0),this.area=new XFAObjectArray}}class Transform extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"transform",!0),this.groupParent=null,this.ifEmpty=null,this.nameAttr=null,this.picture=null,this.presence=null,this.rename=null,this.whitespace=null}}class Type extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}}class Uri extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"uri")}}class config_Validate extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"validate",["preSubmit","prePrint","preExecute","preSave"])}}class ValidateApprovalSignatures extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"validateApprovalSignatures")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/).filter(x=>["docReady","postSign"].includes(x))}}class ValidationMessaging extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}}class Version extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}}class VersionControl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"VersionControl"),this.outputBelow=getStringOption(attributes.outputBelow,["warn","error","update"]),this.sourceAbove=getStringOption(attributes.sourceAbove,["warn","error"]),this.sourceBelow=getStringOption(attributes.sourceBelow,["update","maintain"])}}class ViewerPreferences extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"viewerPreferences",!0),this.ADBE_JSConsole=null,this.ADBE_JSDebugger=null,this.addViewerPreferences=null,this.duplexOption=null,this.enforce=null,this.numberOfCopies=null,this.pageRange=null,this.pickTrayByPDFSize=null,this.printScaling=null}}class WebClient extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"webClient",!0),this.name=attributes.name?attributes.name.trim():"",this.fontInfo=null,this.xdc=null}}class Whitespace extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}}class Window extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"window")}[$finalize](){var pair=this[$content].trim().split(/\s*,\s*/,2).map(x=>parseInt(x,10));pair.some(x=>isNaN(x))?this[$content]=[0,0]:(1===pair.length&&pair.push(pair[0]),this[$content]=pair)}}class Xdc extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xdc",!0),this.uri=new XFAObjectArray,this.xsl=new XFAObjectArray}}class Xdp extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xdp",!0),this.packets=null}}class Xsl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xsl",!0),this.debug=null,this.uri=null}}class Zpl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"zpl",!0),this.name=attributes.name?attributes.name.trim():"",this.batchOutput=null,this.flipLabel=null,this.fontInfo=null,this.xdc=null}}class ConfigNamespace{static[$buildXFAObject](name,attributes){if(ConfigNamespace.hasOwnProperty(name))return ConfigNamespace[name](attributes)}static acrobat(attrs){return new Acrobat(attrs)}static acrobat7(attrs){return new Acrobat7(attrs)}static ADBE_JSConsole(attrs){return new ADBE_JSConsole(attrs)}static ADBE_JSDebugger(attrs){return new ADBE_JSDebugger(attrs)}static addSilentPrint(attrs){return new AddSilentPrint(attrs)}static addViewerPreferences(attrs){return new AddViewerPreferences(attrs)}static adjustData(attrs){return new AdjustData(attrs)}static adobeExtensionLevel(attrs){return new AdobeExtensionLevel(attrs)}static agent(attrs){return new Agent(attrs)}static alwaysEmbed(attrs){return new AlwaysEmbed(attrs)}static amd(attrs){return new Amd(attrs)}static area(attrs){return new config_Area(attrs)}static attributes(attrs){return new Attributes(attrs)}static autoSave(attrs){return new AutoSave(attrs)}static base(attrs){return new Base(attrs)}static batchOutput(attrs){return new BatchOutput(attrs)}static behaviorOverride(attrs){return new BehaviorOverride(attrs)}static cache(attrs){return new Cache(attrs)}static change(attrs){return new Change(attrs)}static common(attrs){return new Common(attrs)}static compress(attrs){return new Compress(attrs)}static compressLogicalStructure(attrs){return new CompressLogicalStructure(attrs)}static compressObjectStream(attrs){return new CompressObjectStream(attrs)}static compression(attrs){return new Compression(attrs)}static config(attrs){return new Config(attrs)}static conformance(attrs){return new Conformance(attrs)}static contentCopy(attrs){return new ContentCopy(attrs)}static copies(attrs){return new Copies(attrs)}static creator(attrs){return new Creator(attrs)}static currentPage(attrs){return new CurrentPage(attrs)}static data(attrs){return new Data(attrs)}static debug(attrs){return new Debug(attrs)}static defaultTypeface(attrs){return new DefaultTypeface(attrs)}static destination(attrs){return new Destination(attrs)}static documentAssembly(attrs){return new DocumentAssembly(attrs)}static driver(attrs){return new Driver(attrs)}static duplexOption(attrs){return new DuplexOption(attrs)}static dynamicRender(attrs){return new DynamicRender(attrs)}static embed(attrs){return new Embed(attrs)}static encrypt(attrs){return new config_Encrypt(attrs)}static encryption(attrs){return new config_Encryption(attrs)}static encryptionLevel(attrs){return new EncryptionLevel(attrs)}static enforce(attrs){return new Enforce(attrs)}static equate(attrs){return new Equate(attrs)}static equateRange(attrs){return new EquateRange(attrs)}static exclude(attrs){return new Exclude(attrs)}static excludeNS(attrs){return new ExcludeNS(attrs)}static flipLabel(attrs){return new FlipLabel(attrs)}static fontInfo(attrs){return new config_FontInfo(attrs)}static formFieldFilling(attrs){return new FormFieldFilling(attrs)}static groupParent(attrs){return new GroupParent(attrs)}static ifEmpty(attrs){return new IfEmpty(attrs)}static includeXDPContent(attrs){return new IncludeXDPContent(attrs)}static incrementalLoad(attrs){return new IncrementalLoad(attrs)}static incrementalMerge(attrs){return new IncrementalMerge(attrs)}static interactive(attrs){return new Interactive(attrs)}static jog(attrs){return new Jog(attrs)}static labelPrinter(attrs){return new LabelPrinter(attrs)}static layout(attrs){return new Layout(attrs)}static level(attrs){return new Level(attrs)}static linearized(attrs){return new Linearized(attrs)}static locale(attrs){return new Locale(attrs)}static localeSet(attrs){return new LocaleSet(attrs)}static log(attrs){return new Log(attrs)}static map(attrs){return new MapElement(attrs)}static mediumInfo(attrs){return new MediumInfo(attrs)}static message(attrs){return new config_Message(attrs)}static messaging(attrs){return new Messaging(attrs)}static mode(attrs){return new Mode(attrs)}static modifyAnnots(attrs){return new ModifyAnnots(attrs)}static msgId(attrs){return new MsgId(attrs)}static nameAttr(attrs){return new NameAttr(attrs)}static neverEmbed(attrs){return new NeverEmbed(attrs)}static numberOfCopies(attrs){return new NumberOfCopies(attrs)}static openAction(attrs){return new OpenAction(attrs)}static output(attrs){return new Output(attrs)}static outputBin(attrs){return new OutputBin(attrs)}static outputXSL(attrs){return new OutputXSL(attrs)}static overprint(attrs){return new Overprint(attrs)}static packets(attrs){return new Packets(attrs)}static pageOffset(attrs){return new PageOffset(attrs)}static pageRange(attrs){return new PageRange(attrs)}static pagination(attrs){return new Pagination(attrs)}static paginationOverride(attrs){return new PaginationOverride(attrs)}static part(attrs){return new Part(attrs)}static pcl(attrs){return new Pcl(attrs)}static pdf(attrs){return new Pdf(attrs)}static pdfa(attrs){return new Pdfa(attrs)}static permissions(attrs){return new Permissions(attrs)}static pickTrayByPDFSize(attrs){return new PickTrayByPDFSize(attrs)}static picture(attrs){return new config_Picture(attrs)}static plaintextMetadata(attrs){return new PlaintextMetadata(attrs)}static presence(attrs){return new Presence(attrs)}static present(attrs){return new Present(attrs)}static print(attrs){return new Print(attrs)}static printHighQuality(attrs){return new PrintHighQuality(attrs)}static printScaling(attrs){return new PrintScaling(attrs)}static printerName(attrs){return new PrinterName(attrs)}static producer(attrs){return new Producer(attrs)}static ps(attrs){return new Ps(attrs)}static range(attrs){return new Range(attrs)}static record(attrs){return new Record(attrs)}static relevant(attrs){return new Relevant(attrs)}static rename(attrs){return new Rename(attrs)}static renderPolicy(attrs){return new RenderPolicy(attrs)}static runScripts(attrs){return new RunScripts(attrs)}static script(attrs){return new config_Script(attrs)}static scriptModel(attrs){return new ScriptModel(attrs)}static severity(attrs){return new Severity(attrs)}static silentPrint(attrs){return new SilentPrint(attrs)}static staple(attrs){return new Staple(attrs)}static startNode(attrs){return new StartNode(attrs)}static startPage(attrs){return new StartPage(attrs)}static submitFormat(attrs){return new SubmitFormat(attrs)}static submitUrl(attrs){return new SubmitUrl(attrs)}static subsetBelow(attrs){return new SubsetBelow(attrs)}static suppressBanner(attrs){return new SuppressBanner(attrs)}static tagged(attrs){return new Tagged(attrs)}static template(attrs){return new config_Template(attrs)}static templateCache(attrs){return new TemplateCache(attrs)}static threshold(attrs){return new Threshold(attrs)}static to(attrs){return new To(attrs)}static trace(attrs){return new Trace(attrs)}static transform(attrs){return new Transform(attrs)}static type(attrs){return new Type(attrs)}static uri(attrs){return new Uri(attrs)}static validate(attrs){return new config_Validate(attrs)}static validateApprovalSignatures(attrs){return new ValidateApprovalSignatures(attrs)}static validationMessaging(attrs){return new ValidationMessaging(attrs)}static version(attrs){return new Version(attrs)}static versionControl(attrs){return new VersionControl(attrs)}static viewerPreferences(attrs){return new ViewerPreferences(attrs)}static webClient(attrs){return new WebClient(attrs)}static whitespace(attrs){return new Whitespace(attrs)}static window(attrs){return new Window(attrs)}static xdc(attrs){return new Xdc(attrs)}static xdp(attrs){return new Xdp(attrs)}static xsl(attrs){return new Xsl(attrs)}static zpl(attrs){return new Zpl(attrs)}}const CONNECTION_SET_NS_ID=NamespaceIds.connectionSet.id;class ConnectionSet extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"connectionSet",!0),this.wsdlConnection=new XFAObjectArray,this.xmlConnection=new XFAObjectArray,this.xsdConnection=new XFAObjectArray}}class EffectiveInputPolicy extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"effectiveInputPolicy"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class EffectiveOutputPolicy extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"effectiveOutputPolicy"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Operation extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"operation"),this.id=attributes.id||"",this.input=attributes.input||"",this.name=attributes.name||"",this.output=attributes.output||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class RootElement extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"rootElement"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class SoapAction extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"soapAction"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class SoapAddress extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"soapAddress"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class connection_set_Uri extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"uri"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class WsdlAddress extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"wsdlAddress"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class WsdlConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"wsdlConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.effectiveInputPolicy=null,this.effectiveOutputPolicy=null,this.operation=null,this.soapAction=null,this.soapAddress=null,this.wsdlAddress=null}}class XmlConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"xmlConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.uri=null}}class XsdConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"xsdConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.rootElement=null,this.uri=null}}class ConnectionSetNamespace{static[$buildXFAObject](name,attributes){if(ConnectionSetNamespace.hasOwnProperty(name))return ConnectionSetNamespace[name](attributes)}static connectionSet(attrs){return new ConnectionSet(attrs)}static effectiveInputPolicy(attrs){return new EffectiveInputPolicy(attrs)}static effectiveOutputPolicy(attrs){return new EffectiveOutputPolicy(attrs)}static operation(attrs){return new Operation(attrs)}static rootElement(attrs){return new RootElement(attrs)}static soapAction(attrs){return new SoapAction(attrs)}static soapAddress(attrs){return new SoapAddress(attrs)}static uri(attrs){return new connection_set_Uri(attrs)}static wsdlAddress(attrs){return new WsdlAddress(attrs)}static wsdlConnection(attrs){return new WsdlConnection(attrs)}static xmlConnection(attrs){return new XmlConnection(attrs)}static xsdConnection(attrs){return new XsdConnection(attrs)}}const DATASETS_NS_ID=NamespaceIds.datasets.id;class datasets_Data extends XmlObject{constructor(attributes){super(DATASETS_NS_ID,"data",attributes)}[$isNsAgnostic](){return!0}}class Datasets extends XFAObject{constructor(attributes){super(DATASETS_NS_ID,"datasets",!0),this.data=null,this.Signature=null}[$onChild](child){var name=child[$nodeName];("data"===name&&child[$namespaceId]===DATASETS_NS_ID||"Signature"===name&&child[$namespaceId]===NamespaceIds.signature.id)&&(this[name]=child),this[$appendChild](child)}}class DatasetsNamespace{static[$buildXFAObject](name,attributes){if(DatasetsNamespace.hasOwnProperty(name))return DatasetsNamespace[name](attributes)}static datasets(attributes){return new Datasets(attributes)}static data(attributes){return new datasets_Data(attributes)}}const LOCALE_SET_NS_ID=NamespaceIds.localeSet.id;class CalendarSymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"calendarSymbols",!0),this.name="gregorian",this.dayNames=new XFAObjectArray(2),this.eraNames=null,this.meridiemNames=null,this.monthNames=new XFAObjectArray(2)}}class CurrencySymbol extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"currencySymbol"),this.name=getStringOption(attributes.name,["symbol","isoname","decimal"])}}class CurrencySymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"currencySymbols",!0),this.currencySymbol=new XFAObjectArray(3)}}class DatePattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"datePattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class DatePatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"datePatterns",!0),this.datePattern=new XFAObjectArray(4)}}class DateTimeSymbols extends ContentObject{constructor(attributes){super(LOCALE_SET_NS_ID,"dateTimeSymbols")}}class Day extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"day")}}class DayNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"dayNames",!0),this.abbr=getInteger({data:attributes.abbr,defaultValue:0,validate:x=>1===x}),this.day=new XFAObjectArray(7)}}class Era extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"era")}}class EraNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"eraNames",!0),this.era=new XFAObjectArray(2)}}class locale_set_Locale extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"locale",!0),this.desc=attributes.desc||"",this.name="isoname",this.calendarSymbols=null,this.currencySymbols=null,this.datePatterns=null,this.dateTimeSymbols=null,this.numberPatterns=null,this.numberSymbols=null,this.timePatterns=null,this.typeFaces=null}}class locale_set_LocaleSet extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"localeSet",!0),this.locale=new XFAObjectArray}}class Meridiem extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"meridiem")}}class MeridiemNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"meridiemNames",!0),this.meridiem=new XFAObjectArray(2)}}class Month extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"month")}}class MonthNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"monthNames",!0),this.abbr=getInteger({data:attributes.abbr,defaultValue:0,validate:x=>1===x}),this.month=new XFAObjectArray(12)}}class NumberPattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberPattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class NumberPatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberPatterns",!0),this.numberPattern=new XFAObjectArray(4)}}class NumberSymbol extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberSymbol"),this.name=getStringOption(attributes.name,["decimal","grouping","percent","minus","zero"])}}class NumberSymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberSymbols",!0),this.numberSymbol=new XFAObjectArray(5)}}class TimePattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"timePattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class TimePatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"timePatterns",!0),this.timePattern=new XFAObjectArray(4)}}class TypeFace extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"typeFace",!0),this.name=""|attributes.name}}class TypeFaces extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"typeFaces",!0),this.typeFace=new XFAObjectArray}}class LocaleSetNamespace{static[$buildXFAObject](name,attributes){if(LocaleSetNamespace.hasOwnProperty(name))return LocaleSetNamespace[name](attributes)}static calendarSymbols(attrs){return new CalendarSymbols(attrs)}static currencySymbol(attrs){return new CurrencySymbol(attrs)}static currencySymbols(attrs){return new CurrencySymbols(attrs)}static datePattern(attrs){return new DatePattern(attrs)}static datePatterns(attrs){return new DatePatterns(attrs)}static dateTimeSymbols(attrs){return new DateTimeSymbols(attrs)}static day(attrs){return new Day(attrs)}static dayNames(attrs){return new DayNames(attrs)}static era(attrs){return new Era(attrs)}static eraNames(attrs){return new EraNames(attrs)}static locale(attrs){return new locale_set_Locale(attrs)}static localeSet(attrs){return new locale_set_LocaleSet(attrs)}static meridiem(attrs){return new Meridiem(attrs)}static meridiemNames(attrs){return new MeridiemNames(attrs)}static month(attrs){return new Month(attrs)}static monthNames(attrs){return new MonthNames(attrs)}static numberPattern(attrs){return new NumberPattern(attrs)}static numberPatterns(attrs){return new NumberPatterns(attrs)}static numberSymbol(attrs){return new NumberSymbol(attrs)}static numberSymbols(attrs){return new NumberSymbols(attrs)}static timePattern(attrs){return new TimePattern(attrs)}static timePatterns(attrs){return new TimePatterns(attrs)}static typeFace(attrs){return new TypeFace(attrs)}static typeFaces(attrs){return new TypeFaces(attrs)}}const SIGNATURE_NS_ID=NamespaceIds.signature.id;class signature_Signature extends XFAObject{constructor(attributes){super(SIGNATURE_NS_ID,"signature",!0)}}class SignatureNamespace{static[$buildXFAObject](name,attributes){if(SignatureNamespace.hasOwnProperty(name))return SignatureNamespace[name](attributes)}static signature(attributes){return new signature_Signature(attributes)}}const STYLESHEET_NS_ID=NamespaceIds.stylesheet.id;class Stylesheet extends XFAObject{constructor(attributes){super(STYLESHEET_NS_ID,"stylesheet",!0)}}class StylesheetNamespace{static[$buildXFAObject](name,attributes){if(StylesheetNamespace.hasOwnProperty(name))return StylesheetNamespace[name](attributes)}static stylesheet(attributes){return new Stylesheet(attributes)}}const XDP_NS_ID=NamespaceIds.xdp.id;class xdp_Xdp extends XFAObject{constructor(attributes){super(XDP_NS_ID,"xdp",!0),this.uuid=attributes.uuid||"",this.timeStamp=attributes.timeStamp||"",this.config=null,this.connectionSet=null,this.datasets=null,this.localeSet=null,this.stylesheet=new XFAObjectArray,this.template=null}[$onChildCheck](child){var ns=NamespaceIds[child[$nodeName]];return ns&&child[$namespaceId]===ns.id}}class XdpNamespace{static[$buildXFAObject](name,attributes){if(XdpNamespace.hasOwnProperty(name))return XdpNamespace[name](attributes)}static xdp(attributes){return new xdp_Xdp(attributes)}}const XHTML_NS_ID=NamespaceIds.xhtml.id,$richText=Symbol(),VALID_STYLES=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),StyleMapping=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",value=>"none"===value?"none":"normal"],["xfa-font-horizontal-scale",value=>`scaleX(${Math.max(0,Math.min(parseInt(value)/100)).toFixed(2)})`],["xfa-font-vertical-scale",value=>`scaleY(${Math.max(0,Math.min(parseInt(value)/100)).toFixed(2)})`],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",(value,original)=>measureToString(.99*(value=original.fontSize=getMeasurement(value)))],["letter-spacing",value=>measureToString(getMeasurement(value))],["line-height",value=>measureToString(getMeasurement(value))],["margin",value=>measureToString(getMeasurement(value))],["margin-bottom",value=>measureToString(getMeasurement(value))],["margin-left",value=>measureToString(getMeasurement(value))],["margin-right",value=>measureToString(getMeasurement(value))],["margin-top",value=>measureToString(getMeasurement(value))],["text-indent",value=>measureToString(getMeasurement(value))],["font-family",value=>value],["vertical-align",value=>measureToString(getMeasurement(value))]]),spacesRegExp=/\s+/g,crlfRegExp=/[\r\n]+/g,crlfForRichTextRegExp=/\r\n?/g;function mapStyle(styleStr,node,richText){var style=Object.create(null);if(styleStr){var key,value,original=Object.create(null);for([key,value]of styleStr.split(";").map(s=>s.split(":",2))){var mapping=StyleMapping.get(key);if(""!==mapping){let newValue=value;mapping&&(newValue="string"==typeof mapping?mapping:mapping(value,original)),key.endsWith("scale")?style.transform=style.transform?style[key]+" "+newValue:newValue:style[key.replaceAll(/-([a-zA-Z])/g,(_,x)=>x.toUpperCase())]=newValue}}style.fontFamily&&setFontFamily({typeface:style.fontFamily,weight:style.fontWeight||"normal",posture:style.fontStyle||"normal",size:original.fontSize||0},node,node[$globalData].fontFinder,style),richText&&style.verticalAlign&&"0px"!==style.verticalAlign&&style.fontSize&&(styleStr=getMeasurement(style.fontSize),style.fontSize=measureToString(.583*styleStr),style.verticalAlign=measureToString(Math.sign(getMeasurement(style.verticalAlign))*styleStr*.333)),richText&&style.fontSize&&(style.fontSize=`calc(${style.fontSize} * var(--scale-factor))`),fixTextIndent(style)}return style}function checkStyle(node){return node.style?node.style.trim().split(/\s*;\s*/).filter(s=>!!s).map(s=>s.split(/\s*:\s*/,2)).filter(([key,value])=>("font-family"===key&&node[$globalData].usedTypefaces.add(value),VALID_STYLES.has(key))).map(kv=>kv.join(":")).join(";"):""}const NoWhites=new Set(["body","html"]);class XhtmlObject extends XmlObject{constructor(attributes,name){super(XHTML_NS_ID,name),this[$richText]=!1,this.style=attributes.style||""}[$clean](builder){super[$clean](builder),this.style=checkStyle(this)}[$acceptWhitespace](){return!NoWhites.has(this[$nodeName])}[$onText](str,richText=!1){richText?this[$richText]=!0:(str=str.replaceAll(crlfRegExp,""),this.style.includes("xfa-spacerun:yes")||(str=str.replaceAll(spacesRegExp," "))),str&&(this[$content]+=str)}[$pushGlyphs](measure,mustPop=!0){var key,value,xfaFont=Object.create(null),margin={top:NaN,bottom:NaN,left:NaN,right:NaN};let lineHeight=null;for([key,value]of this.style.split(";").map(s=>s.split(":",2)))switch(key){case"font-family":xfaFont.typeface=stripQuotes(value);break;case"font-size":xfaFont.size=getMeasurement(value);break;case"font-weight":xfaFont.weight=value;break;case"font-style":xfaFont.posture=value;break;case"letter-spacing":xfaFont.letterSpacing=getMeasurement(value);break;case"margin":var values=value.split(/ \t/).map(x=>getMeasurement(x));switch(values.length){case 1:margin.top=margin.bottom=margin.left=margin.right=values[0];break;case 2:margin.top=margin.bottom=values[0],margin.left=margin.right=values[1];break;case 3:margin.top=values[0],margin.bottom=values[2],margin.left=margin.right=values[1];break;case 4:margin.top=values[0],margin.left=values[1],margin.bottom=values[2],margin.right=values[3]}break;case"margin-top":margin.top=getMeasurement(value);break;case"margin-bottom":margin.bottom=getMeasurement(value);break;case"margin-left":margin.left=getMeasurement(value);break;case"margin-right":margin.right=getMeasurement(value);break;case"line-height":lineHeight=getMeasurement(value)}if(measure.pushData(xfaFont,margin,lineHeight),this[$content])measure.addString(this[$content]);else for(const child of this[$getChildren]())"#text"===child[$nodeName]?measure.addString(child[$content]):child[$pushGlyphs](measure);mustPop&&measure.popFont()}[$toHTML](availableSpace){var children=[];if(this[$extra]={children:children},this[$childrenToHTML]({}),0===children.length&&!this[$content])return HTMLResult.EMPTY;let value;return value=this[$richText]?this[$content]?this[$content].replaceAll(crlfForRichTextRegExp,"\n"):void 0:this[$content]||void 0,HTMLResult.success({name:this[$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this,this[$richText])},children:children,value:value})}}class A extends XhtmlObject{constructor(attributes){super(attributes,"a"),this.href=fixURL(attributes.href)||""}}class B extends XhtmlObject{constructor(attributes){super(attributes,"b")}[$pushGlyphs](measure){measure.pushFont({weight:"bold"}),super[$pushGlyphs](measure),measure.popFont()}}class Body extends XhtmlObject{constructor(attributes){super(attributes,"body")}[$toHTML](availableSpace){var availableSpace=super[$toHTML](availableSpace),html=availableSpace["html"];return html?(html.name="div",html.attributes.class=["xfaRich"],availableSpace):HTMLResult.EMPTY}}class Br extends XhtmlObject{constructor(attributes){super(attributes,"br")}[$text](){return"\n"}[$pushGlyphs](measure){measure.addString("\n")}[$toHTML](availableSpace){return HTMLResult.success({name:"br"})}}class Html extends XhtmlObject{constructor(attributes){super(attributes,"html")}[$toHTML](availableSpace){var children=[];if(this[$extra]={children:children},this[$childrenToHTML]({}),0===children.length)return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[$content]||""});if(1===children.length){var child=children[0];if(child.attributes?.class.includes("xfaRich"))return HTMLResult.success(child)}return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:children})}}class I extends XhtmlObject{constructor(attributes){super(attributes,"i")}[$pushGlyphs](measure){measure.pushFont({posture:"italic"}),super[$pushGlyphs](measure),measure.popFont()}}class Li extends XhtmlObject{constructor(attributes){super(attributes,"li")}}class Ol extends XhtmlObject{constructor(attributes){super(attributes,"ol")}}class P extends XhtmlObject{constructor(attributes){super(attributes,"p")}[$pushGlyphs](measure){super[$pushGlyphs](measure,!1),measure.addString("\n"),measure.addPara(),measure.popFont()}[$text](){return this[$getParent]()[$getChildren]().at(-1)===this?super[$text]():super[$text]()+"\n"}}class Span extends XhtmlObject{constructor(attributes){super(attributes,"span")}}class Sub extends XhtmlObject{constructor(attributes){super(attributes,"sub")}}class Sup extends XhtmlObject{constructor(attributes){super(attributes,"sup")}}class Ul extends XhtmlObject{constructor(attributes){super(attributes,"ul")}}class XhtmlNamespace{static[$buildXFAObject](name,attributes){if(XhtmlNamespace.hasOwnProperty(name))return XhtmlNamespace[name](attributes)}static a(attributes){return new A(attributes)}static b(attributes){return new B(attributes)}static body(attributes){return new Body(attributes)}static br(attributes){return new Br(attributes)}static html(attributes){return new Html(attributes)}static i(attributes){return new I(attributes)}static li(attributes){return new Li(attributes)}static ol(attributes){return new Ol(attributes)}static p(attributes){return new P(attributes)}static span(attributes){return new Span(attributes)}static sub(attributes){return new Sub(attributes)}static sup(attributes){return new Sup(attributes)}static ul(attributes){return new Ul(attributes)}}const NamespaceSetUp={config:ConfigNamespace,connection:ConnectionSetNamespace,datasets:DatasetsNamespace,localeSet:LocaleSetNamespace,signature:SignatureNamespace,stylesheet:StylesheetNamespace,template:TemplateNamespace,xdp:XdpNamespace,xhtml:XhtmlNamespace};class UnknownNamespace{constructor(nsId){this.namespaceId=nsId}[$buildXFAObject](name,attributes){return new XmlObject(this.namespaceId,name,attributes)}}class Root extends XFAObject{constructor(ids){super(-1,"root",Object.create(null)),this.element=null,this[$ids]=ids}[$onChild](child){return this.element=child,!0}[$finalize](){super[$finalize](),this.element.template instanceof Template&&(this[$ids].set($root,this.element),this.element.template[$resolvePrototypes](this[$ids]),this.element.template[$ids]=this[$ids])}}class Empty extends XFAObject{constructor(){super(-1,"",Object.create(null))}[$onChild](_){return!1}}class Builder{constructor(rootNameSpace=null){this._namespaceStack=[],this._nsAgnosticLevel=0,this._namespacePrefixes=new Map,this._namespaces=new Map,this._nextNsId=Math.max(...Object.values(NamespaceIds).map(({id})=>id)),this._currentNamespace=rootNameSpace||new UnknownNamespace(++this._nextNsId)}buildRoot(ids){return new Root(ids)}build({nsPrefix,name,attributes,namespace,prefixes}){var hasNamespaceDef=null!==namespace;if(hasNamespaceDef&&(this._namespaceStack.push(this._currentNamespace),this._currentNamespace=this._searchNamespace(namespace)),prefixes&&this._addNamespacePrefix(prefixes),attributes.hasOwnProperty($nsAttributes)){var ns,attrs,dataTemplate=NamespaceSetUp.datasets,namespace=attributes[$nsAttributes];let xfaAttrs=null;for([ns,attrs]of Object.entries(namespace))if(this._getNamespaceToUse(ns)===dataTemplate){xfaAttrs={xfa:attrs};break}xfaAttrs?attributes[$nsAttributes]=xfaAttrs:delete attributes[$nsAttributes]}namespace=this._getNamespaceToUse(nsPrefix)?.[$buildXFAObject](name,attributes)||new Empty;return namespace[$isNsAgnostic]()&&this._nsAgnosticLevel++,(hasNamespaceDef||prefixes||namespace[$isNsAgnostic]())&&(namespace[$cleanup]={hasNamespace:hasNamespaceDef,prefixes:prefixes,nsAgnostic:namespace[$isNsAgnostic]()}),namespace}isNsAgnostic(){return 0<this._nsAgnosticLevel}_searchNamespace(nsName){let ns=this._namespaces.get(nsName);if(!ns){for(var[name,{check}]of Object.entries(NamespaceIds))if(check(nsName)){if(ns=NamespaceSetUp[name])return this._namespaces.set(nsName,ns),ns;break}ns=new UnknownNamespace(++this._nextNsId),this._namespaces.set(nsName,ns)}return ns}_addNamespacePrefix(prefixes){for(var{prefix,value}of prefixes){value=this._searchNamespace(value);let prefixStack=this._namespacePrefixes.get(prefix);prefixStack||(prefixStack=[],this._namespacePrefixes.set(prefix,prefixStack)),prefixStack.push(value)}}_getNamespaceToUse(prefix){var prefixStack;return prefix?0<(prefixStack=this._namespacePrefixes.get(prefix))?.length?prefixStack.at(-1):(warn(`Unknown namespace prefix: ${prefix}.`),null):this._currentNamespace}clean(data){var{hasNamespace:data,prefixes,nsAgnostic}=data;data&&(this._currentNamespace=this._namespaceStack.pop()),prefixes&&prefixes.forEach(({prefix})=>{this._namespacePrefixes.get(prefix).pop()}),nsAgnostic&&this._nsAgnosticLevel--}}class XFAParser extends XMLParserBase{constructor(rootNameSpace=null,richText=!1){super(),this._builder=new Builder(rootNameSpace),this._stack=[],this._globalData={usedTypefaces:new Set},this._ids=new Map,this._current=this._builder.buildRoot(this._ids),this._errorCode=XMLParserErrorCode.NoError,this._whiteRegex=/^\s+$/,this._nbsps=/\xa0+/g,this._richText=richText}parse(data){if(this.parseXml(data),this._errorCode===XMLParserErrorCode.NoError)return this._current[$finalize](),this._current.element}onText(text){text=text.replace(this._nbsps,match=>match.slice(1)+" "),this._richText||this._current[$acceptWhitespace]()?this._current[$onText](text,this._richText):this._whiteRegex.test(text)||this._current[$onText](text.trim())}onCdata(text){this._current[$onText](text)}_mkAttributes(attributes,tagName){let namespace=null,prefixes=null;var name,value,attributeObj=Object.create({});for({name,value}of attributes)if("xmlns"===name)namespace?warn(`XFA - multiple namespace definition in <${tagName}>`):namespace=value;else if(name.startsWith("xmlns:")){var prefix=name.substring("xmlns:".length);(prefixes=prefixes||[]).push({prefix:prefix,value:value})}else{prefix=name.indexOf(":");if(-1===prefix)attributeObj[name]=value;else{let nsAttrs=attributeObj[$nsAttributes];nsAttrs=nsAttrs||(attributeObj[$nsAttributes]=Object.create(null));var[ns,attrName]=[name.slice(0,prefix),name.slice(prefix+1)];(nsAttrs[ns]||=Object.create(null))[attrName]=value}}return[namespace,prefixes,attributeObj]}_getNameAndPrefix(name,nsAgnostic){var i=name.indexOf(":");return-1===i?[name,null]:[name.substring(i+1),nsAgnostic?"":name.substring(0,i)]}onBeginElement(tagName,attributes,isEmpty){var[attributes,prefixes,attributesObj]=this._mkAttributes(attributes,tagName),[tagName,nsPrefix]=this._getNameAndPrefix(tagName,this._builder.isNsAgnostic()),nsPrefix=this._builder.build({nsPrefix:nsPrefix,name:tagName,attributes:attributesObj,namespace:attributes,prefixes:prefixes});nsPrefix[$globalData]=this._globalData,isEmpty?(nsPrefix[$finalize](),this._current[$onChild](nsPrefix)&&nsPrefix[$setId](this._ids),nsPrefix[$clean](this._builder)):(this._stack.push(this._current),this._current=nsPrefix)}onEndElement(name){var parser,node=this._current;node[$isCDATAXml]()&&"string"==typeof node[$content]&&((parser=new XFAParser)._globalData=this._globalData,parser=parser.parse(node[$content]),node[$content]=null,node[$onChild](parser)),node[$finalize](),this._current=this._stack.pop(),this._current[$onChild](node)&&node[$setId](this._ids),node[$clean](this._builder)}onError(code){this._errorCode=code}}class XFAFactory{constructor(data){try{this.root=(new XFAParser).parse(XFAFactory._createDocument(data));var binder=new Binder(this.root);this.form=binder.bind(),this.dataHandler=new DataHandler(this.root,binder.getData()),this.form[$globalData].template=this.form}catch(e){warn("XFA - an error occurred during parsing and binding: "+e)}}isValid(){return this.root&&this.form}_createPagesHelper(){const iterator=this.form[$toPages]();return new Promise((resolve,reject)=>{const nextIteration=()=>{try{var value=iterator.next();value.done?resolve(value.value):setTimeout(nextIteration,0)}catch(e){reject(e)}};setTimeout(nextIteration,0)})}async _createPages(){try{this.pages=await this._createPagesHelper(),this.dims=this.pages.children.map(c=>{var{width:c,height}=c.attributes.style;return[0,0,parseInt(c),parseInt(height)]})}catch(e){warn("XFA - an error occurred during layout: "+e)}}getBoundingBox(pageIndex){return this.dims[pageIndex]}async getNumPages(){return this.pages||await this._createPages(),this.dims.length}setImages(images){this.form[$globalData].images=images}setFonts(fonts){this.form[$globalData].fontFinder=new FontFinder(fonts);var typeface,missingFonts=[];for(typeface of this.form[$globalData].usedTypefaces)typeface=stripQuotes(typeface),this.form[$globalData].fontFinder.find(typeface)||missingFonts.push(typeface);return 0<missingFonts.length?missingFonts:null}appendFonts(fonts,reallyMissingFonts){this.form[$globalData].fontFinder.add(fonts,reallyMissingFonts)}async getPages(){this.pages||await this._createPages();var pages=this.pages;return this.pages=null,pages}serializeData(storage){return this.dataHandler.serialize(storage)}static _createDocument(data){return data["/xdp:xdp"]?Object.values(data).join(""):data["xdp:xdp"]}static getRichTextAsHtml(rc){if(rc&&"string"==typeof rc)try{let root=new XFAParser(XhtmlNamespace,!0).parse(rc);["body","xhtml"].includes(root[$nodeName])||((newRoot=XhtmlNamespace.body({}))[$appendChild](root),root=newRoot);var newRoot,html,attributes,result=root[$toHTML]();return result.success?(html=result["html"],attributes=html["attributes"],attributes&&(attributes.class&&(attributes.class=attributes.class.filter(attr=>!attr.startsWith("xfa"))),attributes.dir="auto"),{html:html,str:root[$text]()}):null}catch(e){warn("XFA - an error occurred during parsing of rich text: "+e)}return null}}class AnnotationFactory{static createGlobals(pdfManager){return Promise.all([pdfManager.ensureCatalog("acroForm"),pdfManager.ensureDoc("xfaDatasets"),pdfManager.ensureCatalog("structTreeRoot"),pdfManager.ensureCatalog("baseUrl"),pdfManager.ensureCatalog("attachments")]).then(([acroForm,xfaDatasets,structTreeRoot,baseUrl,attachments])=>({pdfManager:pdfManager,acroForm:acroForm instanceof Dict?acroForm:Dict.empty,xfaDatasets:xfaDatasets,structTreeRoot:structTreeRoot,baseUrl:baseUrl,attachments:attachments}),reason=>(warn(`createGlobals: "${reason}".`),null))}static async create(xref,ref,annotationGlobals,idFactory,collectFields,pageRef){var pageIndex=collectFields?await this._getPageIndex(xref,ref,annotationGlobals.pdfManager):null;return annotationGlobals.pdfManager.ensure(this,"_create",[xref,ref,annotationGlobals,idFactory,collectFields,pageIndex,pageRef])}static _create(xref,ref,annotationGlobals,idFactory,collectFields=!1,pageIndex=null,pageRef=null){var dict=xref.fetchIfRef(ref);if(dict instanceof Dict){var{acroForm,pdfManager}=annotationGlobals,idFactory=ref instanceof Ref?ref.toString():"annot_"+idFactory.createObjId(),subtype=dict.get("Subtype"),parameters={xref:xref,ref:ref,dict:dict,subtype:subtype=subtype instanceof Name?subtype.name:null,id:idFactory,annotationGlobals:annotationGlobals,collectFields:collectFields,needAppearances:!collectFields&&!0===acroForm.get("NeedAppearances"),pageIndex:pageIndex,evaluatorOptions:pdfManager.evaluatorOptions,pageRef:pageRef};switch(subtype){case"Link":return new LinkAnnotation(parameters);case"Text":return new TextAnnotation(parameters);case"Widget":var fieldType=getInheritableProperty({dict:dict,key:"FT"});switch(fieldType=fieldType instanceof Name?fieldType.name:null){case"Tx":return new TextWidgetAnnotation(parameters);case"Btn":return new ButtonWidgetAnnotation(parameters);case"Ch":return new ChoiceWidgetAnnotation(parameters);case"Sig":return new SignatureWidgetAnnotation(parameters)}return warn(`Unimplemented widget field type "${fieldType}", `+"falling back to base field type."),new WidgetAnnotation(parameters);case"Popup":return new PopupAnnotation(parameters);case"FreeText":return new FreeTextAnnotation(parameters);case"Line":return new LineAnnotation(parameters);case"Square":return new SquareAnnotation(parameters);case"Circle":return new CircleAnnotation(parameters);case"PolyLine":return new PolylineAnnotation(parameters);case"Polygon":return new PolygonAnnotation(parameters);case"Caret":return new CaretAnnotation(parameters);case"Ink":return new InkAnnotation(parameters);case"Highlight":return new HighlightAnnotation(parameters);case"Underline":return new UnderlineAnnotation(parameters);case"Squiggly":return new SquigglyAnnotation(parameters);case"StrikeOut":return new StrikeOutAnnotation(parameters);case"Stamp":return new StampAnnotation(parameters);case"FileAttachment":return new FileAttachmentAnnotation(parameters);default:return collectFields||warn(subtype?`Unimplemented annotation type "${subtype}", `+"falling back to base annotation.":"Annotation is missing the required /Subtype."),new Annotation(parameters)}}}static async _getPageIndex(xref,ref,pdfManager){try{var annotDict=await xref.fetchIfRefAsync(ref);if(!(annotDict instanceof Dict))return-1;var pageRef=annotDict.getRaw("P");if(pageRef instanceof Ref)try{return await pdfManager.ensureCatalog("getPageIndex",[pageRef])}catch(ex){info(`_getPageIndex -- not a valid page reference: "${ex}".`)}if(annotDict.has("Kids"))return-1;var numPages=await pdfManager.ensureDoc("numPages");for(let pageIndex=0;pageIndex<numPages;pageIndex++){var page=await pdfManager.getPage(pageIndex);for(const annotRef of await pdfManager.ensure(page,"annotations"))if(annotRef instanceof Ref&&isRefsEqual(annotRef,ref))return pageIndex}}catch(ex){warn(`_getPageIndex: "${ex}".`)}return-1}static generateImages(annotations,xref,isOffscreenCanvasSupported){if(!isOffscreenCanvasSupported)return warn("generateImages: OffscreenCanvas is not supported, cannot save or print some annotations with images."),null;let imagePromises;for(var{bitmapId,bitmap}of annotations)bitmap&&(imagePromises||=new Map).set(bitmapId,StampAnnotation.createImage(bitmap,xref));return imagePromises}static async saveNewAnnotations(evaluator,task,annotations,imagePromises){var xref=evaluator.xref;let baseFontRef;var buffer,dependencies=[],promises=[],isOffscreenCanvasSupported=evaluator.options["isOffscreenCanvasSupported"];for(const annotation of annotations)if(!annotation.deleted)switch(annotation.annotationType){case AnnotationEditorType.FREETEXT:baseFontRef||((baseFont=new Dict(xref)).set("BaseFont",Name.get("Helvetica")),baseFont.set("Type",Name.get("Font")),baseFont.set("Subtype",Name.get("Type1")),baseFont.set("Encoding",Name.get("WinAnsiEncoding")),buffer=[],await writeObject(baseFontRef=xref.getNewTemporaryRef(),baseFont,buffer,xref),dependencies.push({ref:baseFontRef,data:buffer.join("")})),promises.push(FreeTextAnnotation.createNewAnnotation(xref,annotation,dependencies,{evaluator:evaluator,task:task,baseFontRef:baseFontRef}));break;case AnnotationEditorType.HIGHLIGHT:annotation.quadPoints?promises.push(HighlightAnnotation.createNewAnnotation(xref,annotation,dependencies)):promises.push(InkAnnotation.createNewAnnotation(xref,annotation,dependencies));break;case AnnotationEditorType.INK:promises.push(InkAnnotation.createNewAnnotation(xref,annotation,dependencies));break;case AnnotationEditorType.STAMP:if(isOffscreenCanvasSupported){var baseFont=await imagePromises.get(annotation.bitmapId);if(baseFont.imageStream){var smaskRef,{imageStream,smaskStream}=baseFont;const buffer=[];smaskStream&&(await writeObject(smaskRef=xref.getNewTemporaryRef(),smaskStream,buffer,xref),dependencies.push({ref:smaskRef,data:buffer.join("")}),imageStream.dict.set("SMask",smaskRef),buffer.length=0);smaskStream=baseFont.imageRef=xref.getNewTemporaryRef();await writeObject(smaskStream,imageStream,buffer,xref),dependencies.push({ref:smaskStream,data:buffer.join("")}),baseFont.imageStream=baseFont.smaskStream=null}promises.push(StampAnnotation.createNewAnnotation(xref,annotation,dependencies,{image:baseFont}))}}return{annotations:await Promise.all(promises),dependencies:dependencies}}static async printNewAnnotations(annotationGlobals,evaluator,task,annotations,imagePromises){if(!annotations)return null;var image,imageStream,smaskStream,{options,xref}=evaluator,promises=[];for(const annotation of annotations)if(!annotation.deleted)switch(annotation.annotationType){case AnnotationEditorType.FREETEXT:promises.push(FreeTextAnnotation.createNewPrintAnnotation(annotationGlobals,xref,annotation,{evaluator:evaluator,task:task,evaluatorOptions:options}));break;case AnnotationEditorType.HIGHLIGHT:annotation.quadPoints?promises.push(HighlightAnnotation.createNewPrintAnnotation(annotationGlobals,xref,annotation,{evaluatorOptions:options})):promises.push(InkAnnotation.createNewPrintAnnotation(annotationGlobals,xref,annotation,{evaluatorOptions:options}));break;case AnnotationEditorType.INK:promises.push(InkAnnotation.createNewPrintAnnotation(annotationGlobals,xref,annotation,{evaluatorOptions:options}));break;case AnnotationEditorType.STAMP:options.isOffscreenCanvasSupported&&((image=await imagePromises.get(annotation.bitmapId)).imageStream&&({imageStream,smaskStream}=image,smaskStream&&imageStream.dict.set("SMask",smaskStream),image.imageRef=new JpegStream(imageStream,imageStream.length),image.imageStream=image.smaskStream=null),promises.push(StampAnnotation.createNewPrintAnnotation(annotationGlobals,xref,annotation,{image:image,evaluatorOptions:options})))}return Promise.all(promises)}}function getRgbColor(color,defaultColor=new Uint8ClampedArray(3)){if(!Array.isArray(color))return defaultColor;var rgbColor=defaultColor||new Uint8ClampedArray(3);switch(color.length){case 0:return null;case 1:return ColorSpace.singletons.gray.getRgbItem(color,0,rgbColor,0),rgbColor;case 3:return ColorSpace.singletons.rgb.getRgbItem(color,0,rgbColor,0),rgbColor;case 4:return ColorSpace.singletons.cmyk.getRgbItem(color,0,rgbColor,0),rgbColor;default:return defaultColor}}function getPdfColorArray(color){return Array.from(color,c=>c/255)}function getQuadPoints(dict,rect){var quadPoints=dict.getArray("QuadPoints");if(!Array.isArray(quadPoints)||0===quadPoints.length||0<quadPoints.length%8)return null;var quadPointsLists=[];for(let i=0,ii=quadPoints.length/8;i<ii;i++){let minX=1/0,maxX=-1/0,minY=1/0,maxY=-1/0;for(let j=8*i,jj=8*i+8;j<jj;j+=2){var x=quadPoints[j],y=quadPoints[j+1];minX=Math.min(x,minX),maxX=Math.max(x,maxX),minY=Math.min(y,minY),maxY=Math.max(y,maxY)}if(null!==rect&&(minX<rect[0]||maxX>rect[2]||minY<rect[1]||maxY>rect[3]))return null;quadPointsLists.push([{x:minX,y:maxY},{x:maxX,y:maxY},{x:minX,y:minY},{x:maxX,y:minY}])}return quadPointsLists}function getTransformMatrix(rect,bbox,matrix){var[bbox,matrix,maxX,maxY]=Util.getAxialAlignedBoundingBox(bbox,matrix);return bbox===maxX||matrix===maxY?[1,0,0,1,rect[0],rect[1]]:[maxX=(rect[2]-rect[0])/(maxX-bbox),0,0,maxY=(rect[3]-rect[1])/(maxY-matrix),rect[0]-bbox*maxX,rect[1]-matrix*maxY]}class Annotation{constructor(params){var structParent,{dict,xref,annotationGlobals}=params,MK=(this.setTitle(dict.get("T")),this.setContents(dict.get("Contents")),this.setModificationDate(dict.get("M")),this.setFlags(dict.get("F")),this.setRectangle(dict.getArray("Rect")),this.setColor(dict.getArray("C")),this.setBorderStyle(dict),this.setAppearance(dict),this.setOptionalContent(dict),dict.get("MK")),MK=(this.setBorderAndBackgroundColors(MK),this.setRotation(MK,dict),this.ref=params.ref instanceof Ref?params.ref:null,this._streams=[],this.appearance&&this._streams.push(this.appearance),!!(this.flags&AnnotationFlag.LOCKED)),isContentLocked=!!(this.flags&AnnotationFlag.LOCKEDCONTENTS);if(annotationGlobals.structTreeRoot&&(structParent=dict.get("StructParent"),structParent=Number.isInteger(structParent)&&0<=structParent?structParent:-1,annotationGlobals.structTreeRoot.addAnnotationIdToPage(params.pageRef,structParent)),this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,rotation:this.rotation,contentsObj:this._contents,hasAppearance:!!this.appearance,id:params.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:params.subtype,hasOwnCanvas:!1,noRotate:!!(this.flags&AnnotationFlag.NOROTATE),noHTML:MK&&isContentLocked},params.collectFields){annotationGlobals=dict.get("Kids");if(Array.isArray(annotationGlobals)){var kidIds=[];for(const kid of annotationGlobals)kid instanceof Ref&&kidIds.push(kid.toString());0!==kidIds.length&&(this.data.kidIds=kidIds)}this.data.actions=collectActions(xref,dict,AnnotationActionEventType),this.data.fieldName=this._constructFieldName(dict),this.data.pageIndex=params.pageIndex}this._isOffscreenCanvasSupported=params.evaluatorOptions.isOffscreenCanvasSupported,this._fallbackFontDict=null,this._needAppearances=!1}_hasFlag(flags,flag){return!!(flags&flag)}_isViewable(flags){return!this._hasFlag(flags,AnnotationFlag.INVISIBLE)&&!this._hasFlag(flags,AnnotationFlag.NOVIEW)}_isPrintable(flags){return this._hasFlag(flags,AnnotationFlag.PRINT)&&!this._hasFlag(flags,AnnotationFlag.HIDDEN)&&!this._hasFlag(flags,AnnotationFlag.INVISIBLE)}mustBeViewed(annotationStorage,_renderForms){annotationStorage=annotationStorage?.get(this.data.id)?.noView;return void 0!==annotationStorage?!annotationStorage:this.viewable&&!this._hasFlag(this.flags,AnnotationFlag.HIDDEN)}mustBePrinted(annotationStorage){annotationStorage=annotationStorage?.get(this.data.id)?.noPrint;return void 0!==annotationStorage?!annotationStorage:this.printable}get viewable(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}get printable(){return null!==this.data.quadPoints&&0!==this.flags&&this._isPrintable(this.flags)}_parseStringHelper(data){data="string"==typeof data?stringToPDFString(data):"";return{str:data,dir:data&&"rtl"===bidi(data).dir?"rtl":"ltr"}}setDefaultAppearance(params){var{dict:params,annotationGlobals}=params,params=getInheritableProperty({dict:params,key:"DA"})||annotationGlobals.acroForm.get("DA");this._defaultAppearance="string"==typeof params?params:"",this.data.defaultAppearanceData=parseDefaultAppearance(this._defaultAppearance)}setTitle(title){this._title=this._parseStringHelper(title)}setContents(contents){this._contents=this._parseStringHelper(contents)}setModificationDate(modificationDate){this.modificationDate="string"==typeof modificationDate?modificationDate:null}setFlags(flags){this.flags=Number.isInteger(flags)&&0<flags?flags:0,this.flags&AnnotationFlag.INVISIBLE&&"Annotation"!==this.constructor.name&&(this.flags^=AnnotationFlag.INVISIBLE)}hasFlag(flag){return this._hasFlag(this.flags,flag)}setRectangle(rectangle){this.rectangle=Array.isArray(rectangle)&&4===rectangle.length?Util.normalizeRect(rectangle):[0,0,0,0]}setColor(color){this.color=getRgbColor(color)}setLineEndings(lineEndings){if(this.lineEndings=["None","None"],Array.isArray(lineEndings)&&2===lineEndings.length)for(let i=0;i<2;i++){var obj=lineEndings[i];if(obj instanceof Name)switch(obj.name){case"None":continue;case"Square":case"Circle":case"Diamond":case"OpenArrow":case"ClosedArrow":case"Butt":case"ROpenArrow":case"RClosedArrow":case"Slash":this.lineEndings[i]=obj.name;continue}warn("Ignoring invalid lineEnding: "+obj)}}setRotation(mk,dict){this.rotation=0;let angle=mk instanceof Dict?mk.get("R")||0:dict.get("Rotate")||0;Number.isInteger(angle)&&0!==angle&&((angle%=360)<0&&(angle+=360),angle%90==0)&&(this.rotation=angle)}setBorderAndBackgroundColors(mk){mk instanceof Dict?(this.borderColor=getRgbColor(mk.getArray("BC"),null),this.backgroundColor=getRgbColor(mk.getArray("BG"),null)):this.borderColor=this.backgroundColor=null}setBorderStyle(borderStyle){var dict,dictType;this.borderStyle=new AnnotationBorderStyle,borderStyle instanceof Dict&&(borderStyle.has("BS")?(dict=borderStyle.get("BS"))instanceof Dict&&((dictType=dict.get("Type"))&&!isName(dictType,"Border")||(this.borderStyle.setWidth(dict.get("W"),this.rectangle),this.borderStyle.setStyle(dict.get("S")),this.borderStyle.setDashArray(dict.getArray("D")))):borderStyle.has("Border")?(dictType=borderStyle.getArray("Border"),Array.isArray(dictType)&&3<=dictType.length&&(this.borderStyle.setHorizontalCornerRadius(dictType[0]),this.borderStyle.setVerticalCornerRadius(dictType[1]),this.borderStyle.setWidth(dictType[2],this.rectangle),4===dictType.length)&&this.borderStyle.setDashArray(dictType[3],!0)):this.borderStyle.setWidth(0))}setAppearance(dict){this.appearance=null;var appearanceStates=dict.get("AP");appearanceStates instanceof Dict&&((appearanceStates=appearanceStates.get("N"))instanceof BaseStream?this.appearance=appearanceStates:appearanceStates instanceof Dict&&(dict=dict.get("AS"))instanceof Name&&appearanceStates.has(dict.name)&&(appearanceStates=appearanceStates.get(dict.name))instanceof BaseStream&&(this.appearance=appearanceStates))}setOptionalContent(dict){this.oc=null;dict=dict.get("OC");dict instanceof Name?warn("setOptionalContent: Support for /Name-entry is not implemented."):dict instanceof Dict&&(this.oc=dict)}loadResources(keys,appearance){return appearance.dict.getAsync("Resources").then(resources=>{if(resources)return new ObjectLoader(resources,keys,resources.xref).load().then(function(){return resources})})}async getOperatorList(evaluator,task,intent,renderForms,annotationStorage){var{hasOwnCanvas,id,rect}=this.data;let appearance=this.appearance;hasOwnCanvas=!!(hasOwnCanvas&&intent&RenderingIntentFlag.DISPLAY);if(hasOwnCanvas&&(rect[0]===rect[2]||rect[1]===rect[3]))return this.data.hasOwnCanvas=!1,{opList:new OperatorList,separateForm:!1,separateCanvas:!1};if(!appearance){if(!hasOwnCanvas)return{opList:new OperatorList,separateForm:!1,separateCanvas:!1};(appearance=new StringStream("")).dict=new Dict}var intent=appearance.dict,resources=await this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"],appearance),bbox=intent.getArray("BBox")||[0,0,1,1],intent=intent.getArray("Matrix")||[1,0,0,1,0,0],bbox=getTransformMatrix(rect,bbox,intent),opList=new OperatorList;let optionalContent;return void 0!==(optionalContent=this.oc?await evaluator.parseMarkedContentProps(this.oc,null):optionalContent)&&opList.addOp(OPS.beginMarkedContentProps,["OC",optionalContent]),opList.addOp(OPS.beginAnnotation,[id,rect,bbox,intent,hasOwnCanvas]),await evaluator.getOperatorList({stream:appearance,task:task,resources:resources,operatorList:opList,fallbackFontDict:this._fallbackFontDict}),opList.addOp(OPS.endAnnotation,[]),void 0!==optionalContent&&opList.addOp(OPS.endMarkedContent,[]),this.reset(),{opList:opList,separateForm:!1,separateCanvas:hasOwnCanvas}}async save(evaluator,task,annotationStorage){return null}get hasTextContent(){return!1}async extractTextContent(evaluator,task,viewBox){if(this.appearance){var resources=await this.loadResources(["ExtGState","Font","Properties","XObject"],this.appearance);const text=[],buffer=[];let firstPosition=null;var sink={desiredSize:Math.Infinity,ready:!0,enqueue(chunk,size){for(const item of chunk.items)void 0!==item.str&&(firstPosition||=item.transform.slice(-2),buffer.push(item.str),item.hasEOL)&&(text.push(buffer.join("").trimEnd()),buffer.length=0)}};await evaluator.getTextContent({stream:this.appearance,task:task,resources:resources,includeMarkedContent:!0,keepWhiteSpace:!0,sink:sink,viewBox:viewBox}),this.reset(),buffer.length&&text.push(buffer.join("").trimEnd()),(1<text.length||text[0])&&(evaluator=this.appearance.dict,this.data.textPosition=this._transformPoint(firstPosition,evaluator.getArray("BBox"),evaluator.getArray("Matrix")),this.data.textContent=text)}}_transformPoint(coords,bbox,matrix){var rect=this.data["rect"],bbox=getTransformMatrix(rect,bbox||=[0,0,1,1],matrix||=[1,0,0,1,0,0]);return bbox[4]-=rect[0],bbox[5]-=rect[1],coords=Util.applyTransform(coords,bbox),Util.applyTransform(coords,matrix)}getFieldObject(){return this.data.kidIds?{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex,rotation:this.rotation}:null}reset(){for(const stream of this._streams)stream.reset()}_constructFieldName(dict){if(!dict.has("T")&&!dict.has("Parent"))return warn("Unknown field name, falling back to empty field name."),"";if(!dict.has("Parent"))return stringToPDFString(dict.get("T"));var fieldName=[];dict.has("T")&&fieldName.unshift(stringToPDFString(dict.get("T")));let loopDict=dict;var visited=new RefSet;for(dict.objId&&visited.put(dict.objId);loopDict.has("Parent")&&(loopDict=loopDict.get("Parent"))instanceof Dict&&(!loopDict.objId||!visited.has(loopDict.objId));)loopDict.objId&&visited.put(loopDict.objId),loopDict.has("T")&&fieldName.unshift(stringToPDFString(loopDict.get("T")));return fieldName.join(".")}}class AnnotationBorderStyle{constructor(){this.width=1,this.style=AnnotationBorderStyleType.SOLID,this.dashArray=[3],this.horizontalCornerRadius=0,this.verticalCornerRadius=0}setWidth(width,rect=[0,0,0,0]){var maxWidth;width instanceof Name?this.width=0:"number"==typeof width&&(0<width&&(maxWidth=(rect[2]-rect[0])/2,rect=(rect[3]-rect[1])/2,0<maxWidth)&&0<rect&&(maxWidth<width||rect<width)&&(warn("AnnotationBorderStyle.setWidth - ignoring width: "+width),width=1),this.width=width)}setStyle(style){if(style instanceof Name)switch(style.name){case"S":this.style=AnnotationBorderStyleType.SOLID;break;case"D":this.style=AnnotationBorderStyleType.DASHED;break;case"B":this.style=AnnotationBorderStyleType.BEVELED;break;case"I":this.style=AnnotationBorderStyleType.INSET;break;case"U":this.style=AnnotationBorderStyleType.UNDERLINE}}setDashArray(dashArray,forceStyle=!1){if(Array.isArray(dashArray)){let isValid=!0,allZeros=!0;for(const element of dashArray){if(!(0<=+element)){isValid=!1;break}0<element&&(allZeros=!1)}0===dashArray.length||isValid&&!allZeros?(this.dashArray=dashArray,forceStyle&&this.setStyle(Name.get("D"))):this.width=0}else dashArray&&(this.width=0)}setHorizontalCornerRadius(radius){Number.isInteger(radius)&&(this.horizontalCornerRadius=radius)}setVerticalCornerRadius(radius){Number.isInteger(radius)&&(this.verticalCornerRadius=radius)}}class MarkupAnnotation extends Annotation{constructor(params){super(params);var rawIRT,params=params["dict"];params.has("IRT")&&(rawIRT=params.getRaw("IRT"),this.data.inReplyTo=rawIRT instanceof Ref?rawIRT.toString():null,rawIRT=params.get("RT"),this.data.replyType=rawIRT instanceof Name?rawIRT.name:AnnotationReplyType.REPLY);let popupRef=null;this.data.replyType===AnnotationReplyType.GROUP?(rawIRT=params.get("IRT"),this.setTitle(rawIRT.get("T")),this.data.titleObj=this._title,this.setContents(rawIRT.get("Contents")),this.data.contentsObj=this._contents,rawIRT.has("CreationDate")?(this.setCreationDate(rawIRT.get("CreationDate")),this.data.creationDate=this.creationDate):this.data.creationDate=null,rawIRT.has("M")?(this.setModificationDate(rawIRT.get("M")),this.data.modificationDate=this.modificationDate):this.data.modificationDate=null,popupRef=rawIRT.getRaw("Popup"),rawIRT.has("C")?(this.setColor(rawIRT.getArray("C")),this.data.color=this.color):this.data.color=null):(this.data.titleObj=this._title,this.setCreationDate(params.get("CreationDate")),this.data.creationDate=this.creationDate,popupRef=params.getRaw("Popup"),params.has("C")||(this.data.color=null)),this.data.popupRef=popupRef instanceof Ref?popupRef.toString():null,params.has("RC")&&(this.data.richText=XFAFactory.getRichTextAsHtml(params.get("RC")))}setCreationDate(creationDate){this.creationDate="string"==typeof creationDate?creationDate:null}_setDefaultAppearance({xref,extra,strokeColor,fillColor,blendMode,strokeAlpha,fillAlpha,pointsCallback}){let minX=Number.MAX_VALUE,minY=Number.MAX_VALUE,maxX=Number.MIN_VALUE,maxY=Number.MIN_VALUE;var buffer=["q"];extra&&buffer.push(extra),strokeColor&&buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`),fillColor&&buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);let pointsArray=this.data.quadPoints;for(const points of pointsArray=pointsArray||[[{x:this.rectangle[0],y:this.rectangle[3]},{x:this.rectangle[2],y:this.rectangle[3]},{x:this.rectangle[0],y:this.rectangle[1]},{x:this.rectangle[2],y:this.rectangle[1]}]]){var[mX,MX,mY,MY]=pointsCallback(buffer,points);minX=Math.min(minX,mX),maxX=Math.max(maxX,MX),minY=Math.min(minY,mY),maxY=Math.max(maxY,MY)}buffer.push("Q");extra=new Dict(xref),strokeColor=new Dict(xref),strokeColor.set("Subtype",Name.get("Form")),fillColor=new StringStream(buffer.join(" ")),fillColor.dict=strokeColor,extra.set("Fm0",fillColor),strokeColor=new Dict(xref),blendMode&&strokeColor.set("BM",Name.get(blendMode)),"number"==typeof strokeAlpha&&strokeColor.set("CA",strokeAlpha),"number"==typeof fillAlpha&&strokeColor.set("ca",fillAlpha),blendMode=new Dict(xref),blendMode.set("GS0",strokeColor),strokeAlpha=new Dict(xref),strokeAlpha.set("ExtGState",blendMode),strokeAlpha.set("XObject",extra),fillAlpha=new Dict(xref),fillAlpha.set("Resources",strokeAlpha),strokeColor=this.data.rect=[minX,minY,maxX,maxY];fillAlpha.set("BBox",strokeColor),this.appearance=new StringStream("/GS0 gs /Fm0 Do"),this.appearance.dict=fillAlpha,this._streams.push(this.appearance,fillColor)}static async createNewAnnotation(xref,annotation,dependencies,params){var apRef,annotationRef=annotation.ref||=xref.getNewTemporaryRef(),params=await this.createNewAppearanceStream(annotation,xref,params),buffer=[];let annotationDict;return params?(apRef=xref.getNewTemporaryRef(),annotationDict=this.createNewDict(annotation,xref,{apRef:apRef}),await writeObject(apRef,params,buffer,xref),dependencies.push({ref:apRef,data:buffer.join("")})):annotationDict=this.createNewDict(annotation,xref,{}),Number.isInteger(annotation.parentTreeId)&&annotationDict.set("StructParent",annotation.parentTreeId),buffer.length=0,await writeObject(annotationRef,annotationDict,buffer,xref),{ref:annotationRef,data:buffer.join("")}}static async createNewPrintAnnotation(annotationGlobals,xref,annotation,params){var ap=await this.createNewAppearanceStream(annotation,xref,params),ap=this.createNewDict(annotation,xref,{ap:ap}),ap=new this.prototype.constructor({dict:ap,xref:xref,annotationGlobals:annotationGlobals,evaluatorOptions:params.evaluatorOptions});return annotation.ref&&(ap.ref=ap.refToReplace=annotation.ref),ap}}class WidgetAnnotation extends Annotation{constructor(params){super(params);var{dict,xref,annotationGlobals}=params,data=this.data;this._needAppearances=params.needAppearances,data.annotationType=AnnotationType.WIDGET,void 0===data.fieldName&&(data.fieldName=this._constructFieldName(dict)),void 0===data.actions&&(data.actions=collectActions(xref,dict,AnnotationActionEventType));let fieldValue=getInheritableProperty({dict:dict,key:"V",getArray:!0});data.fieldValue=this._decodeFormValue(fieldValue);var defaultFieldValue=getInheritableProperty({dict:dict,key:"DV",getArray:!0}),defaultFieldValue=(data.defaultFieldValue=this._decodeFormValue(defaultFieldValue),void 0===fieldValue&&annotationGlobals.xfaDatasets&&(defaultFieldValue=this._title.str)&&(this._hasValueFromXFA=!0,data.fieldValue=fieldValue=annotationGlobals.xfaDatasets.getValue(defaultFieldValue)),void 0===fieldValue&&null!==data.defaultFieldValue&&(data.fieldValue=data.defaultFieldValue),data.alternativeText=stringToPDFString(dict.get("TU")||""),this.setDefaultAppearance(params),data.hasAppearance||=this._needAppearances&&void 0!==data.fieldValue&&null!==data.fieldValue,getInheritableProperty({dict:dict,key:"FT"})),params=(data.fieldType=defaultFieldValue instanceof Name?defaultFieldValue.name:null,getInheritableProperty({dict:dict,key:"DR"})),defaultFieldValue=annotationGlobals.acroForm.get("DR"),annotationGlobals=this.appearance?.dict.get("Resources");this._fieldResources={localResources:params,acroFormResources:defaultFieldValue,appearanceResources:annotationGlobals,mergedResources:Dict.merge({xref:xref,dictArray:[params,annotationGlobals,defaultFieldValue],mergeSubDicts:!0})},data.fieldFlags=getInheritableProperty({dict:dict,key:"Ff"}),(!Number.isInteger(data.fieldFlags)||data.fieldFlags<0)&&(data.fieldFlags=0),data.readOnly=this.hasFieldFlag(AnnotationFieldFlag.READONLY),data.required=this.hasFieldFlag(AnnotationFieldFlag.REQUIRED),data.hidden=this._hasFlag(data.annotationFlags,AnnotationFlag.HIDDEN)||this._hasFlag(data.annotationFlags,AnnotationFlag.NOVIEW)}_decodeFormValue(formValue){return Array.isArray(formValue)?formValue.filter(item=>"string"==typeof item).map(item=>stringToPDFString(item)):formValue instanceof Name?stringToPDFString(formValue.name):"string"==typeof formValue?stringToPDFString(formValue):null}hasFieldFlag(flag){return!!(this.data.fieldFlags&flag)}_isViewable(flags){return!0}mustBeViewed(annotationStorage,renderForms){return renderForms?this.viewable:super.mustBeViewed(annotationStorage,renderForms)&&!this._hasFlag(this.flags,AnnotationFlag.NOVIEW)}getRotationMatrix(annotationStorage){let rotation=annotationStorage?.get(this.data.id)?.rotation;var height;return 0===(rotation=void 0===rotation?this.rotation:rotation)?IDENTITY_MATRIX:(annotationStorage=this.data.rect[2]-this.data.rect[0],height=this.data.rect[3]-this.data.rect[1],getRotationMatrix(rotation,annotationStorage,height))}getBorderAndBackgroundAppearances(annotationStorage){let rotation=annotationStorage?.get(this.data.id)?.rotation;if(void 0===rotation&&(rotation=this.rotation),!this.backgroundColor&&!this.borderColor)return"";var annotationStorage=this.data.rect[2]-this.data.rect[0],height=this.data.rect[3]-this.data.rect[1],height=0===rotation||180===rotation?`0 0 ${annotationStorage} ${height} re`:`0 0 ${height} ${annotationStorage} re`;let str="";return this.backgroundColor&&(str=getPdfColor(this.backgroundColor,!0)+` ${height} f `),this.borderColor&&(annotationStorage=this.borderStyle.width||1,str+=`${annotationStorage} w ${getPdfColor(this.borderColor,!1)} ${height} S `),str}async getOperatorList(evaluator,task,intent,renderForms,annotationStorage){if(renderForms&&!(this instanceof SignatureWidgetAnnotation)&&!this.data.noHTML&&!this.data.hasOwnCanvas)return{opList:new OperatorList,separateForm:!0,separateCanvas:!1};if(!this._hasText)return super.getOperatorList(evaluator,task,intent,renderForms,annotationStorage);var content=await this._getAppearance(evaluator,task,intent,annotationStorage);if(this.appearance&&null===content)return super.getOperatorList(evaluator,task,intent,renderForms,annotationStorage);renderForms=new OperatorList;if(!this._defaultAppearance||null===content)return{opList:renderForms,separateForm:!1,separateCanvas:!1};var intent=!!(this.data.hasOwnCanvas&&intent&RenderingIntentFlag.DISPLAY),bbox=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],bbox=getTransformMatrix(this.data.rect,bbox,[1,0,0,1,0,0]);let optionalContent;void 0!==(optionalContent=this.oc?await evaluator.parseMarkedContentProps(this.oc,null):optionalContent)&&renderForms.addOp(OPS.beginMarkedContentProps,["OC",optionalContent]),renderForms.addOp(OPS.beginAnnotation,[this.data.id,this.data.rect,bbox,this.getRotationMatrix(annotationStorage),intent]);bbox=new StringStream(content);return await evaluator.getOperatorList({stream:bbox,task:task,resources:this._fieldResources.mergedResources,operatorList:renderForms}),renderForms.addOp(OPS.endAnnotation,[]),void 0!==optionalContent&&renderForms.addOp(OPS.endMarkedContent,[]),{opList:renderForms,separateForm:!1,separateCanvas:intent}}_getMKDict(rotation){var mk=new Dict(null);return rotation&&mk.set("R",rotation),this.borderColor&&mk.set("BC",getPdfColorArray(this.borderColor)),this.backgroundColor&&mk.set("BG",getPdfColorArray(this.backgroundColor)),0<mk.size?mk:null}amendSavedDict(annotationStorage,dict){}async save(evaluator,task,annotationStorage){var storageEntry=annotationStorage?.get(this.data.id);let value=storageEntry?.value,rotation=storageEntry?.rotation;if(value===this.data.fieldValue||void 0===value){if(!this._hasValueFromXFA&&void 0===rotation)return null;value||=this.data.fieldValue}if(void 0===rotation&&!this._hasValueFromXFA&&Array.isArray(value)&&Array.isArray(this.data.fieldValue)&&value.length===this.data.fieldValue.length&&value.every((x,i)=>x===this.data.fieldValue[i]))return null;void 0===rotation&&(rotation=this.rotation);let appearance=null;if(!this._needAppearances&&null===(appearance=await this._getAppearance(evaluator,task,RenderingIntentFlag.SAVE,annotationStorage)))return null;let needAppearances=!1;appearance?.needAppearances&&(needAppearances=!0,appearance=null);var storageEntry=evaluator["xref"],originalDict=storageEntry.fetchIfRef(this.ref);if(!(originalDict instanceof Dict))return null;var dict=new Dict(storageEntry);for(const key of originalDict.getKeys())"AP"!==key&&dict.set(key,originalDict.getRaw(key));var newRef,appearanceStream,appearanceDict,AP,task={path:this.data.fieldName,value:value},evaluator=val=>isAscii(val)?val:stringToUTF16String(val,!0),evaluator=(dict.set("V",Array.isArray(value)?value.map(evaluator):evaluator(value)),this.amendSavedDict(annotationStorage,dict),this._getMKDict(rotation)),evaluator=(evaluator&&dict.set("MK",evaluator),[]),task=[{ref:this.ref,data:"",xfa:task,needAppearances:needAppearances}];return null!==appearance&&(newRef=storageEntry.getNewTemporaryRef(),AP=new Dict(storageEntry),dict.set("AP",AP),AP.set("N",newRef),AP=this._getSaveFieldResources(storageEntry),(appearanceDict=(appearanceStream=new StringStream(appearance)).dict=new Dict(storageEntry)).set("Subtype",Name.get("Form")),appearanceDict.set("Resources",AP),appearanceDict.set("BBox",[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]]),(AP=this.getRotationMatrix(annotationStorage))!==IDENTITY_MATRIX&&appearanceDict.set("Matrix",AP),await writeObject(newRef,appearanceStream,evaluator,storageEntry),task.push({ref:newRef,data:evaluator.join(""),xfa:null,needAppearances:!1}),evaluator.length=0),dict.set("M","D:"+getModificationDate()),await writeObject(this.ref,dict,evaluator,storageEntry),task[0].data=evaluator.join(""),task}async _getAppearance(evaluator,task,intent,annotationStorage){if(this.hasFieldFlag(AnnotationFieldFlag.PASSWORD))return null;var storageEntry=annotationStorage?.get(this.data.id);let value,rotation;if(storageEntry&&(value=storageEntry.formattedValue||storageEntry.value,rotation=storageEntry.rotation),void 0===rotation&&void 0===value&&!this._needAppearances&&(!this._hasValueFromXFA||this.appearance))return null;storageEntry=this.getBorderAndBackgroundAppearances(annotationStorage);if(void 0===value&&!(value=this.data.fieldValue))return`/Tx BMC q ${storageEntry}Q EMC`;if(assert("string"==typeof(value=Array.isArray(value)&&1===value.length?value[0]:value),"Expected `value` to be a string."),value=value.trim(),this.data.combo&&(option=this.data.options.find(({exportValue})=>value===exportValue),value=option?.displayValue||value),""===value)return`/Tx BMC q ${storageEntry}Q EMC`;void 0===rotation&&(rotation=this.rotation);let lineCount=-1,lines;this.data.multiLine?(lines=value.split(/\r\n?|\n/).map(line=>line.normalize("NFC")),lineCount=lines.length):lines=[value.replace(/\r\n?|\n/,"").normalize("NFC")];let totalHeight=this.data.rect[3]-this.data.rect[1],totalWidth=this.data.rect[2]-this.data.rect[0],font=(90!==rotation&&270!==rotation||([totalWidth,totalHeight]=[totalHeight,totalWidth]),this._defaultAppearance||(this.data.defaultAppearanceData=parseDefaultAppearance(this._defaultAppearance="/Helvetica 0 Tf 0 g")),await WidgetAnnotation._getFontData(evaluator,task,this.data.defaultAppearanceData,this._fieldResources.mergedResources)),defaultAppearance,fontSize,lineHeight;var encodedLines=[];let encodingError=!1;for(const line of lines){var encodedString=font.encodeString(line);1<encodedString.length&&(encodingError=!0),encodedLines.push(encodedString.join(""))}if(encodingError&&intent&RenderingIntentFlag.SAVE)return{needAppearances:!0};if(encodingError&&this._isOffscreenCanvasSupported){var option=this.data.comb?"monospace":"sans-serif",intent=new FakeUnicodeFont(evaluator.xref,option),option=intent.createFontResources(lines.join("")),newFont=option.getRaw("Font");if(this._fieldResources.mergedResources.has("Font")){var oldFont=this._fieldResources.mergedResources.get("Font");for(const key of newFont.getKeys())oldFont.set(key,newFont.getRaw(key))}else this._fieldResources.mergedResources.set("Font",newFont);intent=intent.fontName.name;font=await WidgetAnnotation._getFontData(evaluator,task,{fontName:intent,fontSize:0},option);for(let i=0,ii=encodedLines.length;i<ii;i++)encodedLines[i]=stringToUTF16String(lines[i]);evaluator=Object.assign(Object.create(null),this.data.defaultAppearanceData);this.data.defaultAppearanceData.fontSize=0,this.data.defaultAppearanceData.fontName=intent,[defaultAppearance,fontSize,lineHeight]=this._computeFontSize(totalHeight-2,totalWidth-4,value,font,lineCount),this.data.defaultAppearanceData=evaluator}else this._isOffscreenCanvasSupported||warn("_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly."),[defaultAppearance,fontSize,lineHeight]=this._computeFontSize(totalHeight-2,totalWidth-4,value,font,lineCount);let descent=font.descent;descent=isNaN(descent)?BASELINE_FACTOR*lineHeight:Math.max(BASELINE_FACTOR*lineHeight,Math.abs(descent)*fontSize);task=Math.min(Math.floor((totalHeight-fontSize)/2),1),option=this.data.textAlignment;return this.data.multiLine?this._getMultilineAppearance(defaultAppearance,encodedLines,font,fontSize,totalWidth,totalHeight,option,2,task,descent,lineHeight,annotationStorage):this.data.comb?this._getCombAppearance(defaultAppearance,font,encodedLines[0],fontSize,totalWidth,totalHeight,2,task,descent,lineHeight,annotationStorage):(intent=task+descent,0===option||2<option?`/Tx BMC q ${storageEntry}BT `+defaultAppearance+` 1 0 0 1 ${numberToString(2)} ${numberToString(intent)} Tm (${escapeString(encodedLines[0])}) Tj`+" ET Q EMC":(evaluator=this._renderText(encodedLines[0],font,fontSize,totalWidth,option,{shift:0},2,intent),`/Tx BMC q ${storageEntry}BT `+defaultAppearance+" 1 0 0 1 0 0 Tm "+evaluator+" ET Q EMC"))}static async _getFontData(evaluator,task,appearanceData,resources){var operatorList=new OperatorList,initialState={font:null,clone(){return this}},{fontName:appearanceData,fontSize}=appearanceData;return await evaluator.handleSetFont(resources,[appearanceData&&Name.get(appearanceData),fontSize],null,operatorList,task,initialState,null),initialState.font}_getTextWidth(text,font){return font.charsToGlyphs(text).reduce((width,glyph)=>width+glyph.width,0)/1e3}_computeFontSize(height,width,text,font,lineCount){let fontSize=this.data.defaultAppearanceData["fontSize"],lineHeight=(fontSize||12)*LINE_FACTOR,numberOfLines=Math.round(height/lineHeight);if(!fontSize){var roundWithTwoDigits=x=>Math.floor(100*x)/100;if(-1===lineCount){var textWidth=this._getTextWidth(text,font);fontSize=roundWithTwoDigits(Math.min(height/LINE_FACTOR,width<textWidth?width/textWidth:1/0)),numberOfLines=1}else{textWidth=text.split(/\r\n?|\n/);const cachedLines=[];for(const line of textWidth){var encoded=font.encodeString(line).join(""),glyphs=font.charsToGlyphs(encoded),positions=font.getCharPositions(encoded);cachedLines.push({line:encoded,glyphs:glyphs,positions:positions})}var isTooBig=fsize=>{let totalHeight=0;for(const cache of cachedLines){var chunks=this._splitLine(null,font,fsize,width,cache);if((totalHeight+=chunks.length*fsize)>height)return!0}return!1};for(numberOfLines=Math.max(numberOfLines,lineCount);;){if(lineHeight=height/numberOfLines,!isTooBig(fontSize=roundWithTwoDigits(lineHeight/LINE_FACTOR)))break;numberOfLines++}}var{fontName:text,fontColor:textWidth}=this.data.defaultAppearanceData;this._defaultAppearance=createDefaultAppearance({fontSize:fontSize,fontName:text,fontColor:textWidth})}return[this._defaultAppearance,fontSize,height/numberOfLines]}_renderText(text,font,fontSize,totalWidth,alignment,prevInfo,hPadding,vPadding){let shift;if(1===alignment){var width=this._getTextWidth(text,font)*fontSize;shift=(totalWidth-width)/2}else if(2===alignment){const width=this._getTextWidth(text,font)*fontSize;shift=totalWidth-width-hPadding}else shift=hPadding;width=numberToString(shift-prevInfo.shift);return prevInfo.shift=shift,`${width} ${vPadding=numberToString(vPadding)} Td (${escapeString(text)}) Tj`}_getSaveFieldResources(xref){var{localResources,appearanceResources,acroFormResources}=this._fieldResources,fontName=this.data.defaultAppearanceData?.fontName;if(fontName){for(const resources of[localResources,appearanceResources])if(resources instanceof Dict){var localFont=resources.get("Font");if(localFont instanceof Dict&&localFont.has(fontName))return resources}if(acroFormResources instanceof Dict){var appearanceResources=acroFormResources.get("Font");if(appearanceResources instanceof Dict&&appearanceResources.has(fontName))return(acroFormResources=new Dict(xref)).set(fontName,appearanceResources.getRaw(fontName)),(appearanceResources=new Dict(xref)).set("Font",acroFormResources),Dict.merge({xref:xref,dictArray:[appearanceResources,localResources],mergeSubDicts:!0})}}return localResources||Dict.empty}getFieldObject(){return null}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params),this.data.hasOwnCanvas=this.data.readOnly&&!this.data.noHTML,this._hasText=!0;params=params.dict;"string"!=typeof this.data.fieldValue&&(this.data.fieldValue="");let alignment=getInheritableProperty({dict:params,key:"Q"}),maximumLength=((!Number.isInteger(alignment)||alignment<0||2<alignment)&&(alignment=null),this.data.textAlignment=alignment,getInheritableProperty({dict:params,key:"MaxLen"}));(!Number.isInteger(maximumLength)||maximumLength<0)&&(maximumLength=0),this.data.maxLen=maximumLength,this.data.multiLine=this.hasFieldFlag(AnnotationFieldFlag.MULTILINE),this.data.comb=this.hasFieldFlag(AnnotationFieldFlag.COMB)&&!this.hasFieldFlag(AnnotationFieldFlag.MULTILINE)&&!this.hasFieldFlag(AnnotationFieldFlag.PASSWORD)&&!this.hasFieldFlag(AnnotationFieldFlag.FILESELECT)&&0!==this.data.maxLen,this.data.doNotScroll=this.hasFieldFlag(AnnotationFieldFlag.DONOTSCROLL)}get hasTextContent(){return!!this.appearance&&!this._needAppearances}_getCombAppearance(defaultAppearance,font,text,fontSize,width,height,hPadding,vPadding,descent,lineHeight,annotationStorage){var start,end,width=width/this.data.maxLen,annotationStorage=this.getBorderAndBackgroundAppearances(annotationStorage),buf=[];for([start,end]of font.getCharPositions(text))buf.push(`(${escapeString(text.substring(start,end))}) Tj`);font=buf.join(` ${numberToString(width)} 0 Td `);return`/Tx BMC q ${annotationStorage}BT `+defaultAppearance+` 1 0 0 1 ${numberToString(hPadding)} ${numberToString(vPadding+descent)} Tm `+font+" ET Q EMC"}_getMultilineAppearance(defaultAppearance,lines,font,fontSize,width,height,alignment,hPadding,vPadding,descent,lineHeight,annotationStorage){var buf=[],totalWidth=width-2*hPadding,prevInfo={shift:0};for(let i=0,ii=lines.length;i<ii;i++){var line=lines[i],chunks=this._splitLine(line,font,fontSize,totalWidth);for(let j=0,jj=chunks.length;j<jj;j++){var chunk=chunks[j],vShift=0===i&&0===j?-vPadding-(lineHeight-descent):-lineHeight;buf.push(this._renderText(chunk,font,fontSize,width,alignment,prevInfo,hPadding,vShift))}}var annotationStorage=this.getBorderAndBackgroundAppearances(annotationStorage),renderedText=buf.join("\n");return`/Tx BMC q ${annotationStorage}BT `+defaultAppearance+` 1 0 0 1 0 ${numberToString(height)} Tm `+renderedText+" ET Q EMC"}_splitLine(line,font,fontSize,width,cache={}){line=cache.line||line;var glyphs=cache.glyphs||font.charsToGlyphs(line);if(glyphs.length<=1)return[line];var positions=cache.positions||font.getCharPositions(line),scale=fontSize/1e3,chunks=[];let lastSpacePosInStringStart=-1,lastSpacePosInStringEnd=-1,lastSpacePos=-1,startChunk=0,currentWidth=0;for(let i=0,ii=glyphs.length;i<ii;i++){var[start,end]=positions[i],glyph=glyphs[i],glyphWidth=glyph.width*scale;" "===glyph.unicode?lastSpacePos=currentWidth+glyphWidth>width?(chunks.push(line.substring(startChunk,start)),startChunk=start,currentWidth=glyphWidth,lastSpacePosInStringStart=-1):(currentWidth+=glyphWidth,lastSpacePosInStringStart=start,lastSpacePosInStringEnd=end,i):currentWidth+glyphWidth>width?currentWidth=-1!==lastSpacePosInStringStart?(chunks.push(line.substring(startChunk,lastSpacePosInStringEnd)),startChunk=lastSpacePosInStringEnd,i=lastSpacePos+1,lastSpacePosInStringStart=-1,0):(chunks.push(line.substring(startChunk,start)),startChunk=start,glyphWidth):currentWidth+=glyphWidth}return startChunk<line.length&&chunks.push(line.substring(startChunk,line.length)),chunks}getFieldObject(){return{id:this.data.id,value:this.data.fieldValue,defaultValue:this.data.defaultFieldValue||"",multiline:this.data.multiLine,password:this.hasFieldFlag(AnnotationFieldFlag.PASSWORD),charLimit:this.data.maxLen,comb:this.data.comb,editable:!this.data.readOnly,hidden:this.data.hidden,name:this.data.fieldName,rect:this.data.rect,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:"text"}}}class ButtonWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params),this.checkedAppearance=null,this.uncheckedAppearance=null,this.data.checkBox=!this.hasFieldFlag(AnnotationFieldFlag.RADIO)&&!this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON),this.data.radioButton=this.hasFieldFlag(AnnotationFieldFlag.RADIO)&&!this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON),this.data.pushButton=this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON),this.data.isTooltipOnly=!1,this.data.checkBox?this._processCheckBox(params):this.data.radioButton?this._processRadioButton(params):this.data.pushButton?(this.data.hasOwnCanvas=!0,this.data.noHTML=!1,this._processPushButton(params)):warn("Invalid field flags for button widget annotation")}async getOperatorList(evaluator,task,intent,renderForms,annotationStorage){if(this.data.pushButton)return super.getOperatorList(evaluator,task,intent,!1,annotationStorage);let value=null,rotation=null;var storageEntry,savedAppearance,savedMatrix;return annotationStorage&&(storageEntry=annotationStorage.get(this.data.id),value=storageEntry?storageEntry.value:null,rotation=storageEntry?storageEntry.rotation:null),null===value&&this.appearance?super.getOperatorList(evaluator,task,intent,renderForms,annotationStorage):(storageEntry=(value=null!==value&&void 0!==value?value:this.data.checkBox?this.data.fieldValue===this.data.exportValue:this.data.fieldValue===this.data.buttonValue)?this.checkedAppearance:this.uncheckedAppearance)?(savedAppearance=this.appearance,savedMatrix=storageEntry.dict.getArray("Matrix")||IDENTITY_MATRIX,rotation&&storageEntry.dict.set("Matrix",this.getRotationMatrix(annotationStorage)),this.appearance=storageEntry,evaluator=super.getOperatorList(evaluator,task,intent,renderForms,annotationStorage),this.appearance=savedAppearance,storageEntry.dict.set("Matrix",savedMatrix),evaluator):{opList:new OperatorList,separateForm:!1,separateCanvas:!1}}async save(evaluator,task,annotationStorage){return this.data.checkBox?this._saveCheckbox(evaluator,task,annotationStorage):this.data.radioButton?this._saveRadioButton(evaluator,task,annotationStorage):null}async _saveCheckbox(evaluator,task,annotationStorage){if(!annotationStorage)return null;annotationStorage=annotationStorage.get(this.data.id);let rotation=annotationStorage?.rotation,value=annotationStorage?.value;if(void 0===rotation){if(void 0===value)return null;if(this.data.fieldValue===this.data.exportValue===value)return null}annotationStorage=evaluator.xref.fetchIfRef(this.ref);if(!(annotationStorage instanceof Dict))return null;void 0===rotation&&(rotation=this.rotation),void 0===value&&(value=this.data.fieldValue===this.data.exportValue);var xfa={path:this.data.fieldName,value:value?this.data.exportValue:""},name=Name.get(value?this.data.exportValue:"Off"),name=(annotationStorage.set("V",name),annotationStorage.set("AS",name),annotationStorage.set("M","D:"+getModificationDate()),this._getMKDict(rotation)),name=(name&&annotationStorage.set("MK",name),[]);return await writeObject(this.ref,annotationStorage,name,evaluator.xref),[{ref:this.ref,data:name.join(""),xfa:xfa}]}async _saveRadioButton(evaluator,task,annotationStorage){if(!annotationStorage)return null;annotationStorage=annotationStorage.get(this.data.id);let rotation=annotationStorage?.rotation,value=annotationStorage?.value;if(void 0===rotation){if(void 0===value)return null;if(this.data.fieldValue===this.data.buttonValue===value)return null}annotationStorage=evaluator.xref.fetchIfRef(this.ref);if(!(annotationStorage instanceof Dict))return null;void 0===value&&(value=this.data.fieldValue===this.data.buttonValue),void 0===rotation&&(rotation=this.rotation);var xfa={path:this.data.fieldName,value:value?this.data.buttonValue:""},name=Name.get(value?this.data.buttonValue:"Off"),buffer=[];let parentData=null;value&&(this.parent instanceof Ref?((parent=evaluator.xref.fetch(this.parent)).set("V",name),await writeObject(this.parent,parent,buffer,evaluator.xref),parentData=buffer.join(""),buffer.length=0):this.parent instanceof Dict&&this.parent.set("V",name)),annotationStorage.set("AS",name),annotationStorage.set("M","D:"+getModificationDate());var parent=this._getMKDict(rotation),name=(parent&&annotationStorage.set("MK",parent),await writeObject(this.ref,annotationStorage,buffer,evaluator.xref),[{ref:this.ref,data:buffer.join(""),xfa:xfa}]);return parentData&&name.push({ref:this.parent,data:parentData,xfa:null}),name}_getDefaultCheckedAppearance(params,type){var width=this.data.rect[2]-this.data.rect[0],height=this.data.rect[3]-this.data.rect[1],bbox=[0,0,width,height],fontSize=.8*Math.min(width,height);let metrics,char;"check"===type?(metrics={width:.755*fontSize,height:.705*fontSize},char="3"):"disc"===type?(metrics={width:.791*fontSize,height:.705*fontSize},char="l"):unreachable("_getDefaultCheckedAppearance - unsupported type: "+type);type=`q BT /PdfJsZaDb ${fontSize} Tf 0 g ${numberToString((width-metrics.width)/2)} ${numberToString((height-metrics.height)/2)} Td (${char}) Tj ET Q`,fontSize=new Dict(params.xref),fontSize.set("FormType",1),fontSize.set("Subtype",Name.get("Form")),fontSize.set("Type",Name.get("XObject")),fontSize.set("BBox",bbox),fontSize.set("Matrix",[1,0,0,1,0,0]),fontSize.set("Length",type.length),width=new Dict(params.xref),height=new Dict(params.xref);height.set("PdfJsZaDb",this.fallbackFontDict),width.set("Font",height),fontSize.set("Resources",width),this.checkedAppearance=new StringStream(type),this.checkedAppearance.dict=fontSize,this._streams.push(this.checkedAppearance)}_processCheckBox(params){var asValue,exportValues,customAppearance=params.dict.get("AP");customAppearance instanceof Dict&&(customAppearance=customAppearance.get("N"))instanceof Dict&&("string"==typeof(asValue=this._decodeFormValue(params.dict.get("AS")))&&(this.data.fieldValue=asValue),asValue=null!==this.data.fieldValue&&"Off"!==this.data.fieldValue?this.data.fieldValue:"Yes",0===(exportValues=customAppearance.getKeys()).length?exportValues.push("Off",asValue):1===exportValues.length?"Off"===exportValues[0]?exportValues.push(asValue):exportValues.unshift("Off"):exportValues.includes(asValue)?(exportValues.length=0,exportValues.push("Off",asValue)):(asValue=exportValues.find(v=>"Off"!==v),exportValues.length=0,exportValues.push("Off",asValue)),exportValues.includes(this.data.fieldValue)||(this.data.fieldValue="Off"),this.data.exportValue=exportValues[1],asValue=customAppearance.get(this.data.exportValue),this.checkedAppearance=asValue instanceof BaseStream?asValue:null,exportValues=customAppearance.get("Off"),this.uncheckedAppearance=exportValues instanceof BaseStream?exportValues:null,this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(params,"check"),this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance),this._fallbackFontDict=this.fallbackFontDict,null===this.data.defaultFieldValue)&&(this.data.defaultFieldValue="Off")}_processRadioButton(params){this.data.buttonValue=null;var fieldParent=params.dict.get("Parent"),fieldParent=(fieldParent instanceof Dict&&(this.parent=params.dict.getRaw("Parent"),(fieldParent=fieldParent.get("V"))instanceof Name)&&(this.data.fieldValue=this._decodeFormValue(fieldParent)),params.dict.get("AP"));if(fieldParent instanceof Dict){fieldParent=fieldParent.get("N");if(fieldParent instanceof Dict){for(const key of fieldParent.getKeys())if("Off"!==key){this.data.buttonValue=this._decodeFormValue(key);break}var checkedAppearance=fieldParent.get(this.data.buttonValue),checkedAppearance=(this.checkedAppearance=checkedAppearance instanceof BaseStream?checkedAppearance:null,fieldParent.get("Off"));this.uncheckedAppearance=checkedAppearance instanceof BaseStream?checkedAppearance:null,this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(params,"disc"),this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance),this._fallbackFontDict=this.fallbackFontDict,null===this.data.defaultFieldValue&&(this.data.defaultFieldValue="Off")}}}_processPushButton(params){var{dict:params,annotationGlobals}=params;params.has("A")||params.has("AA")||this.data.alternativeText?(this.data.isTooltipOnly=!params.has("A")&&!params.has("AA"),Catalog.parseDestDictionary({destDict:params,resultObj:this.data,docBaseUrl:annotationGlobals.baseUrl,docAttachments:annotationGlobals.attachments})):warn("Push buttons without action dictionaries are not supported")}getFieldObject(){let type="button",exportValues;return this.data.checkBox?(type="checkbox",exportValues=this.data.exportValue):this.data.radioButton&&(type="radiobutton",exportValues=this.data.buttonValue),{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:exportValues,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:type}}get fallbackFontDict(){var dict=new Dict;return dict.set("BaseFont",Name.get("ZapfDingbats")),dict.set("Type",Name.get("FallbackType")),dict.set("Subtype",Name.get("FallbackType")),dict.set("Encoding",Name.get("ZapfDingbatsEncoding")),shadow(this,"fallbackFontDict",dict)}}class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params);var{dict:params,xref}=params,options=(this.indices=params.getArray("I"),this.hasIndices=Array.isArray(this.indices)&&0<this.indices.length,this.data.options=[],getInheritableProperty({dict:params,key:"Opt"}));if(Array.isArray(options))for(let i=0,ii=options.length;i<ii;i++){var option=xref.fetchIfRef(options[i]),isOptionArray=Array.isArray(option);this.data.options[i]={exportValue:this._decodeFormValue(isOptionArray?xref.fetchIfRef(option[0]):option),displayValue:this._decodeFormValue(isOptionArray?xref.fetchIfRef(option[1]):option)}}if(this.hasIndices){this.data.fieldValue=[];var ii=this.data.options.length;for(const i of this.indices)Number.isInteger(i)&&0<=i&&i<ii&&this.data.fieldValue.push(this.data.options[i].exportValue)}else"string"==typeof this.data.fieldValue?this.data.fieldValue=[this.data.fieldValue]:this.data.fieldValue||(this.data.fieldValue=[]);this.data.combo=this.hasFieldFlag(AnnotationFieldFlag.COMBO),this.data.multiSelect=this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT),this._hasText=!0}getFieldObject(){var type=this.data.combo?"combobox":"listbox",value=0<this.data.fieldValue.length?this.data.fieldValue[0]:null;return{id:this.data.id,value:value,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:type}}amendSavedDict(annotationStorage,dict){if(this.hasIndices){let values=annotationStorage?.get(this.data.id)?.value;Array.isArray(values)||(values=[values]);var indices=[],options=this.data["options"];for(let i=0,j=0,ii=options.length;i<ii;i++)options[i].exportValue===values[j]&&(indices.push(i),j+=1);dict.set("I",indices)}}async _getAppearance(evaluator,task,intent,annotationStorage){if(this.data.combo)return super._getAppearance(evaluator,task,intent,annotationStorage);let exportedValue,rotation;intent=annotationStorage?.get(this.data.id);if(intent&&(rotation=intent.rotation,exportedValue=intent.value),void 0===rotation&&void 0===exportedValue&&!this._needAppearances)return null;void 0===exportedValue?exportedValue=this.data.fieldValue:Array.isArray(exportedValue)||(exportedValue=[exportedValue]);let totalHeight=this.data.rect[3]-this.data.rect[1],totalWidth=this.data.rect[2]-this.data.rect[0];90!==rotation&&270!==rotation||([totalWidth,totalHeight]=[totalHeight,totalWidth]);var lineCount=this.data.options.length,valueIndices=[];for(let i=0;i<lineCount;i++){var exportValue=this.data.options[i]["exportValue"];exportedValue.includes(exportValue)&&valueIndices.push(i)}this._defaultAppearance||(this.data.defaultAppearanceData=parseDefaultAppearance(this._defaultAppearance="/Helvetica 0 Tf 0 g"));var font=await WidgetAnnotation._getFontData(evaluator,task,this.data.defaultAppearanceData,this._fieldResources.mergedResources);let defaultAppearance,fontSize=this.data.defaultAppearanceData["fontSize"];if(fontSize)defaultAppearance=this._defaultAppearance;else{const lineHeight=(totalHeight-1)/lineCount;let lineWidth=-1,value;for(var{displayValue}of this.data.options){var width=this._getTextWidth(displayValue,font);width>lineWidth&&(lineWidth=width,value=displayValue)}[defaultAppearance,fontSize]=this._computeFontSize(lineHeight,totalWidth-4,value,font,-1)}const lineHeight=fontSize*LINE_FACTOR;var vPadding=(lineHeight-fontSize)/2,annotationStorage=Math.floor(totalHeight/lineHeight);let firstIndex=0;0<valueIndices.length&&(intent=Math.min(...valueIndices),evaluator=Math.max(...valueIndices),(firstIndex=Math.max(0,evaluator-annotationStorage+1))>intent)&&(firstIndex=intent);var end=Math.min(firstIndex+annotationStorage+1,lineCount),buf=["/Tx BMC q",`1 1 ${totalWidth} ${totalHeight} re W n`];if(valueIndices.length){buf.push("0.600006 0.756866 0.854904 rg");for(const index of valueIndices)firstIndex<=index&&index<end&&buf.push(`1 ${totalHeight-(index-firstIndex+1)*lineHeight} ${totalWidth} ${lineHeight} re f`)}buf.push("BT",defaultAppearance,`1 0 0 1 0 ${totalHeight} Tm`);var prevInfo={shift:0};for(let i=firstIndex;i<end;i++){const displayValue=this.data.options[i]["displayValue"];var vpadding=i===firstIndex?vPadding:0;buf.push(this._renderText(displayValue,font,fontSize,totalWidth,0,prevInfo,2,-lineHeight+vpadding))}return buf.push("ET Q EMC"),buf.join("\n")}}class SignatureWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params),this.data.fieldValue=null,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!this.data.hasOwnCanvas}getFieldObject(){return{id:this.data.id,value:null,page:this.data.pageIndex,type:"signature"}}}class TextAnnotation extends MarkupAnnotation{constructor(params){super(params),this.data.noRotate=!0,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1,params=params.dict;this.data.annotationType=AnnotationType.TEXT,this.data.hasAppearance?this.data.name="NoIcon":(this.data.rect[1]=this.data.rect[3]-22,this.data.rect[2]=this.data.rect[0]+22,this.data.name=params.has("Name")?params.get("Name").name:"Note"),params.has("State")?(this.data.state=params.get("State")||null,this.data.stateModel=params.get("StateModel")||null):(this.data.state=null,this.data.stateModel=null)}}class LinkAnnotation extends Annotation{constructor(params){super(params);var{dict:params,annotationGlobals}=params,quadPoints=(this.data.annotationType=AnnotationType.LINK,this.data.noHTML=!1,getQuadPoints(params,this.rectangle));quadPoints&&(this.data.quadPoints=quadPoints),this.data.borderColor||=this.data.color,Catalog.parseDestDictionary({destDict:params,resultObj:this.data,docBaseUrl:annotationGlobals.baseUrl,docAttachments:annotationGlobals.attachments})}}class PopupAnnotation extends Annotation{constructor(params){super(params);var parentRect,params=params["dict"];this.data.annotationType=AnnotationType.POPUP,this.data.noHTML=!1,this.data.rect[0]!==this.data.rect[2]&&this.data.rect[1]!==this.data.rect[3]||(this.data.rect=null);let parentItem=params.get("Parent");parentItem?(parentRect=parentItem.getArray("Rect"),this.data.parentRect=Array.isArray(parentRect)&&4===parentRect.length?Util.normalizeRect(parentRect):null,parentRect=parentItem.get("RT"),(parentItem=isName(parentRect,AnnotationReplyType.GROUP)?parentItem.get("IRT"):parentItem).has("M")?(this.setModificationDate(parentItem.get("M")),this.data.modificationDate=this.modificationDate):this.data.modificationDate=null,parentItem.has("C")?(this.setColor(parentItem.getArray("C")),this.data.color=this.color):this.data.color=null,this.viewable||(parentRect=parentItem.get("F"),this._isViewable(parentRect)&&this.setFlags(parentRect)),this.setTitle(parentItem.get("T")),this.data.titleObj=this._title,this.setContents(parentItem.get("Contents")),this.data.contentsObj=this._contents,parentItem.has("RC")&&(this.data.richText=XFAFactory.getRichTextAsHtml(parentItem.get("RC"))),this.data.open=!!params.get("Open")):warn("Popup annotation has a missing or invalid parent annotation.")}}class FreeTextAnnotation extends MarkupAnnotation{constructor(params){super(params),this.data.hasOwnCanvas=!this.data.noHTML,this.data.noHTML=!1;var matrix,bbox,{evaluatorOptions,xref}=params;if(this.data.annotationType=AnnotationType.FREETEXT,this.setDefaultAppearance(params),this._hasAppearance=!!this.appearance,this._hasAppearance){var{fontColor:evaluatorOptions,fontSize}=parseAppearanceStream(this.appearance,evaluatorOptions,xref);this.data.defaultAppearanceData.fontColor=evaluatorOptions,this.data.defaultAppearanceData.fontSize=fontSize||10}else{this.data.defaultAppearanceData.fontSize||=10;const{fontColor,fontSize}=this.data.defaultAppearanceData;this._contents.str&&(this.data.textContent=this._contents.str.split(/\r\n?|\n/).map(line=>line.trimEnd()),{coords:evaluatorOptions,bbox,matrix}=FakeUnicodeFont.getFirstPositionInfo(this.rectangle,this.rotation,fontSize),this.data.textPosition=this._transformPoint(evaluatorOptions,bbox,matrix)),this._isOffscreenCanvasSupported?(evaluatorOptions=params.dict.get("CA"),bbox=new FakeUnicodeFont(xref,"sans-serif"),this.appearance=bbox.createAppearance(this._contents.str,this.rectangle,this.rotation,fontSize,fontColor,evaluatorOptions),this._streams.push(this.appearance)):warn("FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.")}}get hasTextContent(){return this._hasAppearance}static createNewDict(annotation,xref,{apRef,ap}){var{color:annotation,fontSize,rect,rotation,user,value}=annotation,freetext=new Dict(xref),rect=(freetext.set("Type",Name.get("Annot")),freetext.set("Subtype",Name.get("FreeText")),freetext.set("CreationDate","D:"+getModificationDate()),freetext.set("Rect",rect),`/Helv ${fontSize} Tf `+getPdfColor(annotation,!0));return freetext.set("DA",rect),freetext.set("Contents",isAscii(value)?value:stringToUTF16String(value,!0)),freetext.set("F",4),freetext.set("Border",[0,0,0]),freetext.set("Rotate",rotation),user&&freetext.set("T",isAscii(user)?user:stringToUTF16String(user,!0)),(apRef||ap)&&(fontSize=new Dict(xref),freetext.set("AP",fontSize),apRef?fontSize.set("N",apRef):fontSize.set("N",ap)),freetext}static async createNewAppearanceStream(annotation,xref,params){var{baseFontRef:params,evaluator,task}=params,{color:annotation,fontSize,rect,rotation,value}=annotation,resources=new Dict(xref),font=new Dict(xref),helv=(params?font.set("Helv",params):((params=new Dict(xref)).set("BaseFont",Name.get("Helvetica")),params.set("Type",Name.get("Font")),params.set("Subtype",Name.get("Type1")),params.set("Encoding",Name.get("WinAnsiEncoding")),font.set("Helv",params)),resources.set("Font",font),await WidgetAnnotation._getFontData(evaluator,task,{fontName:"Helv",fontSize:fontSize},resources)),[params,font,evaluator,task]=rect;let w=evaluator-params,h=task-font;rotation%180!=0&&([w,h]=[h,w]);var evaluator=value.split("\n"),scale=fontSize/1e3;let totalWidth=-1/0;var line,encodedLines=[];for(line of evaluator){var encoded=helv.encodeString(line);if(1<encoded.length)return null;line=encoded.join(""),encodedLines.push(line);let lineWidth=0;for(const glyph of helv.charsToGlyphs(line))lineWidth+=glyph.width*scale;totalWidth=Math.max(totalWidth,lineWidth)}let hscale=1,vscale=(totalWidth>w&&(hscale=w/totalWidth),1);var params=LINE_FACTOR*fontSize,lineAscent=(LINE_FACTOR-LINE_DESCENT_FACTOR)*fontSize,task=params*evaluator.length,font=(task>h&&(vscale=h/task),Math.min(hscale,vscale)),value=fontSize*font;let firstPoint,clipBox,matrix;switch(rotation){case 0:matrix=[1,0,0,1],clipBox=[rect[0],rect[1],w,h],firstPoint=[rect[0],rect[3]-lineAscent];break;case 90:matrix=[0,1,-1,0],clipBox=[rect[1],-rect[2],w,h],firstPoint=[rect[1],-rect[0]-lineAscent];break;case 180:matrix=[-1,0,0,-1],clipBox=[-rect[2],-rect[3],w,h],firstPoint=[-rect[2],-rect[1]-lineAscent];break;case 270:matrix=[0,-1,1,0],clipBox=[-rect[3],rect[0],w,h],firstPoint=[-rect[3],rect[2]-lineAscent]}var buffer=["q",matrix.join(" ")+" 0 0 cm",clipBox.join(" ")+" re W n","BT",""+getPdfColor(annotation,!0),`0 Tc /Helv ${numberToString(value)} Tf`],vShift=(buffer.push(`${firstPoint.join(" ")} Td (${escapeString(encodedLines[0])}) Tj`),numberToString(params));for(let i=1,ii=encodedLines.length;i<ii;i++){const line=encodedLines[i];buffer.push(`0 -${vShift} Td (${escapeString(line)}) Tj`)}buffer.push("ET","Q");evaluator=buffer.join("\n"),task=new Dict(xref),task.set("FormType",1),task.set("Subtype",Name.get("Form")),task.set("Type",Name.get("XObject")),task.set("BBox",rect),task.set("Resources",resources),task.set("Matrix",[1,0,0,1,-rect[0],-rect[1]]),fontSize=new StringStream(evaluator);return fontSize.dict=task,fontSize}}class LineAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params;this.data.annotationType=AnnotationType.LINE,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1;const lineCoordinates=params.getArray("L");if(this.data.lineCoordinates=Util.normalizeRect(lineCoordinates),this.setLineEndings(params.getArray("LE")),this.data.lineEndings=this.lineEndings,!this.appearance){var strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],strokeAlpha=params.get("CA"),params=getRgbColor(params.getArray("IC"),null),params=params?getPdfColorArray(params):null,fillAlpha=params?strokeAlpha:null;const borderWidth=this.borderStyle.width||1,borderAdjust=2*borderWidth;var bbox=[this.data.lineCoordinates[0]-borderAdjust,this.data.lineCoordinates[1]-borderAdjust,this.data.lineCoordinates[2]+borderAdjust,this.data.lineCoordinates[3]+borderAdjust];Util.intersect(this.rectangle,bbox)||(this.rectangle=bbox),this._setDefaultAppearance({xref:xref,extra:borderWidth+" w",strokeColor:strokeColor,fillColor:params,strokeAlpha:strokeAlpha,fillAlpha:fillAlpha,pointsCallback:(buffer,points)=>(buffer.push(`${lineCoordinates[0]} ${lineCoordinates[1]} m`,`${lineCoordinates[2]} ${lineCoordinates[3]} l`,"S"),[points[0].x-borderWidth,points[1].x+borderWidth,points[3].y-borderWidth,points[1].y+borderWidth])})}}}class SquareAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params;if(this.data.annotationType=AnnotationType.SQUARE,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1,!this.appearance){var strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],strokeAlpha=params.get("CA"),params=getRgbColor(params.getArray("IC"),null);const fillColor=params?getPdfColorArray(params):null;params=fillColor?strokeAlpha:null;0===this.borderStyle.width&&!fillColor||this._setDefaultAppearance({xref:xref,extra:this.borderStyle.width+" w",strokeColor:strokeColor,fillColor:fillColor,strokeAlpha:strokeAlpha,fillAlpha:params,pointsCallback:(buffer,points)=>{var x=points[2].x+this.borderStyle.width/2,y=points[2].y+this.borderStyle.width/2,width=points[3].x-points[2].x-this.borderStyle.width,height=points[1].y-points[3].y-this.borderStyle.width;return buffer.push(x+` ${y} ${width} ${height} re`),fillColor?buffer.push("B"):buffer.push("S"),[points[0].x,points[1].x,points[3].y,points[1].y]}})}}}class CircleAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params;if(this.data.annotationType=AnnotationType.CIRCLE,!this.appearance){var strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],strokeAlpha=params.get("CA"),params=getRgbColor(params.getArray("IC"),null);const fillColor=params?getPdfColorArray(params):null;params=fillColor?strokeAlpha:null;if(0!==this.borderStyle.width||fillColor){const controlPointsDistance=4/3*Math.tan(Math.PI/8);this._setDefaultAppearance({xref:xref,extra:this.borderStyle.width+" w",strokeColor:strokeColor,fillColor:fillColor,strokeAlpha:strokeAlpha,fillAlpha:params,pointsCallback:(buffer,points)=>{var x0=points[0].x+this.borderStyle.width/2,y0=points[0].y-this.borderStyle.width/2,x1=points[3].x-this.borderStyle.width/2,y1=points[3].y+this.borderStyle.width/2,xMid=x0+(x1-x0)/2,yMid=y0+(y1-y0)/2,xOffset=(x1-x0)/2*controlPointsDistance,yOffset=(y1-y0)/2*controlPointsDistance;return buffer.push(xMid+` ${y1} m`,xMid+xOffset+` ${y1} ${x1} ${yMid+yOffset} ${x1} ${yMid} c`,x1+` ${yMid-yOffset} ${xMid+xOffset} ${y0} ${xMid} ${y0} c`,xMid-xOffset+` ${y0} ${x0} ${yMid-yOffset} ${x0} ${yMid} c`,x0+` ${yMid+yOffset} ${xMid-xOffset} ${y1} ${xMid} ${y1} c`,"h"),fillColor?buffer.push("B"):buffer.push("S"),[points[0].x,points[1].x,points[3].y,points[1].y]}})}}}}class PolylineAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params,rawVertices=(this.data.annotationType=AnnotationType.POLYLINE,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1,this.data.vertices=[],this instanceof PolygonAnnotation||(this.setLineEndings(params.getArray("LE")),this.data.lineEndings=this.lineEndings),params.getArray("Vertices"));if(Array.isArray(rawVertices)){for(let i=0,ii=rawVertices.length;i<ii;i+=2)this.data.vertices.push({x:rawVertices[i],y:rawVertices[i+1]});if(!this.appearance){var strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],params=params.get("CA"),borderWidth=this.borderStyle.width||1,borderAdjust=2*borderWidth,bbox=[1/0,1/0,-1/0,-1/0];for(const vertex of this.data.vertices)bbox[0]=Math.min(bbox[0],vertex.x-borderAdjust),bbox[1]=Math.min(bbox[1],vertex.y-borderAdjust),bbox[2]=Math.max(bbox[2],vertex.x+borderAdjust),bbox[3]=Math.max(bbox[3],vertex.y+borderAdjust);Util.intersect(this.rectangle,bbox)||(this.rectangle=bbox),this._setDefaultAppearance({xref:xref,extra:borderWidth+" w",strokeColor:strokeColor,strokeAlpha:params,pointsCallback:(buffer,points)=>{var vertices=this.data.vertices;for(let i=0,ii=vertices.length;i<ii;i++)buffer.push(`${vertices[i].x} ${vertices[i].y} `+(0===i?"m":"l"));return buffer.push("S"),[points[0].x,points[1].x,points[3].y,points[1].y]}})}}}}class PolygonAnnotation extends PolylineAnnotation{constructor(params){super(params),this.data.annotationType=AnnotationType.POLYGON}}class CaretAnnotation extends MarkupAnnotation{constructor(params){super(params),this.data.annotationType=AnnotationType.CARET}}class InkAnnotation extends MarkupAnnotation{constructor(params){super(params),this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1;var{dict:params,xref}=params,rawInkLists=(this.data.annotationType=AnnotationType.INK,this.data.inkLists=[],params.getArray("InkList"));if(Array.isArray(rawInkLists)){for(let i=0,ii=rawInkLists.length;i<ii;++i){this.data.inkLists.push([]);for(let j=0,jj=rawInkLists[i].length;j<jj;j+=2)this.data.inkLists[i].push({x:xref.fetchIfRef(rawInkLists[i][j]),y:xref.fetchIfRef(rawInkLists[i][j+1])})}if(!this.appearance){var strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],params=params.get("CA"),borderWidth=this.borderStyle.width||1,borderAdjust=2*borderWidth,bbox=[1/0,1/0,-1/0,-1/0];for(const inkLists of this.data.inkLists)for(const vertex of inkLists)bbox[0]=Math.min(bbox[0],vertex.x-borderAdjust),bbox[1]=Math.min(bbox[1],vertex.y-borderAdjust),bbox[2]=Math.max(bbox[2],vertex.x+borderAdjust),bbox[3]=Math.max(bbox[3],vertex.y+borderAdjust);Util.intersect(this.rectangle,bbox)||(this.rectangle=bbox),this._setDefaultAppearance({xref:xref,extra:borderWidth+" w",strokeColor:strokeColor,strokeAlpha:params,pointsCallback:(buffer,points)=>{for(const inkList of this.data.inkLists){for(let i=0,ii=inkList.length;i<ii;i++)buffer.push(`${inkList[i].x} ${inkList[i].y} `+(0===i?"m":"l"));buffer.push("S")}return[points[0].x,points[1].x,points[3].y,points[1].y]}})}}}static createNewDict(annotation,xref,{apRef,ap}){var{color:annotation,opacity,paths,outlines,rect,rotation,thickness}=annotation,ink=new Dict(xref),rect=(ink.set("Type",Name.get("Annot")),ink.set("Subtype",Name.get("Ink")),ink.set("CreationDate","D:"+getModificationDate()),ink.set("Rect",rect),ink.set("InkList",outlines?.points||paths.map(p=>p.points)),ink.set("F",4),ink.set("Rotate",rotation),outlines&&ink.set("IT",Name.get("InkHighlight")),new Dict(xref)),paths=(ink.set("BS",rect),rect.set("W",thickness),ink.set("C",Array.from(annotation,c=>c/255)),ink.set("CA",opacity),new Dict(xref));return ink.set("AP",paths),apRef?paths.set("N",apRef):paths.set("N",ap),ink}static async createNewAppearanceStream(annotation,xref,params){if(annotation.outlines)return this.createNewAppearanceStreamForHighlight(annotation,xref,params);var bezier,{color:params,rect:annotation,paths,thickness,opacity}=annotation,appearanceBuffer=[thickness+" w 1 J 1 j",""+getPdfColor(params,!1)],buffer=(1!==opacity&&appearanceBuffer.push("/R0 gs"),[]);for({bezier}of paths){if(buffer.length=0,buffer.push(`${numberToString(bezier[0])} ${numberToString(bezier[1])} m`),2===bezier.length)buffer.push(`${numberToString(bezier[0])} ${numberToString(bezier[1])} l S`);else{for(let i=2,ii=bezier.length;i<ii;i+=6){var curve=bezier.slice(i,i+6).map(numberToString).join(" ");buffer.push(curve+" c")}buffer.push("S")}appearanceBuffer.push(buffer.join("\n"))}thickness=appearanceBuffer.join("\n"),params=new Dict(xref),params.set("FormType",1),params.set("Subtype",Name.get("Form")),params.set("Type",Name.get("XObject")),params.set("BBox",annotation),params.set("Length",thickness.length),1!==opacity&&(paths=new Dict(xref),annotation=new Dict(xref),(xref=new Dict(xref)).set("CA",opacity),xref.set("Type",Name.get("ExtGState")),annotation.set("R0",xref),paths.set("ExtGState",annotation),params.set("Resources",paths)),opacity=new StringStream(thickness);return opacity.dict=params,opacity}static async createNewAppearanceStreamForHighlight(annotation,xref,params){var curve,{color:annotation,rect,outlines:{outline},opacity}=annotation,appearanceBuffer=[""+getPdfColor(annotation,!0),"/R0 gs"];appearanceBuffer.push(`${numberToString(outline[4])} ${numberToString(outline[5])} m`);for(let i=6,ii=outline.length;i<ii;i+=6)isNaN(outline[i])||null===outline[i]?appearanceBuffer.push(`${numberToString(outline[i+4])} ${numberToString(outline[i+5])} l`):(curve=outline.slice(i,i+6).map(numberToString).join(" "),appearanceBuffer.push(curve+" c"));appearanceBuffer.push("h f");var annotation=appearanceBuffer.join("\n"),appearanceStreamDict=new Dict(xref),rect=(appearanceStreamDict.set("FormType",1),appearanceStreamDict.set("Subtype",Name.get("Form")),appearanceStreamDict.set("Type",Name.get("XObject")),appearanceStreamDict.set("BBox",rect),appearanceStreamDict.set("Length",annotation.length),new Dict(xref)),extGState=new Dict(xref),rect=(rect.set("ExtGState",extGState),appearanceStreamDict.set("Resources",rect),new Dict(xref)),xref=(extGState.set("R0",rect),rect.set("BM",Name.get("Multiply")),1!==opacity&&(rect.set("ca",opacity),rect.set("Type",Name.get("ExtGState"))),new StringStream(annotation));return xref.dict=appearanceStreamDict,xref}}class HighlightAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params,quadPoints=(this.data.annotationType=AnnotationType.HIGHLIGHT,this.data.quadPoints=getQuadPoints(params,null));quadPoints?(quadPoints=this.appearance?.dict.get("Resources"),this.appearance&&quadPoints?.has("ExtGState")||(this.appearance&&warn("HighlightAnnotation - ignoring built-in appearance stream."),quadPoints=this.color?getPdfColorArray(this.color):[1,1,0],params=params.get("CA"),this._setDefaultAppearance({xref:xref,fillColor:quadPoints,blendMode:"Multiply",fillAlpha:params,pointsCallback:(buffer,points)=>(buffer.push(`${points[0].x} ${points[0].y} m`,`${points[1].x} ${points[1].y} l`,`${points[3].x} ${points[3].y} l`,`${points[2].x} ${points[2].y} l`,"f"),[points[0].x,points[1].x,points[3].y,points[1].y])}))):this.data.popupRef=null}static createNewDict(annotation,xref,{apRef,ap}){var{color:annotation,opacity,rect,rotation,user,quadPoints}=annotation,highlight=new Dict(xref);return highlight.set("Type",Name.get("Annot")),highlight.set("Subtype",Name.get("Highlight")),highlight.set("CreationDate","D:"+getModificationDate()),highlight.set("Rect",rect),highlight.set("F",4),highlight.set("Border",[0,0,0]),highlight.set("Rotate",rotation),highlight.set("QuadPoints",quadPoints),highlight.set("C",Array.from(annotation,c=>c/255)),highlight.set("CA",opacity),user&&highlight.set("T",isAscii(user)?user:stringToUTF16String(user,!0)),(apRef||ap)&&(rect=new Dict(xref),highlight.set("AP",rect),rect.set("N",apRef||ap)),highlight}static async createNewAppearanceStream(annotation,xref,params){var{color:annotation,rect,outlines,opacity}=annotation,appearanceBuffer=[""+getPdfColor(annotation,!0),"/R0 gs"],buffer=[];for(const outline of outlines){buffer.length=0,buffer.push(`${numberToString(outline[0])} ${numberToString(outline[1])} m`);for(let i=2,ii=outline.length;i<ii;i+=2)buffer.push(`${numberToString(outline[i])} ${numberToString(outline[i+1])} l`);buffer.push("h"),appearanceBuffer.push(buffer.join("\n"))}appearanceBuffer.push("f*");var annotation=appearanceBuffer.join("\n"),outlines=new Dict(xref),rect=(outlines.set("FormType",1),outlines.set("Subtype",Name.get("Form")),outlines.set("Type",Name.get("XObject")),outlines.set("BBox",rect),outlines.set("Length",annotation.length),new Dict(xref)),extGState=new Dict(xref),rect=(rect.set("ExtGState",extGState),outlines.set("Resources",rect),new Dict(xref)),xref=(extGState.set("R0",rect),rect.set("BM",Name.get("Multiply")),1!==opacity&&(rect.set("ca",opacity),rect.set("Type",Name.get("ExtGState"))),new StringStream(annotation));return xref.dict=outlines,xref}}class UnderlineAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params,quadPoints=(this.data.annotationType=AnnotationType.UNDERLINE,this.data.quadPoints=getQuadPoints(params,null));quadPoints?this.appearance||(quadPoints=this.color?getPdfColorArray(this.color):[0,0,0],params=params.get("CA"),this._setDefaultAppearance({xref:xref,extra:"[] 0 d 0.571 w",strokeColor:quadPoints,strokeAlpha:params,pointsCallback:(buffer,points)=>(buffer.push(`${points[2].x} ${points[2].y+1.3} m`,`${points[3].x} ${points[3].y+1.3} l`,"S"),[points[0].x,points[1].x,points[3].y,points[1].y])})):this.data.popupRef=null}}class SquigglyAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params,quadPoints=(this.data.annotationType=AnnotationType.SQUIGGLY,this.data.quadPoints=getQuadPoints(params,null));quadPoints?this.appearance||(quadPoints=this.color?getPdfColorArray(this.color):[0,0,0],params=params.get("CA"),this._setDefaultAppearance({xref:xref,extra:"[] 0 d 1 w",strokeColor:quadPoints,strokeAlpha:params,pointsCallback:(buffer,points)=>{var dy=(points[0].y-points[2].y)/6;let shift=dy,x=points[2].x;var y=points[2].y,xEnd=points[3].x;for(buffer.push(`${x} ${y+shift} m`);x+=2,shift=0===shift?dy:0,buffer.push(`${x} ${y+shift} l`),x<xEnd;);return buffer.push("S"),[points[2].x,xEnd,y-2*dy,y+2*dy]}})):this.data.popupRef=null}}class StrikeOutAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params,quadPoints=(this.data.annotationType=AnnotationType.STRIKEOUT,this.data.quadPoints=getQuadPoints(params,null));quadPoints?this.appearance||(quadPoints=this.color?getPdfColorArray(this.color):[0,0,0],params=params.get("CA"),this._setDefaultAppearance({xref:xref,extra:"[] 0 d 1 w",strokeColor:quadPoints,strokeAlpha:params,pointsCallback:(buffer,points)=>(buffer.push((points[0].x+points[2].x)/2+" "+(points[0].y+points[2].y)/2+" m",(points[1].x+points[3].x)/2+" "+(points[1].y+points[3].y)/2+" l","S"),[points[0].x,points[1].x,points[3].y,points[1].y])})):this.data.popupRef=null}}class StampAnnotation extends MarkupAnnotation{constructor(params){super(params),this.data.annotationType=AnnotationType.STAMP,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1}static async createImage(bitmap,xref){var{width,height}=bitmap,canvas=new OffscreenCanvas(width,height),ctx=canvas.getContext("2d",{alpha:!0}),data=(ctx.drawImage(bitmap,0,0),ctx.getImageData(0,0,width,height).data),buf32=new Uint32Array(data.buffer),data=buf32.some(FeatureTest.isLittleEndian?x=>x>>>24!=255:x=>255!=(255&x)),ctx=(data&&(ctx.fillStyle="white",ctx.fillRect(0,0,width,height),ctx.drawImage(bitmap,0,0)),canvas.convertToBlob({type:"image/jpeg",quality:1}).then(blob=>blob.arrayBuffer())),bitmap=Name.get("XObject"),canvas=Name.get("Image"),image=new Dict(xref);image.set("Type",bitmap),image.set("Subtype",canvas),image.set("BitsPerComponent",8),image.set("ColorSpace",Name.get("DeviceRGB")),image.set("Filter",Name.get("DCTDecode")),image.set("BBox",[0,0,width,height]),image.set("Width",width),image.set("Height",height);let smaskStream=null;if(data){var alphaBuffer=new Uint8Array(buf32.length);if(FeatureTest.isLittleEndian)for(let i=0,ii=buf32.length;i<ii;i++)alphaBuffer[i]=buf32[i]>>>24;else for(let i=0,ii=buf32.length;i<ii;i++)alphaBuffer[i]=255&buf32[i];data=new Dict(xref);data.set("Type",bitmap),data.set("Subtype",canvas),data.set("BitsPerComponent",8),data.set("ColorSpace",Name.get("DeviceGray")),data.set("Width",width),data.set("Height",height),smaskStream=new Stream(alphaBuffer,0,0,data)}return{imageStream:new Stream(await ctx,0,0,image),smaskStream:smaskStream,width:width,height:height}}static createNewDict(annotation,xref,{apRef,ap}){var{rect:annotation,rotation,user}=annotation,stamp=new Dict(xref);return stamp.set("Type",Name.get("Annot")),stamp.set("Subtype",Name.get("Stamp")),stamp.set("CreationDate","D:"+getModificationDate()),stamp.set("Rect",annotation),stamp.set("F",4),stamp.set("Border",[0,0,0]),stamp.set("Rotate",rotation),user&&stamp.set("T",isAscii(user)?user:stringToUTF16String(user,!0)),(apRef||ap)&&(annotation=new Dict(xref),stamp.set("AP",annotation),apRef?annotation.set("N",apRef):annotation.set("N",ap)),stamp}static async createNewAppearanceStream(annotation,xref,params){var annotation=annotation["rotation"],{imageRef:params,width,height}=params.image,resources=new Dict(xref),xobject=new Dict(xref),xobject=(resources.set("XObject",xobject),xobject.set("Im0",params),`q ${width} 0 0 ${height} 0 0 cm /Im0 Do Q`),params=new Dict(xref),resources=(params.set("FormType",1),params.set("Subtype",Name.get("Form")),params.set("Type",Name.get("XObject")),params.set("BBox",[0,0,width,height]),params.set("Resources",resources),annotation&&(xref=getRotationMatrix(annotation,width,height),params.set("Matrix",xref)),new StringStream(xobject));return resources.dict=params,resources}}class FileAttachmentAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params,xref=new FileSpec(params.get("FS"),xref),xref=(this.data.annotationType=AnnotationType.FILEATTACHMENT,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1,this.data.file=xref.serializable,params.get("Name")),xref=(this.data.name=xref instanceof Name?stringToPDFString(xref.name):"PushPin",params.get("ca"));this.data.fillAlpha="number"==typeof xref&&0<=xref&&xref<=1?xref:null}}function decodeString(str){try{return stringToUTF8String(str)}catch(ex){return warn(`UTF-8 decoding failed: "${ex}".`),str}}class DatasetXMLParser extends SimpleXMLParser{constructor(options){super(options),this.node=null}onEndElement(name){var node=super.onEndElement(name);if(node&&"xfa:datasets"===name)throw this.node=node,new Error("Aborting DatasetXMLParser.")}}class DatasetReader{constructor(data){if(data.datasets)this.node=new SimpleXMLParser({hasAttributes:!0}).parseFromString(data.datasets).documentElement;else{var parser=new DatasetXMLParser({hasAttributes:!0});try{parser.parseFromString(data["xdp:xdp"])}catch{}this.node=parser.node}}getValue(path){return this.node&&(path=path&&this.node.searchNode(parseXFAPath(path),0))?"value"===path.firstChild?.nodeName?path.children.map(child=>decodeString(child.textContent)):decodeString(path.textContent):""}}class XRef{#firstXRefStmPos=null;constructor(stream,pdfManager){this.stream=stream,this.pdfManager=pdfManager,this.entries=[],this._xrefStms=new Set,this._cacheMap=new Map,this._pendingRefs=new RefSet,this._newPersistentRefNum=null,this._newTemporaryRefNum=null,this._persistentRefsCache=null}getNewPersistentRef(obj){null===this._newPersistentRefNum&&(this._newPersistentRefNum=this.entries.length||1);var num=this._newPersistentRefNum++;return this._cacheMap.set(num,obj),Ref.get(num,0)}getNewTemporaryRef(){if(null===this._newTemporaryRefNum&&(this._newTemporaryRefNum=this.entries.length||1,this._newPersistentRefNum)){this._persistentRefsCache=new Map;for(let i=this._newTemporaryRefNum;i<this._newPersistentRefNum;i++)this._persistentRefsCache.set(i,this._cacheMap.get(i)),this._cacheMap.delete(i)}return Ref.get(this._newTemporaryRefNum++,0)}resetNewTemporaryRef(){if(this._newTemporaryRefNum=null,this._persistentRefsCache)for(var[num,obj]of this._persistentRefsCache)this._cacheMap.set(num,obj);this._persistentRefsCache=null}setStartXRef(startXRef){this.startXRefQueue=[startXRef]}parse(recoveryMode=!1){let trailerDict;(trailerDict=recoveryMode?(warn("Indexing all PDF objects"),this.indexObjects()):this.readXRef()).assignXref(this),this.trailer=trailerDict;let encrypt;try{encrypt=trailerDict.get("Encrypt")}catch(ex){if(ex instanceof MissingDataException)throw ex;warn(`XRef.parse - Invalid "Encrypt" reference: "${ex}".`)}var ids;encrypt instanceof Dict&&(ids=(ids=trailerDict.get("ID"))?.length?ids[0]:"",encrypt.suppressEncryption=!0,this.encrypt=new CipherTransformFactory(encrypt,ids,this.pdfManager.password));let root;try{root=trailerDict.get("Root")}catch(ex){if(ex instanceof MissingDataException)throw ex;warn(`XRef.parse - Invalid "Root" reference: "${ex}".`)}if(root instanceof Dict)try{if(root.get("Pages")instanceof Dict)return void(this.root=root)}catch(ex){if(ex instanceof MissingDataException)throw ex;warn(`XRef.parse - Invalid "Pages" reference: "${ex}".`)}if(recoveryMode)throw new InvalidPDFException("Invalid Root reference.");throw new XRefParseException}processXRefTable(parser){if("tableState"in this||(this.tableState={entryNum:0,streamPos:parser.lexer.stream.pos,parserBuf1:parser.buf1,parserBuf2:parser.buf2}),!isCmd(this.readXRefTable(parser),"trailer"))throw new FormatError("Invalid XRef table: could not find trailer dictionary");let dict=parser.getObj();if((dict=dict instanceof Dict||!dict.dict?dict:dict.dict)instanceof Dict)return delete this.tableState,dict;throw new FormatError("Invalid XRef table: could not parse trailer dictionary")}readXRefTable(parser){var stream=parser.lexer.stream,tableState=this.tableState;stream.pos=tableState.streamPos,parser.buf1=tableState.parserBuf1,parser.buf2=tableState.parserBuf2;let obj;for(;;){if(!("firstEntryNum"in tableState&&"entryCount"in tableState)){if(isCmd(obj=parser.getObj(),"trailer"))break;tableState.firstEntryNum=obj,tableState.entryCount=parser.getObj()}let first=tableState.firstEntryNum;var count=tableState.entryCount;if(!Number.isInteger(first)||!Number.isInteger(count))throw new FormatError("Invalid XRef table: wrong types in subsection header");for(let i=tableState.entryNum;i<count;i++){tableState.streamPos=stream.pos,tableState.entryNum=i,tableState.parserBuf1=parser.buf1,tableState.parserBuf2=parser.buf2;var entry={},type=(entry.offset=parser.getObj(),entry.gen=parser.getObj(),parser.getObj());if(type instanceof Cmd)switch(type.cmd){case"f":entry.free=!0;break;case"n":entry.uncompressed=!0}if(!Number.isInteger(entry.offset)||!Number.isInteger(entry.gen)||!entry.free&&!entry.uncompressed)throw new FormatError(`Invalid entry in XRef subsection: ${first}, `+count);0===i&&entry.free&&1===first&&(first=0),this.entries[i+first]||(this.entries[i+first]=entry)}tableState.entryNum=0,tableState.streamPos=stream.pos,tableState.parserBuf1=parser.buf1,tableState.parserBuf2=parser.buf2,delete tableState.firstEntryNum,delete tableState.entryCount}if(this.entries[0]&&!this.entries[0].free)throw new FormatError("Invalid XRef table: unexpected first object");return obj}processXRefStream(stream){if(!("streamState"in this)){var streamParameters=stream.dict,byteWidths=streamParameters.get("W");let range=streamParameters.get("Index");range=range||[0,streamParameters.get("Size")],this.streamState={entryRanges:range,byteWidths:byteWidths,entryNum:0,streamPos:stream.pos}}return this.readXRefStream(stream),delete this.streamState,stream.dict}readXRefStream(stream){for(var streamState=this.streamState,[typeFieldWidth,offsetFieldWidth,generationFieldWidth]=(stream.pos=streamState.streamPos,streamState.byteWidths),entryRanges=streamState.entryRanges;0<entryRanges.length;){var[first,n]=entryRanges;if(!Number.isInteger(first)||!Number.isInteger(n))throw new FormatError(`Invalid XRef range fields: ${first}, `+n);if(!Number.isInteger(typeFieldWidth)||!Number.isInteger(offsetFieldWidth)||!Number.isInteger(generationFieldWidth))throw new FormatError(`Invalid XRef entry fields length: ${first}, `+n);for(let i=streamState.entryNum;i<n;++i){streamState.entryNum=i,streamState.streamPos=stream.pos;let type=0,offset=0,generation=0;for(let j=0;j<typeFieldWidth;++j){var typeByte=stream.getByte();if(-1===typeByte)throw new FormatError("Invalid XRef byteWidths 'type'.");type=type<<8|typeByte}0===typeFieldWidth&&(type=1);for(let j=0;j<offsetFieldWidth;++j){var offsetByte=stream.getByte();if(-1===offsetByte)throw new FormatError("Invalid XRef byteWidths 'offset'.");offset=offset<<8|offsetByte}for(let j=0;j<generationFieldWidth;++j){var generationByte=stream.getByte();if(-1===generationByte)throw new FormatError("Invalid XRef byteWidths 'generation'.");generation=generation<<8|generationByte}var entry={};switch(entry.offset=offset,entry.gen=generation,type){case 0:entry.free=!0;break;case 1:entry.uncompressed=!0;break;case 2:break;default:throw new FormatError("Invalid XRef entry type: "+type)}this.entries[first+i]||(this.entries[first+i]=entry)}streamState.entryNum=0,streamState.streamPos=stream.pos,entryRanges.splice(0,2)}}indexObjects(){const LF=10,CR=13,LT=60;function skipUntil(data,offset,what){var length=what.length,dataLength=data.length;let skipped=0;for(;offset<dataLength;){let i=0;for(;i<length&&data[offset+i]===what[i];)++i;if(i>=length)break;offset++,skipped++}return skipped}var gEndobjRegExp=/\b(endobj|\d+\s+\d+\s+obj|xref|trailer\s*<<)\b/g,gStartxrefRegExp=/\b(startxref|\d+\s+\d+\s+obj)\b/g,objRegExp=/^(\d+)\s+(\d+)\s+obj\b/,trailerBytes=new Uint8Array([116,114,97,105,108,101,114]),startxrefBytes=new Uint8Array([115,116,97,114,116,120,114,101,102]),xrefBytes=new Uint8Array([47,88,82,101,102]),stream=(this.entries.length=0,this._cacheMap.clear(),this.stream),buffer=(stream.pos=0,stream.getBytes()),bufferStr=bytesToString(buffer),length=buffer.length;let position=stream.start;for(var trailers=[],xrefStms=[];position<length;){let ch=buffer[position];if(9===ch||ch===LF||ch===CR||32===ch)++position;else if(37===ch)for(;!(++position>=length)&&(ch=buffer[position])!==LF&&ch!==CR;);else{var token=function(data,offset){let token="",ch=data[offset];for(;ch!==LF&&ch!==CR&&ch!==LT&&!(++offset>=data.length);)token+=String.fromCharCode(ch),ch=data[offset];return token}(buffer,position);if(token.startsWith("xref")&&(4===token.length||/\s/.test(token[4])))position+=skipUntil(buffer,position,trailerBytes),trailers.push(position),position+=skipUntil(buffer,position,startxrefBytes);else if(m=objRegExp.exec(token)){var num=0|m[1],m=0|m[2],startPos=position+token.length;let contentLength,updateEntries=!1;if(this.entries[num]){if(this.entries[num].gen===m)try{new Parser({lexer:new Lexer(stream.makeSubStream(startPos))}).getObj(),updateEntries=!0}catch(ex){ex instanceof ParserEOFException?warn(`indexObjects -- checking object (${token}): "${ex}".`):updateEntries=!0}}else updateEntries=!0;updateEntries&&(this.entries[num]={offset:position-stream.start,gen:m,uncompressed:!0}),gEndobjRegExp.lastIndex=startPos;num=gEndobjRegExp.exec(bufferStr),startPos=(num?(m=gEndobjRegExp.lastIndex+1,contentLength=m-position,"endobj"!==num[1]&&(warn(`indexObjects: Found "${num[1]}" inside of another "obj", `+'caused by missing "endobj" -- trying to recover.'),contentLength-=num[1].length+1)):contentLength=length-position,buffer.subarray(position,position+contentLength)),m=skipUntil(startPos,0,xrefBytes);m<contentLength&&startPos[m+5]<64&&(xrefStms.push(position-stream.start),this._xrefStms.add(position-stream.start)),position+=contentLength}else if(token.startsWith("trailer")&&(7===token.length||/\s/.test(token[7]))){trailers.push(position);const startPos=position+token.length;let contentLength;gStartxrefRegExp.lastIndex=startPos;const match=gStartxrefRegExp.exec(bufferStr);if(match){const endPos=gStartxrefRegExp.lastIndex+1;contentLength=endPos-position,"startxref"!==match[1]&&(warn(`indexObjects: Found "${match[1]}" after "trailer", `+'caused by missing "startxref" -- trying to recover.'),contentLength-=match[1].length+1)}else contentLength=length-position;position+=contentLength}else position+=token.length+1}}for(const xrefStm of xrefStms)this.startXRefQueue.push(xrefStm),this.readXRef(!0);var dict,trailerDicts=[];let isEncrypted=!1;for(const trailer of trailers){stream.pos=trailer;const parser=new Parser({lexer:new Lexer(stream),xref:this,allowStreams:!0,recoveryMode:!0});isCmd(parser.getObj(),"trailer")&&(dict=parser.getObj())instanceof Dict&&(trailerDicts.push(dict),dict.has("Encrypt"))&&(isEncrypted=!0)}let trailerDict,trailerError;for(const dict of[...trailerDicts,"genFallback",...trailerDicts])if("genFallback"===dict){if(!trailerError)break;this._generationFallback=!0}else{let validPagesDict=!1;try{var rootDict=dict.get("Root");if(!(rootDict instanceof Dict))continue;var pagesDict=rootDict.get("Pages");if(!(pagesDict instanceof Dict))continue;var pagesCount=pagesDict.get("Count");Number.isInteger(pagesCount)&&(validPagesDict=!0)}catch(ex){trailerError=ex;continue}if(validPagesDict&&(!isEncrypted||dict.has("Encrypt"))&&dict.has("ID"))return dict;trailerDict=dict}if(trailerDict)return trailerDict;if(this.topDict)return this.topDict;throw new InvalidPDFException("Invalid PDF structure.")}readXRef(recoveryMode=!1){for(var stream=this.stream,startXRefParsedCache=new Set;this.startXRefQueue.length;){try{var startXRef=this.startXRefQueue[0];if(startXRefParsedCache.has(startXRef)){warn("readXRef - skipping XRef table since it was already parsed."),this.startXRefQueue.shift();continue}startXRefParsedCache.add(startXRef),stream.pos=startXRef+stream.start;var parser=new Parser({lexer:new Lexer(stream),xref:this,allowStreams:!0});let obj=parser.getObj(),dict;if(isCmd(obj,"xref"))dict=this.processXRefTable(parser),this.topDict||(this.topDict=dict),obj=dict.get("XRefStm"),Number.isInteger(obj)&&!this._xrefStms.has(obj)&&(this._xrefStms.add(obj),this.startXRefQueue.push(obj),this.#firstXRefStmPos??=obj);else{if(!Number.isInteger(obj))throw new FormatError("Invalid XRef stream header");if(!(Number.isInteger(parser.getObj())&&isCmd(parser.getObj(),"obj")&&(obj=parser.getObj())instanceof BaseStream))throw new FormatError("Invalid XRef stream");if(dict=this.processXRefStream(obj),this.topDict||(this.topDict=dict),!dict)throw new FormatError("Failed to read XRef stream")}obj=dict.get("Prev"),Number.isInteger(obj)?this.startXRefQueue.push(obj):obj instanceof Ref&&this.startXRefQueue.push(obj.num)}catch(e){if(e instanceof MissingDataException)throw e;info("(while reading XRef): "+e)}this.startXRefQueue.shift()}if(this.topDict)return this.topDict;if(!recoveryMode)throw new XRefParseException}get lastXRefStreamPos(){return this.#firstXRefStmPos??(0<this._xrefStms.size?Math.max(...this._xrefStms):null)}getEntry(i){i=this.entries[i];return i&&!i.free&&i.offset?i:null}fetchIfRef(obj,suppressEncryption=!1){return obj instanceof Ref?this.fetch(obj,suppressEncryption):obj}fetch(ref,suppressEncryption=!1){if(!(ref instanceof Ref))throw new Error("ref object is not a reference");var num=ref.num,cacheEntry=this._cacheMap.get(num);if(void 0!==cacheEntry)return cacheEntry instanceof Dict&&!cacheEntry.objId&&(cacheEntry.objId=ref.toString()),cacheEntry;let xrefEntry=this.getEntry(num);if(null===xrefEntry)this._cacheMap.set(num,xrefEntry);else{if(this._pendingRefs.has(ref))return this._pendingRefs.remove(ref),warn(`Ignoring circular reference: ${ref}.`),CIRCULAR_REF;this._pendingRefs.put(ref);try{xrefEntry=xrefEntry.uncompressed?this.fetchUncompressed(ref,xrefEntry,suppressEncryption):this.fetchCompressed(ref,xrefEntry,suppressEncryption),this._pendingRefs.remove(ref)}catch(ex){throw this._pendingRefs.remove(ref),ex}xrefEntry instanceof Dict?xrefEntry.objId=ref.toString():xrefEntry instanceof BaseStream&&(xrefEntry.dict.objId=ref.toString())}return xrefEntry}fetchUncompressed(ref,xrefEntry,suppressEncryption=!1){var gen=ref.gen;let num=ref.num;if(xrefEntry.gen!==gen){var msg="Inconsistent generation in XRef: "+ref;if(this._generationFallback&&xrefEntry.gen<gen)return warn(msg),this.fetchUncompressed(Ref.get(num,xrefEntry.gen),xrefEntry,suppressEncryption);throw new XRefEntryException(msg)}var msg=this.stream.makeSubStream(xrefEntry.offset+this.stream.start),msg=new Parser({lexer:new Lexer(msg),xref:this,allowStreams:!0}),obj1=msg.getObj(),obj2=msg.getObj(),obj3=msg.getObj();if(obj1===num&&obj2===gen&&obj3 instanceof Cmd){if("obj"===obj3.cmd)return(xrefEntry=this.encrypt&&!suppressEncryption?msg.getObj(this.encrypt.createCipherTransform(num,gen)):msg.getObj())instanceof BaseStream||this._cacheMap.set(num,xrefEntry),xrefEntry;if(obj3.cmd.startsWith("obj")&&(num=parseInt(obj3.cmd.substring(3),10),!Number.isNaN(num)))return num}throw new XRefEntryException("Bad (uncompressed) XRef entry: "+ref)}fetchCompressed(ref,xrefEntry,suppressEncryption=0){var tableOffset=xrefEntry.offset,stream=this.fetch(Ref.get(tableOffset,0));if(!(stream instanceof BaseStream))throw new FormatError("bad ObjStm stream");var first=stream.dict.get("First"),n=stream.dict.get("N");if(!Number.isInteger(first)||!Number.isInteger(n))throw new FormatError("invalid first and n parameters for ObjStm stream");let parser=new Parser({lexer:new Lexer(stream),xref:this,allowStreams:!0});var nums=new Array(n),offsets=new Array(n);for(let i=0;i<n;++i){var num=parser.getObj();if(!Number.isInteger(num))throw new FormatError("invalid object number in the ObjStm stream: "+num);var offset=parser.getObj();if(!Number.isInteger(offset))throw new FormatError("invalid object offset in the ObjStm stream: "+offset);nums[i]=num,offsets[i]=offset}var start=(stream.start||0)+first,entries=new Array(n);for(let i=0;i<n;++i){var length=i<n-1?offsets[i+1]-offsets[i]:void 0;if(length<0)throw new FormatError("Invalid offset in the ObjStm stream.");length=(parser=new Parser({lexer:new Lexer(stream.makeSubStream(start+offsets[i],length,stream.dict)),xref:this,allowStreams:!0})).getObj();if(!((entries[i]=length)instanceof BaseStream)){const num=nums[i],entry=this.entries[num];entry&&entry.offset===tableOffset&&entry.gen===i&&this._cacheMap.set(num,length)}}if(void 0===(xrefEntry=entries[xrefEntry.gen]))throw new XRefEntryException("Bad (compressed) XRef entry: "+ref);return xrefEntry}async fetchIfRefAsync(obj,suppressEncryption){return obj instanceof Ref?this.fetchAsync(obj,suppressEncryption):obj}async fetchAsync(ref,suppressEncryption){try{return this.fetch(ref,suppressEncryption)}catch(ex){if(ex instanceof MissingDataException)return await this.pdfManager.requestRange(ex.begin,ex.end),this.fetchAsync(ref,suppressEncryption);throw ex}}getCatalogObj(){return this.root}}const DEFAULT_USER_UNIT=1,LETTER_SIZE_MEDIABOX=[0,0,612,792];class Page{constructor({pdfManager,xref,pageIndex,pageDict,ref,globalIdFactory,fontCache,builtInCMapCache,standardFontDataCache,globalImageCache,systemFontCache,nonBlendModesSet,xfaFactory}){this.pdfManager=pdfManager,this.pageIndex=pageIndex,this.pageDict=pageDict,this.xref=xref,this.ref=ref,this.fontCache=fontCache,this.builtInCMapCache=builtInCMapCache,this.standardFontDataCache=standardFontDataCache,this.globalImageCache=globalImageCache,this.systemFontCache=systemFontCache,this.nonBlendModesSet=nonBlendModesSet,this.evaluatorOptions=pdfManager.evaluatorOptions,this.resourcesPromise=null,this.xfaFactory=xfaFactory;const idCounters={obj:0};this._localIdFactory=class extends globalIdFactory{static createObjId(){return`p${pageIndex}_`+ ++idCounters.obj}static getPageObjId(){return"p"+ref.toString()}}}_getInheritableProperty(key,getArray=!1){key=getInheritableProperty({dict:this.pageDict,key:key,getArray:getArray,stopWhenFound:!1});return Array.isArray(key)?1!==key.length&&key[0]instanceof Dict?Dict.merge({xref:this.xref,dictArray:key}):key[0]:key}get content(){return this.pageDict.getArray("Contents")}get resources(){var resources=this._getInheritableProperty("Resources");return shadow(this,"resources",resources instanceof Dict?resources:Dict.empty)}_getBoundingBox(name){if(this.xfaData)return this.xfaData.bbox;var box=this._getInheritableProperty(name,!0);if(Array.isArray(box)&&4===box.length){if(0<(box=Util.normalizeRect(box))[2]-box[0]&&0<box[3]-box[1])return box;warn(`Empty, or invalid, /${name} entry.`)}return null}get mediaBox(){return shadow(this,"mediaBox",this._getBoundingBox("MediaBox")||LETTER_SIZE_MEDIABOX)}get cropBox(){return shadow(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}get userUnit(){let obj=this.pageDict.get("UserUnit");return shadow(this,"userUnit",obj="number"!=typeof obj||obj<=0?DEFAULT_USER_UNIT:obj)}get view(){var{cropBox,mediaBox}=this;if(cropBox!==mediaBox&&!isArrayEqual(cropBox,mediaBox)){cropBox=Util.intersect(cropBox,mediaBox);if(cropBox&&0<cropBox[2]-cropBox[0]&&0<cropBox[3]-cropBox[1])return shadow(this,"view",cropBox);warn("Empty /CropBox and /MediaBox intersection.")}return shadow(this,"view",mediaBox)}get rotate(){let rotate=this._getInheritableProperty("Rotate")||0;return rotate%90!=0?rotate=0:360<=rotate?rotate%=360:rotate<0&&(rotate=(rotate%360+360)%360),shadow(this,"rotate",rotate)}_onSubStreamError(reason,objId){if(!this.evaluatorOptions.ignoreErrors)throw reason;warn(`getContentStream - ignoring sub-stream (${objId}): "${reason}".`)}getContentStream(){return this.pdfManager.ensure(this,"content").then(content=>content instanceof BaseStream?content:Array.isArray(content)?new StreamsSequenceStream(content,this._onSubStreamError.bind(this)):new NullStream)}get xfaData(){return shadow(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null)}#replaceIdByRef(annotations,deletedAnnotations,existingAnnotations){for(const annotation of annotations){var ref;annotation.id&&((ref=Ref.fromString(annotation.id))?annotation.deleted?deletedAnnotations.put(ref,ref):(existingAnnotations?.put(ref),annotation.ref=ref,delete annotation.id):warn("A non-linked annotation cannot be modified: "+annotation.id))}}async saveNewAnnotations(handler,task,annotations,imagePromises){if(this.xfaFactory)throw new Error("XFA: Cannot save new annotations.");handler=new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions});const deletedAnnotations=new RefSetCache;var ref,existingAnnotations=new RefSet,pageDict=(this.#replaceIdByRef(annotations,deletedAnnotations,existingAnnotations),this.pageDict),annotationsArray=this.annotations.filter(a=>!(a instanceof Ref&&deletedAnnotations.has(a))),handler=await AnnotationFactory.saveNewAnnotations(handler,task,annotations,imagePromises);for({ref}of handler.annotations)ref instanceof Ref&&!existingAnnotations.has(ref)&&annotationsArray.push(ref);var task=pageDict.get("Annots"),annotations=(pageDict.set("Annots",annotationsArray),[]),objects=(await writeObject(this.ref,pageDict,annotations,this.xref),task&&pageDict.set("Annots",task),handler.dependencies);objects.push({ref:this.ref,data:annotations.join("")},...handler.annotations);for(const deletedRef of deletedAnnotations)objects.push({ref:deletedRef,data:null});return objects}save(handler,task,annotationStorage){const partialEvaluator=new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions});return this._parsedAnnotations.then(function(annotations){var newRefsPromises=[];for(const annotation of annotations)annotation.mustBePrinted(annotationStorage)&&newRefsPromises.push(annotation.save(partialEvaluator,task,annotationStorage).catch(function(reason){return warn("save - ignoring annotation data during "+`"${task.name}" task: "${reason}".`),null}));return Promise.all(newRefsPromises).then(function(newRefs){return newRefs.filter(newRef=>!!newRef)})})}loadResources(keys){return this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources")),this.resourcesPromise.then(()=>{return new ObjectLoader(this.resources,keys,this.xref).load()})}getOperatorList({handler,sink,task,intent,cacheKey,annotationStorage=null}){var contentStreamPromise=this.getContentStream(),resourcesPromise=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]);const partialEvaluator=new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions});var newAnnotationsByPage=this.xfaFactory?null:getNewAnnotationsMap(annotationStorage);let deletedAnnotations=null,newAnnotationsPromise=Promise.resolve(null);if(newAnnotationsByPage){const newAnnotations=newAnnotationsByPage.get(this.pageIndex);if(newAnnotations){newAnnotationsByPage=this.pdfManager.ensureDoc("annotationGlobals");let imagePromises;var bitmapId,bitmap,missingBitmaps=new Set;for({bitmapId,bitmap}of newAnnotations)!bitmapId||bitmap||missingBitmaps.has(bitmapId)||missingBitmaps.add(bitmapId);var isOffscreenCanvasSupported=this.evaluatorOptions["isOffscreenCanvasSupported"];if(0<missingBitmaps.size){var key,annotation,annotationWithBitmaps=newAnnotations.slice();for([key,annotation]of annotationStorage)key.startsWith(AnnotationEditorPrefix)&&annotation.bitmap&&missingBitmaps.has(annotation.bitmapId)&&annotationWithBitmaps.push(annotation);imagePromises=AnnotationFactory.generateImages(annotationWithBitmaps,this.xref,isOffscreenCanvasSupported)}else imagePromises=AnnotationFactory.generateImages(newAnnotations,this.xref,isOffscreenCanvasSupported);deletedAnnotations=new RefSet,this.#replaceIdByRef(newAnnotations,deletedAnnotations,null),newAnnotationsPromise=newAnnotationsByPage.then(annotationGlobals=>annotationGlobals?AnnotationFactory.printNewAnnotations(annotationGlobals,partialEvaluator,task,newAnnotations,imagePromises):null)}}isOffscreenCanvasSupported=Promise.all([contentStreamPromise,resourcesPromise]).then(([contentStream])=>{const opList=new OperatorList(intent,sink);return handler.send("StartRenderPage",{transparency:partialEvaluator.hasBlendModes(this.resources,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey:cacheKey}),partialEvaluator.getOperatorList({stream:contentStream,task:task,resources:this.resources,operatorList:opList}).then(function(){return opList})});return Promise.all([isOffscreenCanvasSupported,this._parsedAnnotations,newAnnotationsPromise]).then(function([pageOpList,annotations,newAnnotations]){if(newAnnotations){annotations=annotations.filter(a=>!(a.ref&&deletedAnnotations.has(a.ref)));for(let i=0,ii=newAnnotations.length;i<ii;i++){const newAnnotation=newAnnotations[i];var j;newAnnotation.refToReplace&&0<=(j=annotations.findIndex(a=>a.ref&&isRefsEqual(a.ref,newAnnotation.refToReplace)))&&(annotations.splice(j,1,newAnnotation),newAnnotations.splice(i--,1),ii--)}annotations=annotations.concat(newAnnotations)}if(0===annotations.length||intent&RenderingIntentFlag.ANNOTATIONS_DISABLE)return pageOpList.flush(!0),{length:pageOpList.totalLength};var renderForms=!!(intent&RenderingIntentFlag.ANNOTATIONS_FORMS),intentAny=!!(intent&RenderingIntentFlag.ANY),intentDisplay=!!(intent&RenderingIntentFlag.DISPLAY),intentPrint=!!(intent&RenderingIntentFlag.PRINT),opListPromises=[];for(const annotation of annotations)(intentAny||intentDisplay&&annotation.mustBeViewed(annotationStorage,renderForms)||intentPrint&&annotation.mustBePrinted(annotationStorage))&&opListPromises.push(annotation.getOperatorList(partialEvaluator,task,intent,renderForms,annotationStorage).catch(function(reason){return warn("getOperatorList - ignoring annotation data during "+`"${task.name}" task: "${reason}".`),{opList:null,separateForm:!1,separateCanvas:!1}}));return Promise.all(opListPromises).then(function(opLists){let form=!1,canvas=!1;for(var{opList,separateForm,separateCanvas}of opLists)pageOpList.addOpList(opList),form||=separateForm,canvas||=separateCanvas;return pageOpList.flush(!0,{form:form,canvas:canvas}),{length:pageOpList.totalLength}})})}extractTextContent({handler,task,includeMarkedContent,disableNormalization,sink}){var contentStreamPromise=this.getContentStream(),resourcesPromise=this.loadResources(["ExtGState","Font","Properties","XObject"]);return Promise.all([contentStreamPromise,resourcesPromise]).then(([contentStream])=>{return new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions}).getTextContent({stream:contentStream,task:task,resources:this.resources,includeMarkedContent:includeMarkedContent,disableNormalization:disableNormalization,sink:sink,viewBox:this.view})})}async getStructTree(){var structTreeRoot=await this.pdfManager.ensureCatalog("structTreeRoot");return structTreeRoot?(await this._parsedAnnotations,(await this.pdfManager.ensure(this,"_parseStructTree",[structTreeRoot])).serializable):null}_parseStructTree(structTreeRoot){structTreeRoot=new StructTreePage(structTreeRoot,this.pageDict);return structTreeRoot.parse(this.ref),structTreeRoot}async getAnnotationsData(handler,task,intent){var annotations=await this._parsedAnnotations;if(0===annotations.length)return annotations;var annotationsData=[],textContentPromises=[];let partialEvaluator;var intentAny=!!(intent&RenderingIntentFlag.ANY),intentDisplay=!!(intent&RenderingIntentFlag.DISPLAY),intentPrint=!!(intent&RenderingIntentFlag.PRINT);for(const annotation of annotations){var isVisible=intentAny||intentDisplay&&annotation.viewable;(isVisible||intentPrint&&annotation.printable)&&annotationsData.push(annotation.data),annotation.hasTextContent&&isVisible&&(partialEvaluator||=new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions}),textContentPromises.push(annotation.extractTextContent(partialEvaluator,task,[-1/0,-1/0,1/0,1/0]).catch(function(reason){warn(`getAnnotationsData - ignoring textContent during "${task.name}" task: "${reason}".`)})))}return await Promise.all(textContentPromises),annotationsData}get annotations(){var annots=this._getInheritableProperty("Annots");return shadow(this,"annotations",Array.isArray(annots)?annots:[])}get _parsedAnnotations(){var promise=this.pdfManager.ensure(this,"annotations").then(async annots=>{if(0===annots.length)return annots;var annotationGlobals=await this.pdfManager.ensureDoc("annotationGlobals");if(!annotationGlobals)return[];var annotationPromises=[];for(const annotationRef of annots)annotationPromises.push(AnnotationFactory.create(this.xref,annotationRef,annotationGlobals,this._localIdFactory,!1,this.ref).catch(function(reason){return warn(`_parsedAnnotations: "${reason}".`),null}));var sortedAnnotations=[];let popupAnnotations,widgetAnnotations;for(const annotation of await Promise.all(annotationPromises))annotation&&(annotation instanceof WidgetAnnotation?widgetAnnotations||=[]:annotation instanceof PopupAnnotation?popupAnnotations||=[]:sortedAnnotations).push(annotation);return widgetAnnotations&&sortedAnnotations.push(...widgetAnnotations),popupAnnotations&&sortedAnnotations.push(...popupAnnotations),sortedAnnotations});return shadow(this,"_parsedAnnotations",promise)}get jsActions(){return shadow(this,"jsActions",collectActions(this.xref,this.pageDict,PageActionEventType))}}const PDF_HEADER_SIGNATURE=new Uint8Array([37,80,68,70,45]),STARTXREF_SIGNATURE=new Uint8Array([115,116,97,114,116,120,114,101,102]),ENDOBJ_SIGNATURE=new Uint8Array([101,110,100,111,98,106]),FINGERPRINT_FIRST_BYTES=1024,EMPTY_FINGERPRINT="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";function find(stream,signature,limit=1024,backwards=!1){var signatureLength=signature.length,scanBytes=stream.peekBytes(limit),scanLength=scanBytes.length-signatureLength;if(!(scanLength<=0))if(backwards){var signatureEnd=signatureLength-1;let pos=scanBytes.length-1;for(;pos>=signatureEnd;){let j=0;for(;j<signatureLength&&scanBytes[pos-j]===signature[signatureEnd-j];)j++;if(j>=signatureLength)return stream.pos+=pos-signatureEnd,!0;pos--}}else{let pos=0;for(;pos<=scanLength;){let j=0;for(;j<signatureLength&&scanBytes[pos+j]===signature[j];)j++;if(j>=signatureLength)return stream.pos+=pos,!0;pos++}}return!1}class PDFDocument{constructor(pdfManager,stream){if(stream.length<=0)throw new InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=pdfManager,this.stream=stream,this.xref=new XRef(stream,pdfManager),this._pagePromises=new Map,this._version=null;const idCounters={font:0};this._globalIdFactory=class{static getDocId(){return"g_"+pdfManager.docId}static createFontId(){return"f"+ ++idCounters.font}static createObjId(){unreachable("Abstract method `createObjId` called.")}static getPageObjId(){unreachable("Abstract method `getPageObjId` called.")}}}parse(recoveryMode){this.xref.parse(recoveryMode),this.catalog=new Catalog(this.pdfManager,this.xref)}get linearization(){let linearization=null;try{linearization=Linearization.create(this.stream)}catch(err){if(err instanceof MissingDataException)throw err;info(err)}return shadow(this,"linearization",linearization)}get startXRef(){var stream=this.stream;let startXRef=0;if(this.linearization){if(stream.reset(),find(stream,ENDOBJ_SIGNATURE)){stream.skip(6);let ch=stream.peekByte();for(;isWhiteSpace(ch);)stream.pos++,ch=stream.peekByte();startXRef=stream.pos-stream.start}}else{var startXRefLength=STARTXREF_SIGNATURE.length;let found=!1,pos=stream.end;for(;!found&&0<pos;)(pos-=1024-startXRefLength)<0&&(pos=0),stream.pos=pos,found=find(stream,STARTXREF_SIGNATURE,1024,!0);if(found){stream.skip(9);let ch;for(;isWhiteSpace(ch=stream.getByte()););let str="";for(;32<=ch&&ch<=57;)str+=String.fromCharCode(ch),ch=stream.getByte();startXRef=parseInt(str,10),isNaN(startXRef)&&(startXRef=0)}}return shadow(this,"startXRef",startXRef)}checkHeader(){var stream=this.stream;if(stream.reset(),find(stream,PDF_HEADER_SIGNATURE)){stream.moveStart(),stream.skip(PDF_HEADER_SIGNATURE.length);let version="",ch;for(;32<(ch=stream.getByte())&&version.length<7;)version+=String.fromCharCode(ch);PDF_VERSION_REGEXP.test(version)?this._version=version:warn("Invalid PDF header version: "+version)}}parseStartXRef(){this.xref.setStartXRef(this.startXRef)}get numPages(){let num=0;return num=this.catalog.hasActualNumPages?this.catalog.numPages:this.xfaFactory?this.xfaFactory.getNumPages():(this.linearization||this.catalog).numPages,shadow(this,"numPages",num)}_hasOnlyDocumentSignatures(fields,recursionDepth=0){return!!Array.isArray(fields)&&fields.every(field=>{var isSignature;return(field=this.xref.fetchIfRef(field))instanceof Dict&&(field.has("Kids")?10<++recursionDepth?(warn("_hasOnlyDocumentSignatures: maximum recursion depth reached"),!1):this._hasOnlyDocumentSignatures(field.get("Kids"),recursionDepth):(isSignature=isName(field.get("FT"),"Sig"),field=field.get("Rect"),field=Array.isArray(field)&&field.every(value=>0===value),isSignature&&field))})}get _xfaStreams(){var acroForm=this.catalog.acroForm;if(!acroForm)return null;var data,xfa=acroForm.get("XFA"),entries={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if(xfa instanceof BaseStream&&!xfa.isEmpty)entries["xdp:xdp"]=xfa;else{if(!Array.isArray(xfa)||0===xfa.length)return null;for(let i=0,ii=xfa.length;i<ii;i+=2){let name;name=0===i?"xdp:xdp":i===ii-2?"/xdp:xdp":xfa[i],entries.hasOwnProperty(name)&&(data=this.xref.fetchIfRef(xfa[i+1]))instanceof BaseStream&&!data.isEmpty&&(entries[name]=data)}}return entries}get xfaDatasets(){var streams=this._xfaStreams;if(streams)for(const key of["datasets","xdp:xdp"]){var stream=streams[key];if(stream)try{var str=stringToUTF8String(stream.getString()),data={[key]:str};return shadow(this,"xfaDatasets",new DatasetReader(data))}catch{warn("XFA - Invalid utf-8 string.");break}}return shadow(this,"xfaDatasets",null)}get xfaData(){var streams=this._xfaStreams;if(!streams)return null;var key,stream,data=Object.create(null);for([key,stream]of Object.entries(streams))if(stream)try{data[key]=stringToUTF8String(stream.getString())}catch{return warn("XFA - Invalid utf-8 string."),null}return data}get xfaFactory(){let data;return shadow(this,"xfaFactory",(data=this.pdfManager.enableXfa&&this.catalog.needsRendering&&this.formInfo.hasXfa&&!this.formInfo.hasAcroForm?this.xfaData:data)?new XFAFactory(data):null)}get isPureXfa(){return!!this.xfaFactory&&this.xfaFactory.isValid()}get htmlForXfa(){return this.xfaFactory?this.xfaFactory.getPages():null}async loadXfaImages(){var xfaImagesDict=await this.pdfManager.ensureCatalog("xfaImages");if(xfaImagesDict){var keys=xfaImagesDict.getKeys(),xfaImages=(await new ObjectLoader(xfaImagesDict,keys,this.xref).load(),new Map);for(const key of keys){var stream=xfaImagesDict.get(key);stream instanceof BaseStream&&xfaImages.set(key,stream.getBytes())}this.xfaFactory.setImages(xfaImages)}}async loadXfaFonts(handler,task){var acroForm=await this.pdfManager.ensureCatalog("acroForm");if(acroForm){var resources=await acroForm.getAsync("DR");if(resources instanceof Dict){await new ObjectLoader(resources,["Font"],this.xref).load();acroForm=resources.get("Font");if(acroForm instanceof Dict){var options=Object.assign(Object.create(null),this.pdfManager.evaluatorOptions),partialEvaluator=(options.useSystemFonts=!1,new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:-1,idFactory:this._globalIdFactory,fontCache:this.catalog.fontCache,builtInCMapCache:this.catalog.builtInCMapCache,standardFontDataCache:this.catalog.standardFontDataCache,options:options})),operatorList=new OperatorList;const pdfFonts=[];var initialState={get font(){return pdfFonts.at(-1)},set font(font){pdfFonts.push(font)},clone(){return this}};const fonts=new Map;acroForm.forEach((fontName,font)=>{fonts.set(fontName,font)});var fontName,font,promises=[];for([fontName,font]of fonts){var descriptor=font.get("FontDescriptor");if(descriptor instanceof Dict){let fontFamily=descriptor.get("FontFamily");fontFamily=fontFamily.replaceAll(/[ ]+(\d)/g,"$1");var fontWeight=descriptor.get("FontWeight"),descriptor=-descriptor.get("ItalicAngle"),fontWeight={fontFamily:fontFamily,fontWeight:fontWeight,italicAngle:descriptor};validateCSSFont(fontWeight)&&promises.push(partialEvaluator.handleSetFont(resources,[Name.get(fontName),1],null,operatorList,task,initialState,null,fontWeight).catch(function(reason){return warn(`loadXfaFonts: "${reason}".`),null}))}}await Promise.all(promises);handler=this.xfaFactory.setFonts(pdfFonts);if(handler){options.ignoreErrors=!0,promises.length=0,pdfFonts.length=0;var reallyMissingFonts=new Set;for(const missing of handler)getXfaFontName(missing+"-Regular")||reallyMissingFonts.add(missing);reallyMissingFonts.size&&handler.push("PdfJS-Fallback");for(const missing of handler)if(!reallyMissingFonts.has(missing))for(const fontInfo of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){var name=missing+"-"+fontInfo.name,dict=getXfaFontDict(name);promises.push(partialEvaluator.handleSetFont(resources,[Name.get(name),1],null,operatorList,task,initialState,dict,{fontFamily:missing,fontWeight:fontInfo.fontWeight,italicAngle:fontInfo.italicAngle}).catch(function(reason){return warn(`loadXfaFonts: "${reason}".`),null}))}await Promise.all(promises),this.xfaFactory.appendFonts(pdfFonts,reallyMissingFonts)}}}}}async serializeXfaData(annotationStorage){return this.xfaFactory?this.xfaFactory.serializeData(annotationStorage):null}get version(){return this.catalog.version||this._version}get formInfo(){var formInfo={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},acroForm=this.catalog.acroForm;if(acroForm)try{var fields=acroForm.get("Fields"),hasFields=Array.isArray(fields)&&0<fields.length,xfa=(formInfo.hasFields=hasFields,acroForm.get("XFA")),sigFlags=(formInfo.hasXfa=Array.isArray(xfa)&&0<xfa.length||xfa instanceof BaseStream&&!xfa.isEmpty,acroForm.get("SigFlags")),hasSignatures=!!(1&sigFlags),hasOnlyDocumentSignatures=hasSignatures&&this._hasOnlyDocumentSignatures(fields);formInfo.hasAcroForm=hasFields&&!hasOnlyDocumentSignatures,formInfo.hasSignatures=hasSignatures}catch(ex){if(ex instanceof MissingDataException)throw ex;warn(`Cannot fetch form information: "${ex}".`)}return shadow(this,"formInfo",formInfo)}get documentInfo(){var docInfo={PDFFormatVersion:this.version,Language:this.catalog.lang,EncryptFilterName:this.xref.encrypt?this.xref.encrypt.filterName:null,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection,IsSignaturesPresent:this.formInfo.hasSignatures};let infoDict;try{infoDict=this.xref.trailer.get("Info")}catch(err){if(err instanceof MissingDataException)throw err;info("The document information dictionary is invalid.")}if(infoDict instanceof Dict)for(const key of infoDict.getKeys()){var value=infoDict.get(key);switch(key){case"Title":case"Author":case"Subject":case"Keywords":case"Creator":case"Producer":case"CreationDate":case"ModDate":if("string"!=typeof value)break;docInfo[key]=stringToPDFString(value);continue;case"Trapped":if(value instanceof Name){docInfo[key]=value;continue}break;default:let customValue;switch(typeof value){case"string":customValue=stringToPDFString(value);break;case"number":case"boolean":customValue=value;break;default:value instanceof Name&&(customValue=value)}if(void 0===customValue){warn(`Bad value, for custom key "${key}", in Info: ${value}.`);continue}docInfo.Custom||(docInfo.Custom=Object.create(null)),docInfo.Custom[key]=customValue;continue}warn(`Bad value, for key "${key}", in Info: ${value}.`)}return shadow(this,"documentInfo",docInfo)}get fingerprints(){function validate(data){return"string"==typeof data&&0<data.length&&data!==EMPTY_FINGERPRINT}function hexString(hash){var buf=[];for(const num of hash){var hex=num.toString(16);buf.push(hex.padStart(2,"0"))}return buf.join("")}var idArray=this.xref.trailer.get("ID");let hashOriginal,hashModified;return Array.isArray(idArray)&&validate(idArray[0])?(hashOriginal=stringToBytes(idArray[0]),idArray[1]!==idArray[0]&&validate(idArray[1])&&(hashModified=stringToBytes(idArray[1]))):hashOriginal=calculateMD5(this.stream.getByteRange(0,FINGERPRINT_FIRST_BYTES),0,FINGERPRINT_FIRST_BYTES),shadow(this,"fingerprints",[hexString(hashOriginal),hashModified?hexString(hashModified):null])}async _getLinearizationPage(pageIndex){var{catalog,linearization,xref}=this,linearization=Ref.get(linearization.objectNumberFirst,0);try{var obj=await xref.fetchAsync(linearization);if(obj instanceof Dict){let type=obj.getRaw("Type");if(isName(type=type instanceof Ref?await xref.fetchAsync(type):type,"Page")||!obj.has("Type")&&!obj.has("Kids"))return catalog.pageKidsCountCache.has(linearization)||catalog.pageKidsCountCache.put(linearization,1),catalog.pageIndexCache.has(linearization)||catalog.pageIndexCache.put(linearization,0),[obj,linearization]}throw new FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")}catch(reason){return warn(`_getLinearizationPage: "${reason.message}".`),catalog.getPageDict(pageIndex)}}getPage(pageIndex){var cachedPromise=this._pagePromises.get(pageIndex);if(cachedPromise)return cachedPromise;const{catalog,linearization,xfaFactory}=this;let promise;return promise=(promise=xfaFactory?Promise.resolve([Dict.empty,null]):linearization?.pageFirst===pageIndex?this._getLinearizationPage(pageIndex):catalog.getPageDict(pageIndex)).then(([pageDict,ref])=>new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:pageIndex,pageDict:pageDict,ref:ref,globalIdFactory:this._globalIdFactory,fontCache:catalog.fontCache,builtInCMapCache:catalog.builtInCMapCache,standardFontDataCache:catalog.standardFontDataCache,globalImageCache:catalog.globalImageCache,systemFontCache:catalog.systemFontCache,nonBlendModesSet:catalog.nonBlendModesSet,xfaFactory:xfaFactory})),this._pagePromises.set(pageIndex,promise),promise}async checkFirstPage(recoveryMode=!1){if(!recoveryMode)try{await this.getPage(0)}catch(reason){if(reason instanceof XRefEntryException)throw this._pagePromises.delete(0),await this.cleanup(),new XRefParseException}}async checkLastPage(recoveryMode=!1){var{catalog,pdfManager}=this;catalog.setActualNumPages();let numPages;try{if(await Promise.all([pdfManager.ensureDoc("xfaFactory"),pdfManager.ensureDoc("linearization"),pdfManager.ensureCatalog("numPages")]),!this.xfaFactory){if(numPages=(this.linearization||catalog).numPages,!Number.isInteger(numPages))throw new FormatError("Page count is not an integer.");numPages<=1||await this.getPage(numPages-1)}}catch(reason){if(this._pagePromises.delete(numPages-1),await this.cleanup(),reason instanceof XRefEntryException&&!recoveryMode)throw new XRefParseException;warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);let pagesTree;try{pagesTree=await catalog.getAllPageDicts(recoveryMode)}catch(reasonAll){if(reasonAll instanceof XRefEntryException&&!recoveryMode)throw new XRefParseException;return void catalog.setActualNumPages(1)}for(var[pageIndex,[pageDict,ref]]of pagesTree){let promise;pageDict instanceof Error?(promise=Promise.reject(pageDict)).catch(()=>{}):promise=Promise.resolve(new Page({pdfManager:pdfManager,xref:this.xref,pageIndex:pageIndex,pageDict:pageDict,ref:ref,globalIdFactory:this._globalIdFactory,fontCache:catalog.fontCache,builtInCMapCache:catalog.builtInCMapCache,standardFontDataCache:catalog.standardFontDataCache,globalImageCache:catalog.globalImageCache,systemFontCache:catalog.systemFontCache,nonBlendModesSet:catalog.nonBlendModesSet,xfaFactory:null})),this._pagePromises.set(pageIndex,promise)}catalog.setActualNumPages(pagesTree.size)}}fontFallback(id,handler){return this.catalog.fontFallback(id,handler)}async cleanup(manuallyTriggered=!1){return this.catalog?this.catalog.cleanup(manuallyTriggered):clearGlobalCaches()}async#collectFieldObjects(name,fieldRef,promises,annotationGlobals,visitedRefs){var xref=this["xref"];if(fieldRef instanceof Ref&&!visitedRefs.has(fieldRef)){visitedRefs.put(fieldRef);var field=await xref.fetchAsync(fieldRef);if(field instanceof Dict){if(field.has("T")){var partName=stringToPDFString(await field.getAsync("T"));name=""===name?partName:name+"."+partName}else{let obj=field;for(;;){if((obj=obj.getRaw("Parent"))instanceof Ref){if(visitedRefs.has(obj))break;obj=await xref.fetchAsync(obj)}if(!(obj instanceof Dict))break;if(obj.has("T")){const partName=stringToPDFString(await obj.getAsync("T"));name=""===name?partName:name+"."+partName;break}}}if(promises.has(name)||promises.set(name,[]),promises.get(name).push(AnnotationFactory.create(xref,fieldRef,annotationGlobals,null,!0,null).then(annotation=>annotation?.getFieldObject()).catch(function(reason){return warn(`#collectFieldObjects: "${reason}".`),null})),field.has("Kids")){partName=await field.getAsync("Kids");if(Array.isArray(partName))for(const kid of partName)await this.#collectFieldObjects(name,kid,promises,annotationGlobals,visitedRefs)}}}}get fieldObjects(){var promise;return this.formInfo.hasFields?(promise=Promise.all([this.pdfManager.ensureDoc("annotationGlobals"),this.pdfManager.ensureCatalog("acroForm")]).then(async([annotationGlobals,acroForm])=>{if(!annotationGlobals)return null;var visitedRefs=new RefSet;const allFields=Object.create(null);var fieldPromises=new Map;for(const fieldRef of await acroForm.getAsync("Fields"))await this.#collectFieldObjects("",fieldRef,fieldPromises,annotationGlobals,visitedRefs);var allPromises=[];for(const[name,promises]of fieldPromises)allPromises.push(Promise.all(promises).then(fields=>{0<(fields=fields.filter(field=>!!field)).length&&(allFields[name]=fields)}));return await Promise.all(allPromises),allFields}),shadow(this,"fieldObjects",promise)):shadow(this,"fieldObjects",Promise.resolve(null))}get hasJSActions(){var promise=this.pdfManager.ensureDoc("_parseHasJSActions");return shadow(this,"hasJSActions",promise)}async _parseHasJSActions(){var[catalogJsActions,fieldObjects]=await Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);return!!catalogJsActions||!!fieldObjects&&Object.values(fieldObjects).some(fieldObject=>fieldObject.some(object=>null!==object.actions))}get calculationOrderIds(){var acroForm=this.catalog.acroForm;if(!acroForm?.has("CO"))return shadow(this,"calculationOrderIds",null);acroForm=acroForm.get("CO");if(!Array.isArray(acroForm)||0===acroForm.length)return shadow(this,"calculationOrderIds",null);var ids=[];for(const id of acroForm)id instanceof Ref&&ids.push(id.toString());return shadow(this,"calculationOrderIds",0===ids.length?null:ids)}get annotationGlobals(){return shadow(this,"annotationGlobals",AnnotationFactory.createGlobals(this.pdfManager))}}function parseDocBaseUrl(url){if(url){var absoluteUrl=createValidAbsoluteUrl(url);if(absoluteUrl)return absoluteUrl.href;warn(`Invalid absolute docBaseUrl: "${url}".`)}return null}class BasePdfManager{constructor(args){this.constructor===BasePdfManager&&unreachable("Cannot initialize BasePdfManager."),this._docBaseUrl=parseDocBaseUrl(args.docBaseUrl),this._docId=args.docId,this._password=args.password,this.enableXfa=args.enableXfa,args.evaluatorOptions.isOffscreenCanvasSupported&&=FeatureTest.isOffscreenCanvasSupported,this.evaluatorOptions=args.evaluatorOptions}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){return this._docBaseUrl}get catalog(){return this.pdfDocument.catalog}ensureDoc(prop,args){return this.ensure(this.pdfDocument,prop,args)}ensureXRef(prop,args){return this.ensure(this.pdfDocument.xref,prop,args)}ensureCatalog(prop,args){return this.ensure(this.pdfDocument.catalog,prop,args)}getPage(pageIndex){return this.pdfDocument.getPage(pageIndex)}fontFallback(id,handler){return this.pdfDocument.fontFallback(id,handler)}loadXfaFonts(handler,task){return this.pdfDocument.loadXfaFonts(handler,task)}loadXfaImages(){return this.pdfDocument.loadXfaImages()}serializeXfaData(annotationStorage){return this.pdfDocument.serializeXfaData(annotationStorage)}cleanup(manuallyTriggered=!1){return this.pdfDocument.cleanup(manuallyTriggered)}async ensure(obj,prop,args){unreachable("Abstract method `ensure` called")}requestRange(begin,end){unreachable("Abstract method `requestRange` called")}requestLoadedStream(noFetch=0){unreachable("Abstract method `requestLoadedStream` called")}sendProgressiveData(chunk){unreachable("Abstract method `sendProgressiveData` called")}updatePassword(password){this._password=password}terminate(reason){unreachable("Abstract method `terminate` called")}}class LocalPdfManager extends BasePdfManager{constructor(args){super(args);args=new Stream(args.source);this.pdfDocument=new PDFDocument(this,args),this._loadedStreamPromise=Promise.resolve(args)}async ensure(obj,prop,args){prop=obj[prop];return"function"==typeof prop?prop.apply(obj,args):prop}requestRange(begin,end){return Promise.resolve()}requestLoadedStream(noFetch=0){return this._loadedStreamPromise}terminate(reason){}}class NetworkPdfManager extends BasePdfManager{constructor(args){super(args),this.streamManager=new ChunkedStreamManager(args.source,{msgHandler:args.handler,length:args.length,disableAutoFetch:args.disableAutoFetch,rangeChunkSize:args.rangeChunkSize}),this.pdfDocument=new PDFDocument(this,this.streamManager.getStream())}async ensure(obj,prop,args){try{var value=obj[prop];return"function"==typeof value?value.apply(obj,args):value}catch(ex){if(ex instanceof MissingDataException)return await this.requestRange(ex.begin,ex.end),this.ensure(obj,prop,args);throw ex}}requestRange(begin,end){return this.streamManager.requestRange(begin,end)}requestLoadedStream(noFetch=!1){return this.streamManager.requestAllChunks(noFetch)}sendProgressiveData(chunk){this.streamManager.onReceiveData({chunk:chunk})}terminate(reason){this.streamManager.abort(reason)}}const CallbackKind={UNKNOWN:0,DATA:1,ERROR:2},StreamKind={UNKNOWN:0,CANCEL:1,CANCEL_COMPLETE:2,CLOSE:3,ENQUEUE:4,ERROR:5,PULL:6,PULL_COMPLETE:7,START_COMPLETE:8};function wrapReason(reason){switch(reason instanceof Error||"object"==typeof reason&&null!==reason||unreachable('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),reason.name){case"AbortException":return new AbortException(reason.message);case"MissingPDFException":return new MissingPDFException(reason.message);case"PasswordException":return new PasswordException(reason.message,reason.code);case"UnexpectedResponseException":return new UnexpectedResponseException(reason.message,reason.status);case"UnknownErrorException":return new UnknownErrorException(reason.message,reason.details);default:return new UnknownErrorException(reason.message,reason.toString())}}class MessageHandler{constructor(sourceName,targetName,comObj){this.sourceName=sourceName,this.targetName=targetName,this.comObj=comObj,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),this._onComObjOnMessage=event=>{const data=event.data;if(data.targetName===this.sourceName)if(data.stream)this.#processStreamMessage(data);else if(data.callback){var event=data.callbackId,capability=this.callbackCapabilities[event];if(!capability)throw new Error("Cannot resolve callback "+event);if(delete this.callbackCapabilities[event],data.callback===CallbackKind.DATA)capability.resolve(data.data);else{if(data.callback!==CallbackKind.ERROR)throw new Error("Unexpected callback case");capability.reject(wrapReason(data.reason))}}else{const action=this.actionHandler[data.action];if(!action)throw new Error("Unknown action from worker: "+data.action);if(data.callbackId){const cbSourceName=this.sourceName,cbTargetName=data.sourceName;void new Promise(function(resolve){resolve(action(data.data))}).then(function(result){comObj.postMessage({sourceName:cbSourceName,targetName:cbTargetName,callback:CallbackKind.DATA,callbackId:data.callbackId,data:result})},function(reason){comObj.postMessage({sourceName:cbSourceName,targetName:cbTargetName,callback:CallbackKind.ERROR,callbackId:data.callbackId,reason:wrapReason(reason)})})}else data.streamId?this.#createStreamSink(data):action(data.data)}},comObj.addEventListener("message",this._onComObjOnMessage)}on(actionName,handler){var ah=this.actionHandler;if(ah[actionName])throw new Error(`There is already an actionName called "${actionName}"`);ah[actionName]=handler}send(actionName,data,transfers){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:actionName,data:data},transfers)}sendWithPromise(actionName,data,transfers){var callbackId=this.callbackId++,capability=Promise.withResolvers();this.callbackCapabilities[callbackId]=capability;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:actionName,callbackId:callbackId,data:data},transfers)}catch(ex){capability.reject(ex)}return capability.promise}sendWithStream(actionName,data,queueingStrategy,transfers){const streamId=this.streamId++,sourceName=this.sourceName,targetName=this.targetName,comObj=this.comObj;return new ReadableStream({start:controller=>{var startCapability=Promise.withResolvers();return this.streamControllers[streamId]={controller:controller,startCall:startCapability,pullCall:null,cancelCall:null,isClosed:!1},comObj.postMessage({sourceName:sourceName,targetName:targetName,action:actionName,streamId:streamId,data:data,desiredSize:controller.desiredSize},transfers),startCapability.promise},pull:controller=>{var pullCapability=Promise.withResolvers();return this.streamControllers[streamId].pullCall=pullCapability,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.PULL,streamId:streamId,desiredSize:controller.desiredSize}),pullCapability.promise},cancel:reason=>{assert(reason instanceof Error,"cancel must have a valid reason");var cancelCapability=Promise.withResolvers();return this.streamControllers[streamId].cancelCall=cancelCapability,this.streamControllers[streamId].isClosed=!0,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.CANCEL,streamId:streamId,reason:wrapReason(reason)}),cancelCapability.promise}},queueingStrategy)}#createStreamSink(data){const streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj,self=this,action=this.actionHandler[data.action],streamSink={enqueue(chunk,size=1,transfers){var lastDesiredSize;this.isCancelled||(lastDesiredSize=this.desiredSize,this.desiredSize-=size,0<lastDesiredSize&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.ENQUEUE,streamId:streamId,chunk:chunk},transfers))},close(){this.isCancelled||(this.isCancelled=!0,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.CLOSE,streamId:streamId}),delete self.streamSinks[streamId])},error(reason){assert(reason instanceof Error,"error must have a valid reason"),this.isCancelled||(this.isCancelled=!0,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.ERROR,streamId:streamId,reason:wrapReason(reason)}))},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:data.desiredSize,ready:null};streamSink.sinkCapability.resolve(),streamSink.ready=streamSink.sinkCapability.promise,this.streamSinks[streamId]=streamSink,new Promise(function(resolve){resolve(action(data.data,streamSink))}).then(function(){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.START_COMPLETE,streamId:streamId,success:!0})},function(reason){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.START_COMPLETE,streamId:streamId,reason:wrapReason(reason)})})}#processStreamMessage(data){const streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj,streamController=this.streamControllers[streamId],streamSink=this.streamSinks[streamId];switch(data.stream){case StreamKind.START_COMPLETE:data.success?streamController.startCall.resolve():streamController.startCall.reject(wrapReason(data.reason));break;case StreamKind.PULL_COMPLETE:data.success?streamController.pullCall.resolve():streamController.pullCall.reject(wrapReason(data.reason));break;case StreamKind.PULL:streamSink?(streamSink.desiredSize<=0&&0<data.desiredSize&&streamSink.sinkCapability.resolve(),streamSink.desiredSize=data.desiredSize,new Promise(function(resolve){resolve(streamSink.onPull?.())}).then(function(){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.PULL_COMPLETE,streamId:streamId,success:!0})},function(reason){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.PULL_COMPLETE,streamId:streamId,reason:wrapReason(reason)})})):comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.PULL_COMPLETE,streamId:streamId,success:!0});break;case StreamKind.ENQUEUE:assert(streamController,"enqueue should have stream controller"),streamController.isClosed||streamController.controller.enqueue(data.chunk);break;case StreamKind.CLOSE:assert(streamController,"close should have stream controller"),streamController.isClosed||(streamController.isClosed=!0,streamController.controller.close(),this.#deleteStreamController(streamController,streamId));break;case StreamKind.ERROR:assert(streamController,"error should have stream controller"),streamController.controller.error(wrapReason(data.reason)),this.#deleteStreamController(streamController,streamId);break;case StreamKind.CANCEL_COMPLETE:data.success?streamController.cancelCall.resolve():streamController.cancelCall.reject(wrapReason(data.reason)),this.#deleteStreamController(streamController,streamId);break;case StreamKind.CANCEL:streamSink&&(new Promise(function(resolve){resolve(streamSink.onCancel?.(wrapReason(data.reason)))}).then(function(){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.CANCEL_COMPLETE,streamId:streamId,success:!0})},function(reason){comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.CANCEL_COMPLETE,streamId:streamId,reason:wrapReason(reason)})}),streamSink.sinkCapability.reject(wrapReason(data.reason)),streamSink.isCancelled=!0,delete this.streamSinks[streamId]);break;default:throw new Error("Unexpected stream case")}}async#deleteStreamController(streamController,streamId){await Promise.allSettled([streamController.startCall?.promise,streamController.pullCall?.promise,streamController.cancelCall?.promise]),delete this.streamControllers[streamId]}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}class PDFWorkerStream{constructor(msgHandler){this._msgHandler=msgHandler,this._contentLength=null,this._fullRequestReader=null,this._rangeRequestReaders=[]}getFullReader(){return assert(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once."),this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler),this._fullRequestReader}getRangeReader(begin,end){begin=new PDFWorkerStreamRangeReader(begin,end,this._msgHandler);return this._rangeRequestReaders.push(begin),begin}cancelAllRequests(reason){this._fullRequestReader?.cancel(reason);for(const reader of this._rangeRequestReaders.slice(0))reader.cancel(reason)}}class PDFWorkerStreamReader{constructor(msgHandler){this._msgHandler=msgHandler,this.onProgress=null,this._contentLength=null,this._isRangeSupported=!1,this._isStreamingSupported=!1;msgHandler=this._msgHandler.sendWithStream("GetReader");this._reader=msgHandler.getReader(),this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then(data=>{this._isStreamingSupported=data.isStreamingSupported,this._isRangeSupported=data.isRangeSupported,this._contentLength=data.contentLength})}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){var{value,done}=await this._reader.read();return done?{value:void 0,done:!0}:{value:value.buffer,done:!1}}cancel(reason){this._reader.cancel(reason)}}class PDFWorkerStreamRangeReader{constructor(begin,end,msgHandler){this._msgHandler=msgHandler,this.onProgress=null;msgHandler=this._msgHandler.sendWithStream("GetRangeReader",{begin:begin,end:end});this._reader=msgHandler.getReader()}get isStreamingSupported(){return!1}async read(){var{value,done}=await this._reader.read();return done?{value:void 0,done:!0}:{value:value.buffer,done:!1}}cancel(reason){this._reader.cancel(reason)}}class WorkerTask{constructor(name){this.name=name,this.terminated=!1,this._capability=Promise.withResolvers()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}class WorkerMessageHandler{static setup(handler,port){let testMessageProcessed=!1;handler.on("test",function(data){testMessageProcessed||(testMessageProcessed=!0,handler.send("test",data instanceof Uint8Array))}),handler.on("configure",function(data){setVerbosityLevel(data.verbosity)}),handler.on("GetDocRequest",function(data){return WorkerMessageHandler.createDocumentHandler(data,port)})}static createDocumentHandler(docParams,port){let pdfManager,terminated=!1,cancelXHRs=null;const WorkerTasks=new Set,verbosity=getVerbosityLevel(),{docId,apiVersion}=docParams;if("4.2.67"!==apiVersion)throw new Error(`The API version "${apiVersion}" does not match `+'the Worker version "4.2.67".');var enumerableProperties=[];for(const property in[])enumerableProperties.push(property);if(enumerableProperties.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+enumerableProperties.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");var workerHandlerName=docId+"_worker";let handler=new MessageHandler(workerHandlerName,docId,port);function ensureNotTerminated(){if(terminated)throw new Error("Worker was terminated")}function startWorkerTask(task){WorkerTasks.add(task)}function finishWorkerTask(task){task.finish(),WorkerTasks.delete(task)}async function loadDocument(recoveryMode){await pdfManager.ensureDoc("checkHeader"),await pdfManager.ensureDoc("parseStartXRef"),await pdfManager.ensureDoc("parse",[recoveryMode]),await pdfManager.ensureDoc("checkFirstPage",[recoveryMode]),await pdfManager.ensureDoc("checkLastPage",[recoveryMode]);recoveryMode=await pdfManager.ensureDoc("isPureXfa");if(recoveryMode){const task=new WorkerTask("loadXfaFonts");startWorkerTask(task),await Promise.all([pdfManager.loadXfaFonts(handler,task).catch(reason=>{}).then(()=>finishWorkerTask(task)),pdfManager.loadXfaImages()])}var[numPages,fingerprints]=await Promise.all([pdfManager.ensureDoc("numPages"),pdfManager.ensureDoc("fingerprints")]);return{numPages:numPages,fingerprints:fingerprints,htmlForXfa:recoveryMode?await pdfManager.ensureDoc("htmlForXfa"):null}}function getPdfManager({data,password,disableAutoFetch,rangeChunkSize,length,docBaseUrl,enableXfa,evaluatorOptions}){const pdfManagerArgs={source:null,disableAutoFetch:disableAutoFetch,docBaseUrl:docBaseUrl,docId:docId,enableXfa:enableXfa,evaluatorOptions:evaluatorOptions,handler:handler,length:length,password:password,rangeChunkSize:rangeChunkSize},pdfManagerCapability=Promise.withResolvers();let newPdfManager;if(data)try{pdfManagerArgs.source=data,newPdfManager=new LocalPdfManager(pdfManagerArgs),pdfManagerCapability.resolve(newPdfManager)}catch(ex){pdfManagerCapability.reject(ex)}else{let pdfStream,cachedChunks=[];try{pdfStream=new PDFWorkerStream(handler)}catch(ex){return pdfManagerCapability.reject(ex),pdfManagerCapability.promise}const fullRequest=pdfStream.getFullReader();fullRequest.headersReady.then(function(){if(fullRequest.isRangeSupported){pdfManagerArgs.source=pdfStream,pdfManagerArgs.length=fullRequest.contentLength,pdfManagerArgs.disableAutoFetch||=fullRequest.isStreamingSupported,newPdfManager=new NetworkPdfManager(pdfManagerArgs);for(const chunk of cachedChunks)newPdfManager.sendProgressiveData(chunk);cachedChunks=[],pdfManagerCapability.resolve(newPdfManager),cancelXHRs=null}}).catch(function(reason){pdfManagerCapability.reject(reason),cancelXHRs=null});let loaded=0;new Promise(function(resolve,reject){const readChunk=function({value,done}){try{if(ensureNotTerminated(),done){if(!newPdfManager){var pdfFile=arrayBuffersToBytes(cachedChunks);length&&pdfFile.length!==length&&warn("reported HTTP length is different from actual");try{pdfManagerArgs.source=pdfFile,newPdfManager=new LocalPdfManager(pdfManagerArgs),pdfManagerCapability.resolve(newPdfManager)}catch(ex){pdfManagerCapability.reject(ex)}cachedChunks=[]}cancelXHRs=null}else loaded+=value.byteLength,fullRequest.isStreamingSupported||handler.send("DocProgress",{loaded:loaded,total:Math.max(loaded,fullRequest.contentLength||0)}),newPdfManager?newPdfManager.sendProgressiveData(value):cachedChunks.push(value),fullRequest.read().then(readChunk,reject)}catch(e){reject(e)}};fullRequest.read().then(readChunk,reject)}).catch(function(e){pdfManagerCapability.reject(e),cancelXHRs=null}),cancelXHRs=function(reason){pdfStream.cancelAllRequests(reason)}}return pdfManagerCapability.promise}return handler.on("GetPage",function(data){return pdfManager.getPage(data.pageIndex).then(function(page){return Promise.all([pdfManager.ensure(page,"rotate"),pdfManager.ensure(page,"ref"),pdfManager.ensure(page,"userUnit"),pdfManager.ensure(page,"view")]).then(function([rotate,ref,userUnit,view]){return{rotate:rotate,ref:ref,refStr:ref?.toString()??null,userUnit:userUnit,view:view}})})}),handler.on("GetPageIndex",function(data){data=Ref.get(data.num,data.gen);return pdfManager.ensureCatalog("getPageIndex",[data])}),handler.on("GetDestinations",function(data){return pdfManager.ensureCatalog("destinations")}),handler.on("GetDestination",function(data){return pdfManager.ensureCatalog("getDestination",[data.id])}),handler.on("GetPageLabels",function(data){return pdfManager.ensureCatalog("pageLabels")}),handler.on("GetPageLayout",function(data){return pdfManager.ensureCatalog("pageLayout")}),handler.on("GetPageMode",function(data){return pdfManager.ensureCatalog("pageMode")}),handler.on("GetViewerPreferences",function(data){return pdfManager.ensureCatalog("viewerPreferences")}),handler.on("GetOpenAction",function(data){return pdfManager.ensureCatalog("openAction")}),handler.on("GetAttachments",function(data){return pdfManager.ensureCatalog("attachments")}),handler.on("GetDocJSActions",function(data){return pdfManager.ensureCatalog("jsActions")}),handler.on("GetPageJSActions",function({pageIndex}){return pdfManager.getPage(pageIndex).then(function(page){return pdfManager.ensure(page,"jsActions")})}),handler.on("GetOutline",function(data){return pdfManager.ensureCatalog("documentOutline")}),handler.on("GetOptionalContentConfig",function(data){return pdfManager.ensureCatalog("optionalContentConfig")}),handler.on("GetPermissions",function(data){return pdfManager.ensureCatalog("permissions")}),handler.on("GetMetadata",function(data){return Promise.all([pdfManager.ensureDoc("documentInfo"),pdfManager.ensureCatalog("metadata")])}),handler.on("GetMarkInfo",function(data){return pdfManager.ensureCatalog("markInfo")}),handler.on("GetData",function(data){return pdfManager.requestLoadedStream().then(function(stream){return stream.bytes})}),handler.on("GetAnnotations",function({pageIndex,intent}){return pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask("GetAnnotations: page "+pageIndex);return startWorkerTask(task),page.getAnnotationsData(handler,task,intent).then(data=>(finishWorkerTask(task),data),reason=>{throw finishWorkerTask(task),reason})})}),handler.on("GetFieldObjects",function(data){return pdfManager.ensureDoc("fieldObjects")}),handler.on("HasJSActions",function(data){return pdfManager.ensureDoc("hasJSActions")}),handler.on("GetCalculationOrderIds",function(data){return pdfManager.ensureDoc("calculationOrderIds")}),handler.on("SaveDocument",async function({isPureXfa,numPages,annotationStorage,filename}){var globalPromises=[pdfManager.requestLoadedStream(),pdfManager.ensureCatalog("acroForm"),pdfManager.ensureCatalog("acroFormRef"),pdfManager.ensureDoc("startXRef"),pdfManager.ensureDoc("xref"),pdfManager.ensureDoc("linearization"),pdfManager.ensureCatalog("structTreeRoot")],promises=[];const newAnnotationsByPage=isPureXfa?null:getNewAnnotationsMap(annotationStorage),[stream,acroForm,acroFormRef,startXRef,xref,linearization,_structTreeRoot]=await Promise.all(globalPromises),catalogRef=xref.trailer.getRaw("Root")||null;let structTreeRoot;if(newAnnotationsByPage){_structTreeRoot?await _structTreeRoot.canUpdateStructTree({pdfManager:pdfManager,xref:xref,newAnnotationsByPage:newAnnotationsByPage})&&(structTreeRoot=_structTreeRoot):await StructTreeRoot.canCreateStructureTree({catalogRef:catalogRef,pdfManager:pdfManager,newAnnotationsByPage:newAnnotationsByPage})&&(structTreeRoot=null);const imagePromises=AnnotationFactory.generateImages(annotationStorage.values(),xref,pdfManager.evaluatorOptions.isOffscreenCanvasSupported);var newAnnotationPromises=void 0===structTreeRoot?promises:[];for(const[pageIndex,annotations]of newAnnotationsByPage)newAnnotationPromises.push(pdfManager.getPage(pageIndex).then(page=>{const task=new WorkerTask("Save (editor): page "+pageIndex);return page.saveNewAnnotations(handler,task,annotations,imagePromises).finally(function(){finishWorkerTask(task)})}));null===structTreeRoot?promises.push(Promise.all(newAnnotationPromises).then(async newRefs=>(await StructTreeRoot.createStructureTree({newAnnotationsByPage:newAnnotationsByPage,xref:xref,catalogRef:catalogRef,pdfManager:pdfManager,newRefs:newRefs}),newRefs))):structTreeRoot&&promises.push(Promise.all(newAnnotationPromises).then(async newRefs=>(await structTreeRoot.updateStructureTree({newAnnotationsByPage:newAnnotationsByPage,pdfManager:pdfManager,newRefs:newRefs}),newRefs)))}if(isPureXfa)promises.push(pdfManager.serializeXfaData(annotationStorage));else for(let pageIndex=0;pageIndex<numPages;pageIndex++)promises.push(pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask("Save: page "+pageIndex);return page.save(handler,task,annotationStorage).finally(function(){finishWorkerTask(task)})}));globalPromises=await Promise.all(promises);let newRefs=[],xfaData=null;if(isPureXfa){if(!(xfaData=globalPromises[0]))return stream.bytes}else if(0===(newRefs=globalPromises.flat(2)).length)return stream.bytes;var isPureXfa=acroFormRef&&acroForm instanceof Dict&&newRefs.some(ref=>ref.needAppearances),xfa=acroForm instanceof Dict&&acroForm.get("XFA")||null;let xfaDatasetsRef=null,hasXfaDatasetsEntry=!1;if(Array.isArray(xfa)){for(let i=0,ii=xfa.length;i<ii;i+=2)"datasets"===xfa[i]&&(xfaDatasetsRef=xfa[i+1],hasXfaDatasetsEntry=!0);null===xfaDatasetsRef&&(xfaDatasetsRef=xref.getNewTemporaryRef())}else xfa&&warn("Unsupported XFA type.");let newXrefInfo=Object.create(null);if(xref.trailer){const infoObj=Object.create(null);globalPromises=xref.trailer.get("Info")||null;globalPromises instanceof Dict&&globalPromises.forEach((key,value)=>{"string"==typeof value&&(infoObj[key]=stringToPDFString(value))}),newXrefInfo={rootRef:catalogRef,encryptRef:xref.trailer.getRaw("Encrypt")||null,newRef:xref.getNewTemporaryRef(),infoRef:xref.trailer.getRaw("Info")||null,info:infoObj,fileIds:xref.trailer.get("ID")||null,startXRef:linearization?startXRef:xref.lastXRefStreamPos??startXRef,filename:filename}}return incrementalUpdate({originalData:stream.bytes,xrefInfo:newXrefInfo,newRefs:newRefs,xref:xref,hasXfa:!!xfa,xfaDatasetsRef:xfaDatasetsRef,hasXfaDatasetsEntry:hasXfaDatasetsEntry,needAppearances:isPureXfa,acroFormRef:acroFormRef,acroForm:acroForm,xfaData:xfaData,useXrefStream:isDict(xref.topDict,"XRef")}).finally(()=>{xref.resetNewTemporaryRef()})}),handler.on("GetOperatorList",function(data,sink){const pageIndex=data.pageIndex;pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask("GetOperatorList: page "+pageIndex),start=(startWorkerTask(task),verbosity>=VerbosityLevel.INFOS?Date.now():0);page.getOperatorList({handler:handler,sink:sink,task:task,intent:data.intent,cacheKey:data.cacheKey,annotationStorage:data.annotationStorage}).then(function(operatorListInfo){finishWorkerTask(task),start&&info(`page=${pageIndex+1} - getOperatorList: time=`+(Date.now()-start)+"ms, len="+operatorListInfo.length),sink.close()},function(reason){finishWorkerTask(task),task.terminated||sink.error(reason)})})}),handler.on("GetTextContent",function(data,sink){const{pageIndex,includeMarkedContent,disableNormalization}=data;pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask("GetTextContent: page "+pageIndex),start=(startWorkerTask(task),verbosity>=VerbosityLevel.INFOS?Date.now():0);page.extractTextContent({handler:handler,task:task,sink:sink,includeMarkedContent:includeMarkedContent,disableNormalization:disableNormalization}).then(function(){finishWorkerTask(task),start&&info(`page=${pageIndex+1} - getTextContent: time=`+(Date.now()-start)+"ms"),sink.close()},function(reason){finishWorkerTask(task),task.terminated||sink.error(reason)})})}),handler.on("GetStructTree",function(data){return pdfManager.getPage(data.pageIndex).then(function(page){return pdfManager.ensure(page,"getStructTree")})}),handler.on("FontFallback",function(data){return pdfManager.fontFallback(data.id,handler)}),handler.on("Cleanup",function(data){return pdfManager.cleanup(!0)}),handler.on("Terminate",function(data){terminated=!0;var cleanupPromise,waitOn=[];pdfManager?(pdfManager.terminate(new AbortException("Worker was terminated.")),cleanupPromise=pdfManager.cleanup(),waitOn.push(cleanupPromise),pdfManager=null):clearGlobalCaches(),cancelXHRs&&cancelXHRs(new AbortException("Worker was terminated."));for(const task of WorkerTasks)waitOn.push(task.finished),task.terminate();return Promise.all(waitOn).then(function(){handler.destroy(),handler=null})}),handler.on("Ready",function(data){!function(data){function onSuccess(doc){ensureNotTerminated(),handler.send("GetDoc",{pdfInfo:doc})}function onFailure(ex){if(ensureNotTerminated(),ex instanceof PasswordException){const task=new WorkerTask("PasswordException: response "+ex.code);startWorkerTask(task),handler.sendWithPromise("PasswordRequest",ex).then(function({password}){finishWorkerTask(task),pdfManager.updatePassword(password),pdfManagerReady()}).catch(function(){finishWorkerTask(task),handler.send("DocException",ex)})}else ex instanceof InvalidPDFException||ex instanceof MissingPDFException||ex instanceof UnexpectedResponseException||ex instanceof UnknownErrorException?handler.send("DocException",ex):handler.send("DocException",new UnknownErrorException(ex.message,ex.toString()))}function pdfManagerReady(){ensureNotTerminated(),loadDocument(!1).then(onSuccess,function(reason){ensureNotTerminated(),reason instanceof XRefParseException?pdfManager.requestLoadedStream().then(function(){ensureNotTerminated(),loadDocument(!0).then(onSuccess,onFailure)}):onFailure(reason)})}ensureNotTerminated(),getPdfManager(data).then(function(newPdfManager){if(terminated)throw newPdfManager.terminate(new AbortException("Worker was terminated.")),new Error("Worker was terminated");(pdfManager=newPdfManager).requestLoadedStream(!0).then(stream=>{handler.send("DataLoaded",{length:stream.bytes.byteLength})})}).then(pdfManagerReady,onFailure)}(docParams),docParams=null}),workerHandlerName}static initializeFromPort(port){var handler=new MessageHandler("worker","main",port);WorkerMessageHandler.setup(handler,port),handler.send("ready",null)}}function isMessagePort(maybePort){return"function"==typeof maybePort.postMessage&&"onmessage"in maybePort}"undefined"==typeof window&&!isNodeJS&&"undefined"!=typeof self&&isMessagePort(self)&&WorkerMessageHandler.initializeFromPort(self);const pdfjsVersion="4.2.67",pdfjsBuild="49b388101";var __webpack_exports__WorkerMessageHandler=__webpack_exports__.WorkerMessageHandler;export{__webpack_exports__WorkerMessageHandler as WorkerMessageHandler};
|