Files
doneit-web/.angular/cache/14.2.12/babel-webpack/c163f55ab01e6af71ac4b8e75a0c8282.json
T
Eudes Inácio 53b71ea16f its working
2023-06-30 09:54:21 +01:00

1 line
5.0 MiB

{"ast":null,"code":"/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define(\"pdfjs-dist/build/pdf.worker\", [], factory);else if (typeof exports === 'object') exports[\"pdfjs-dist/build/pdf.worker\"] = factory();else root[\"pdfjs-dist/build/pdf.worker\"] = root.pdfjsDistBuildPdfWorker = factory();\n})(this, function () {\n return (/******/function (modules) {\n // webpackBootstrap\n /******/ // The module cache\n /******/\n var installedModules = {};\n /******/\n /******/ // The require function\n /******/\n function __w_pdfjs_require__(moduleId) {\n /******/\n /******/ // Check if module is in cache\n /******/if (installedModules[moduleId]) {\n /******/return installedModules[moduleId].exports;\n /******/\n }\n /******/ // Create a new module (and put it into the cache)\n /******/\n var module = installedModules[moduleId] = {\n /******/i: moduleId,\n /******/l: false,\n /******/exports: {}\n /******/\n };\n /******/\n /******/ // Execute the module function\n /******/\n modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n /******/\n /******/ // Flag the module as loaded\n /******/\n module.l = true;\n /******/\n /******/ // Return the exports of the module\n /******/\n return module.exports;\n /******/\n }\n /******/\n /******/\n /******/ // expose the modules object (__webpack_modules__)\n /******/\n __w_pdfjs_require__.m = modules;\n /******/\n /******/ // expose the module cache\n /******/\n __w_pdfjs_require__.c = installedModules;\n /******/\n /******/ // identity function for calling harmony imports with the correct context\n /******/\n __w_pdfjs_require__.i = function (value) {\n return value;\n };\n /******/\n /******/ // define getter function for harmony exports\n /******/\n __w_pdfjs_require__.d = function (exports, name, getter) {\n /******/if (!__w_pdfjs_require__.o(exports, name)) {\n /******/Object.defineProperty(exports, name, {\n /******/configurable: false,\n /******/enumerable: true,\n /******/get: getter\n /******/\n });\n /******/\n }\n /******/\n };\n /******/\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/\n __w_pdfjs_require__.n = function (module) {\n /******/var getter = module && module.__esModule ? /******/function getDefault() {\n return module['default'];\n } : /******/function getModuleExports() {\n return module;\n };\n /******/\n __w_pdfjs_require__.d(getter, 'a', getter);\n /******/\n return getter;\n /******/\n };\n /******/\n /******/ // Object.prototype.hasOwnProperty.call\n /******/\n __w_pdfjs_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n /******/ // __webpack_public_path__\n /******/\n __w_pdfjs_require__.p = \"\";\n /******/\n /******/ // Load entry module and return exports\n /******/\n return __w_pdfjs_require__(__w_pdfjs_require__.s = 103);\n /******/\n }\n /************************************************************************/\n /******/([/* 0 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.loadJpegStream = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isNodeJS = exports.isSpace = exports.isString = exports.isNum = exports.isInt = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.isArray = exports.info = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.createBlob = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.StatTimer = exports.PasswordResponses = exports.PasswordException = exports.PageViewport = exports.NotImplementedException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.MessageHandler = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VERBOSITY_LEVELS = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined;\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n __w_pdfjs_require__(104);\n var _streams_polyfill = __w_pdfjs_require__(106);\n var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n var NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display'\n };\n var TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n };\n var ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n };\n var AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n };\n var AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n };\n var AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n };\n var AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n };\n var StreamType = {\n UNKNOWN: 0,\n FLATE: 1,\n LZW: 2,\n DCT: 3,\n JPX: 4,\n JBIG: 5,\n A85: 6,\n AHX: 7,\n CCF: 8,\n RL: 9\n };\n var FontType = {\n UNKNOWN: 0,\n TYPE1: 1,\n TYPE1C: 2,\n CIDFONTTYPE0: 3,\n CIDFONTTYPE0C: 4,\n TRUETYPE: 5,\n CIDFONTTYPE2: 6,\n TYPE3: 7,\n OPENTYPE: 8,\n TYPE0: 9,\n MMTYPE1: 10\n };\n var VERBOSITY_LEVELS = {\n errors: 0,\n warnings: 1,\n infos: 5\n };\n var CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n };\n var OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n };\n var verbosity = VERBOSITY_LEVELS.warnings;\n function setVerbosityLevel(level) {\n verbosity = level;\n }\n function getVerbosityLevel() {\n return verbosity;\n }\n function info(msg) {\n if (verbosity >= VERBOSITY_LEVELS.infos) {\n console.log('Info: ' + msg);\n }\n }\n function warn(msg) {\n if (verbosity >= VERBOSITY_LEVELS.warnings) {\n console.log('Warning: ' + msg);\n }\n }\n function deprecated(details) {\n console.log('Deprecated API usage: ' + details);\n }\n function unreachable(msg) {\n throw new Error(msg);\n }\n function assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n }\n var UNSUPPORTED_FEATURES = {\n unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font'\n };\n function isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new URL(baseUrl);\n if (!base.origin || base.origin === 'null') {\n return false;\n }\n } catch (e) {\n return false;\n }\n var other = new URL(otherUrl, base);\n return base.origin === other.origin;\n }\n function isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n default:\n return false;\n }\n }\n function createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n return null;\n }\n function shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n }\n function getLookupTableFactory(initializer) {\n var lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n }\n var PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n };\n var PasswordException = function PasswordExceptionClosure() {\n function PasswordException(msg, code) {\n this.name = 'PasswordException';\n this.message = msg;\n this.code = code;\n }\n PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n return PasswordException;\n }();\n var UnknownErrorException = function UnknownErrorExceptionClosure() {\n function UnknownErrorException(msg, details) {\n this.name = 'UnknownErrorException';\n this.message = msg;\n this.details = details;\n }\n UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n return UnknownErrorException;\n }();\n var InvalidPDFException = function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n return InvalidPDFException;\n }();\n var MissingPDFException = function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n return MissingPDFException;\n }();\n var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {\n function UnexpectedResponseException(msg, status) {\n this.name = 'UnexpectedResponseException';\n this.message = msg;\n this.status = status;\n }\n UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n return UnexpectedResponseException;\n }();\n var NotImplementedException = function NotImplementedExceptionClosure() {\n function NotImplementedException(msg) {\n this.message = msg;\n }\n NotImplementedException.prototype = new Error();\n NotImplementedException.prototype.name = 'NotImplementedException';\n NotImplementedException.constructor = NotImplementedException;\n return NotImplementedException;\n }();\n var MissingDataException = function MissingDataExceptionClosure() {\n function MissingDataException(begin, end) {\n this.begin = begin;\n this.end = end;\n this.message = 'Missing data [' + begin + ', ' + end + ')';\n }\n MissingDataException.prototype = new Error();\n MissingDataException.prototype.name = 'MissingDataException';\n MissingDataException.constructor = MissingDataException;\n return MissingDataException;\n }();\n var XRefParseException = function XRefParseExceptionClosure() {\n function XRefParseException(msg) {\n this.message = msg;\n }\n XRefParseException.prototype = new Error();\n XRefParseException.prototype.name = 'XRefParseException';\n XRefParseException.constructor = XRefParseException;\n return XRefParseException;\n }();\n var FormatError = function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n return FormatError;\n }();\n var AbortException = function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n return AbortException;\n }();\n var NullCharactersRegExp = /\\x00/g;\n function removeNullCharacters(str) {\n if (typeof str !== 'string') {\n warn('The argument for removeNullCharacters must be a string.');\n return str;\n }\n return str.replace(NullCharactersRegExp, '');\n }\n function bytesToString(bytes) {\n assert(bytes !== null && (typeof bytes === 'undefined' ? 'undefined' : _typeof(bytes)) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n var strBuf = [];\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join('');\n }\n function stringToBytes(str) {\n assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n var length = str.length;\n var bytes = new Uint8Array(length);\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xFF;\n }\n return bytes;\n }\n function arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n }\n function arraysToBytes(arr) {\n if (arr.length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n var resultLength = 0;\n var i,\n ii = arr.length;\n var item, itemLength;\n for (i = 0; i < ii; i++) {\n item = arr[i];\n itemLength = arrayByteLength(item);\n resultLength += itemLength;\n }\n var pos = 0;\n var data = new Uint8Array(resultLength);\n for (i = 0; i < ii; i++) {\n item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === 'string') {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n }\n function string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n }\n function log2(x) {\n var n = 1,\n i = 0;\n while (x > n) {\n n <<= 1;\n i++;\n }\n return i;\n }\n function readInt8(data, start) {\n return data[start] << 24 >> 24;\n }\n function readUint16(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n }\n function readUint32(data, offset) {\n return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n }\n function isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n }\n function isEvalSupported() {\n try {\n new Function('');\n return true;\n } catch (e) {\n return false;\n }\n }\n var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\n var Util = function UtilClosure() {\n function Util() {}\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join('');\n };\n Util.transform = function Util_transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n };\n Util.applyTransform = function Util_applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n };\n Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n };\n Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n };\n Util.inverseTransform = function Util_inverseTransform(m) {\n var d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n };\n Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n };\n Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {\n var transpose = [m[0], m[2], m[1], m[3]];\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n var first = (a + d) / 2;\n var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n };\n Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n };\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n result = [];\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return false;\n }\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return false;\n }\n return result;\n };\n Util.sign = function Util_sign(num) {\n return num < 0 ? -1 : 1;\n };\n var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];\n Util.toRoman = function Util_toRoman(number, lowerCase) {\n assert(isInt(number) && number > 0, 'The number should be a positive integer.');\n var pos,\n romanBuf = [];\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push('M');\n }\n pos = number / 100 | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n pos = number / 10 | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n var romanStr = romanBuf.join('');\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n };\n Util.appendToArray = function Util_appendToArray(arr1, arr2) {\n Array.prototype.push.apply(arr1, arr2);\n };\n Util.prependToArray = function Util_prependToArray(arr1, arr2) {\n Array.prototype.unshift.apply(arr1, arr2);\n };\n Util.extendObj = function extendObj(obj1, obj2) {\n for (var key in obj2) {\n obj1[key] = obj2[key];\n }\n };\n Util.getInheritableProperty = function Util_getInheritableProperty(dict, name, getArray) {\n while (dict && !dict.has(name)) {\n dict = dict.get('Parent');\n }\n if (!dict) {\n return null;\n }\n return getArray ? dict.getArray(name) : dict.get(name);\n };\n Util.inherit = function Util_inherit(sub, base, prototype) {\n sub.prototype = Object.create(base.prototype);\n sub.prototype.constructor = sub;\n for (var prop in prototype) {\n sub.prototype[prop] = prototype[prop];\n }\n };\n Util.loadScript = function Util_loadScript(src, callback) {\n var script = document.createElement('script');\n var loaded = false;\n script.setAttribute('src', src);\n if (callback) {\n script.onload = function () {\n if (!loaded) {\n callback();\n }\n loaded = true;\n };\n }\n document.getElementsByTagName('head')[0].appendChild(script);\n };\n return Util;\n }();\n var PageViewport = function PageViewportClosure() {\n function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n var centerX = (viewBox[2] + viewBox[0]) / 2;\n var centerY = (viewBox[3] + viewBox[1]) / 2;\n var rotateA, rotateB, rotateC, rotateD;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n default:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n var offsetCanvasX, offsetCanvasY;\n var width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n this.fontScale = scale;\n }\n PageViewport.prototype = {\n clone: function PageViewPort_clone(args) {\n args = args || {};\n var scale = 'scale' in args ? args.scale : this.scale;\n var rotation = 'rotation' in args ? args.rotation : this.rotation;\n return new PageViewport(this.viewBox.slice(), scale, rotation, this.offsetX, this.offsetY, args.dontFlip);\n },\n convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) {\n return Util.applyTransform([x, y], this.transform);\n },\n convertToViewportRectangle: function PageViewport_convertToViewportRectangle(rect) {\n var tl = Util.applyTransform([rect[0], rect[1]], this.transform);\n var br = Util.applyTransform([rect[2], rect[3]], this.transform);\n return [tl[0], tl[1], br[0], br[1]];\n },\n convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) {\n return Util.applyInverseTransform([x, y], this.transform);\n }\n };\n return PageViewport;\n }();\n var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\n function stringToPDFString(str) {\n var i,\n n = str.length,\n strBuf = [];\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n for (i = 2; i < n; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else {\n for (i = 0; i < n; ++i) {\n var code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n return strBuf.join('');\n }\n function stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n }\n function utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n }\n function isEmptyObj(obj) {\n for (var key in obj) {\n return false;\n }\n return true;\n }\n function isBool(v) {\n return typeof v === 'boolean';\n }\n function isInt(v) {\n return typeof v === 'number' && (v | 0) === v;\n }\n function isNum(v) {\n return typeof v === 'number';\n }\n function isString(v) {\n return typeof v === 'string';\n }\n function isArray(v) {\n return v instanceof Array;\n }\n function isArrayBuffer(v) {\n return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.byteLength !== undefined;\n }\n function isSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;\n }\n function isNodeJS() {\n return (typeof process === 'undefined' ? 'undefined' : _typeof(process)) === 'object' && process + '' === '[object process]';\n }\n function createPromiseCapability() {\n var capability = {};\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = resolve;\n capability.reject = reject;\n });\n return capability;\n }\n var StatTimer = function StatTimerClosure() {\n function rpad(str, pad, length) {\n while (str.length < length) {\n str += pad;\n }\n return str;\n }\n function StatTimer() {\n this.started = Object.create(null);\n this.times = [];\n this.enabled = true;\n }\n StatTimer.prototype = {\n time: function StatTimer_time(name) {\n if (!this.enabled) {\n return;\n }\n if (name in this.started) {\n warn('Timer is already running for ' + name);\n }\n this.started[name] = Date.now();\n },\n timeEnd: function StatTimer_timeEnd(name) {\n if (!this.enabled) {\n return;\n }\n if (!(name in this.started)) {\n warn('Timer has not been started for ' + name);\n }\n this.times.push({\n 'name': name,\n 'start': this.started[name],\n 'end': Date.now()\n });\n delete this.started[name];\n },\n toString: function StatTimer_toString() {\n var i, ii;\n var times = this.times;\n var out = '';\n var longest = 0;\n for (i = 0, ii = times.length; i < ii; ++i) {\n var name = times[i]['name'];\n if (name.length > longest) {\n longest = name.length;\n }\n }\n for (i = 0, ii = times.length; i < ii; ++i) {\n var span = times[i];\n var duration = span.end - span.start;\n out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\\n';\n }\n return out;\n }\n };\n return StatTimer;\n }();\n var createBlob = function createBlob(data, contentType) {\n if (typeof Blob !== 'undefined') {\n return new Blob([data], {\n type: contentType\n });\n }\n throw new Error('The \"Blob\" constructor is not supported.');\n };\n var createObjectURL = function createObjectURLClosure() {\n var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n return function createObjectURL(data, contentType) {\n var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!forceDataSchema && URL.createObjectURL) {\n var blob = createBlob(data, contentType);\n return URL.createObjectURL(blob);\n }\n var buffer = 'data:' + contentType + ';base64,';\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xFF;\n var b2 = data[i + 1] & 0xFF;\n var b3 = data[i + 2] & 0xFF;\n var d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64;\n var d4 = i + 2 < ii ? b3 & 0x3F : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n }();\n function resolveCall(fn, args) {\n var thisArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!fn) {\n return Promise.resolve(undefined);\n }\n return new Promise(function (resolve, reject) {\n resolve(fn.apply(thisArg, args));\n });\n }\n function wrapReason(reason) {\n if ((typeof reason === 'undefined' ? 'undefined' : _typeof(reason)) !== 'object') {\n return reason;\n }\n switch (reason.name) {\n case 'AbortException':\n return new AbortException(reason.message);\n case 'MissingPDFException':\n return new MissingPDFException(reason.message);\n case 'UnexpectedResponseException':\n return new UnexpectedResponseException(reason.message, reason.status);\n default:\n return new UnknownErrorException(reason.message, reason.details);\n }\n }\n function resolveOrReject(capability, success, reason) {\n if (success) {\n capability.resolve();\n } else {\n capability.reject(reason);\n }\n }\n function finalize(promise) {\n return Promise.resolve(promise).catch(function () {});\n }\n function MessageHandler(sourceName, targetName, comObj) {\n var _this = this;\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.postMessageTransfers = true;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n var ah = this.actionHandler = Object.create(null);\n this._onComObjOnMessage = function (event) {\n var data = event.data;\n if (data.targetName !== _this.sourceName) {\n return;\n }\n if (data.stream) {\n _this._processStreamMessage(data);\n } else if (data.isReply) {\n var callbackId = data.callbackId;\n if (data.callbackId in callbacksCapabilities) {\n var callback = callbacksCapabilities[callbackId];\n delete callbacksCapabilities[callbackId];\n if ('error' in data) {\n callback.reject(wrapReason(data.error));\n } else {\n callback.resolve(data.data);\n }\n } else {\n throw new Error('Cannot resolve callback ' + callbackId);\n }\n } else if (data.action in ah) {\n var action = ah[data.action];\n if (data.callbackId) {\n var _sourceName = _this.sourceName;\n var _targetName = data.sourceName;\n Promise.resolve().then(function () {\n return action[0].call(action[1], data.data);\n }).then(function (result) {\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n isReply: true,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n if (reason instanceof Error) {\n reason = reason + '';\n }\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n isReply: true,\n callbackId: data.callbackId,\n error: reason\n });\n });\n } else if (data.streamId) {\n _this._createStreamSink(data);\n } else {\n action[0].call(action[1], data.data);\n }\n } else {\n throw new Error('Unknown action from worker: ' + data.action);\n }\n };\n comObj.addEventListener('message', this._onComObjOnMessage);\n }\n MessageHandler.prototype = {\n on: function on(actionName, handler, scope) {\n var ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error('There is already an actionName called \"' + actionName + '\"');\n }\n ah[actionName] = [handler, scope];\n },\n send: function send(actionName, data, transfers) {\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data\n };\n this.postMessage(message, transfers);\n },\n sendWithPromise: function sendWithPromise(actionName, data, transfers) {\n var callbackId = this.callbackId++;\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data,\n callbackId: callbackId\n };\n var capability = createPromiseCapability();\n this.callbacksCapabilities[callbackId] = capability;\n try {\n this.postMessage(message, transfers);\n } catch (e) {\n capability.reject(e);\n }\n return capability.promise;\n },\n sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {\n var _this2 = this;\n var streamId = this.streamId++;\n var sourceName = this.sourceName;\n var targetName = this.targetName;\n return new _streams_polyfill.ReadableStream({\n start: function start(controller) {\n var startCapability = createPromiseCapability();\n _this2.streamControllers[streamId] = {\n controller: controller,\n startCall: startCapability,\n isClosed: false\n };\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n action: actionName,\n streamId: streamId,\n data: data,\n desiredSize: controller.desiredSize\n });\n return startCapability.promise;\n },\n pull: function pull(controller) {\n var pullCapability = createPromiseCapability();\n _this2.streamControllers[streamId].pullCall = pullCapability;\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'pull',\n streamId: streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: function cancel(reason) {\n var cancelCapability = createPromiseCapability();\n _this2.streamControllers[streamId].cancelCall = cancelCapability;\n _this2.streamControllers[streamId].isClosed = true;\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'cancel',\n reason: reason,\n streamId: streamId\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n },\n _createStreamSink: function _createStreamSink(data) {\n var _this3 = this;\n var self = this;\n var action = this.actionHandler[data.action];\n var streamId = data.streamId;\n var desiredSize = data.desiredSize;\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var capability = createPromiseCapability();\n var sendStreamRequest = function sendStreamRequest(_ref) {\n var stream = _ref.stream,\n chunk = _ref.chunk,\n transfers = _ref.transfers,\n success = _ref.success,\n reason = _ref.reason;\n _this3.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: stream,\n streamId: streamId,\n chunk: chunk,\n success: success,\n reason: reason\n }, transfers);\n };\n var streamSink = {\n enqueue: function enqueue(chunk) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var transfers = arguments[2];\n if (this.isCancelled) {\n return;\n }\n var lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n sendStreamRequest({\n stream: 'enqueue',\n chunk: chunk,\n transfers: transfers\n });\n },\n close: function close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({\n stream: 'close'\n });\n delete self.streamSinks[streamId];\n },\n error: function error(reason) {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({\n stream: 'error',\n reason: reason\n });\n },\n sinkCapability: capability,\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {\n sendStreamRequest({\n stream: 'start_complete',\n success: true\n });\n }, function (reason) {\n sendStreamRequest({\n stream: 'start_complete',\n success: false,\n reason: reason\n });\n });\n },\n _processStreamMessage: function _processStreamMessage(data) {\n var _this4 = this;\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var streamId = data.streamId;\n var sendStreamResponse = function sendStreamResponse(_ref2) {\n var stream = _ref2.stream,\n success = _ref2.success,\n reason = _ref2.reason;\n _this4.comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: stream,\n success: success,\n streamId: streamId,\n reason: reason\n });\n };\n var deleteStreamController = function deleteStreamController() {\n Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {\n return capability && finalize(capability.promise);\n })).then(function () {\n delete _this4.streamControllers[data.streamId];\n });\n };\n switch (data.stream) {\n case 'start_complete':\n resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));\n break;\n case 'pull_complete':\n resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));\n break;\n case 'pull':\n if (!this.streamSinks[data.streamId]) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n break;\n }\n if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[data.streamId].sinkCapability.resolve();\n }\n this.streamSinks[data.streamId].desiredSize = data.desiredSize;\n resolveCall(this.streamSinks[data.streamId].onPull).then(function () {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n }, function (reason) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: false,\n reason: reason\n });\n });\n break;\n case 'enqueue':\n assert(this.streamControllers[data.streamId], 'enqueue should have stream controller');\n if (!this.streamControllers[data.streamId].isClosed) {\n this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n }\n break;\n case 'close':\n assert(this.streamControllers[data.streamId], 'close should have stream controller');\n if (this.streamControllers[data.streamId].isClosed) {\n break;\n }\n this.streamControllers[data.streamId].isClosed = true;\n this.streamControllers[data.streamId].controller.close();\n deleteStreamController();\n break;\n case 'error':\n assert(this.streamControllers[data.streamId], 'error should have stream controller');\n this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel_complete':\n resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel':\n if (!this.streamSinks[data.streamId]) {\n break;\n }\n resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {\n sendStreamResponse({\n stream: 'cancel_complete',\n success: true\n });\n }, function (reason) {\n sendStreamResponse({\n stream: 'cancel_complete',\n success: false,\n reason: reason\n });\n });\n this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[data.streamId].isCancelled = true;\n delete this.streamSinks[data.streamId];\n break;\n default:\n throw new Error('Unexpected stream case');\n }\n },\n postMessage: function postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n },\n destroy: function destroy() {\n this.comObj.removeEventListener('message', this._onComObjOnMessage);\n }\n };\n function loadJpegStream(id, imageUrl, objs) {\n var img = new Image();\n img.onload = function loadJpegStream_onloadClosure() {\n objs.resolve(id, img);\n };\n img.onerror = function loadJpegStream_onerrorClosure() {\n objs.resolve(id, null);\n warn('Error during JPEG image loading');\n };\n img.src = imageUrl;\n }\n exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\n exports.IDENTITY_MATRIX = IDENTITY_MATRIX;\n exports.OPS = OPS;\n exports.VERBOSITY_LEVELS = VERBOSITY_LEVELS;\n exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\n exports.AnnotationBorderStyleType = AnnotationBorderStyleType;\n exports.AnnotationFieldFlag = AnnotationFieldFlag;\n exports.AnnotationFlag = AnnotationFlag;\n exports.AnnotationType = AnnotationType;\n exports.FontType = FontType;\n exports.ImageKind = ImageKind;\n exports.CMapCompressionType = CMapCompressionType;\n exports.AbortException = AbortException;\n exports.InvalidPDFException = InvalidPDFException;\n exports.MessageHandler = MessageHandler;\n exports.MissingDataException = MissingDataException;\n exports.MissingPDFException = MissingPDFException;\n exports.NativeImageDecoding = NativeImageDecoding;\n exports.NotImplementedException = NotImplementedException;\n exports.PageViewport = PageViewport;\n exports.PasswordException = PasswordException;\n exports.PasswordResponses = PasswordResponses;\n exports.StatTimer = StatTimer;\n exports.StreamType = StreamType;\n exports.TextRenderingMode = TextRenderingMode;\n exports.UnexpectedResponseException = UnexpectedResponseException;\n exports.UnknownErrorException = UnknownErrorException;\n exports.Util = Util;\n exports.XRefParseException = XRefParseException;\n exports.FormatError = FormatError;\n exports.arrayByteLength = arrayByteLength;\n exports.arraysToBytes = arraysToBytes;\n exports.assert = assert;\n exports.bytesToString = bytesToString;\n exports.createBlob = createBlob;\n exports.createPromiseCapability = createPromiseCapability;\n exports.createObjectURL = createObjectURL;\n exports.deprecated = deprecated;\n exports.getLookupTableFactory = getLookupTableFactory;\n exports.getVerbosityLevel = getVerbosityLevel;\n exports.info = info;\n exports.isArray = isArray;\n exports.isArrayBuffer = isArrayBuffer;\n exports.isBool = isBool;\n exports.isEmptyObj = isEmptyObj;\n exports.isInt = isInt;\n exports.isNum = isNum;\n exports.isString = isString;\n exports.isSpace = isSpace;\n exports.isNodeJS = isNodeJS;\n exports.isSameOrigin = isSameOrigin;\n exports.createValidAbsoluteUrl = createValidAbsoluteUrl;\n exports.isLittleEndian = isLittleEndian;\n exports.isEvalSupported = isEvalSupported;\n exports.loadJpegStream = loadJpegStream;\n exports.log2 = log2;\n exports.readInt8 = readInt8;\n exports.readUint16 = readUint16;\n exports.readUint32 = readUint32;\n exports.removeNullCharacters = removeNullCharacters;\n exports.ReadableStream = _streams_polyfill.ReadableStream;\n exports.setVerbosityLevel = setVerbosityLevel;\n exports.shadow = shadow;\n exports.string32 = string32;\n exports.stringToBytes = stringToBytes;\n exports.stringToPDFString = stringToPDFString;\n exports.stringToUTF8String = stringToUTF8String;\n exports.utf8StringToString = utf8StringToString;\n exports.warn = warn;\n exports.unreachable = unreachable;\n\n /***/\n }, /* 1 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.isStream = exports.isRefsEqual = exports.isRef = exports.isName = exports.isDict = exports.isCmd = exports.isEOF = exports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = undefined;\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _util = __w_pdfjs_require__(0);\n var EOF = {};\n var Name = function NameClosure() {\n function Name(name) {\n this.name = name;\n }\n Name.prototype = {};\n var nameCache = Object.create(null);\n Name.get = function Name_get(name) {\n var nameValue = nameCache[name];\n return nameValue ? nameValue : nameCache[name] = new Name(name);\n };\n return Name;\n }();\n var Cmd = function CmdClosure() {\n function Cmd(cmd) {\n this.cmd = cmd;\n }\n Cmd.prototype = {};\n var cmdCache = Object.create(null);\n Cmd.get = function Cmd_get(cmd) {\n var cmdValue = cmdCache[cmd];\n return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);\n };\n return Cmd;\n }();\n var Dict = function DictClosure() {\n var nonSerializable = function nonSerializableClosure() {\n return nonSerializable;\n };\n function Dict(xref) {\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable;\n }\n Dict.prototype = {\n assignXref: function Dict_assignXref(newXref) {\n this.xref = newXref;\n },\n get: function Dict_get(key1, key2, key3) {\n var value;\n var xref = this.xref,\n suppressEncryption = this.suppressEncryption;\n if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {\n return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n }\n if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {\n return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n }\n value = this._map[key3] || null;\n return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n },\n getAsync: function Dict_getAsync(key1, key2, key3) {\n var value;\n var xref = this.xref,\n suppressEncryption = this.suppressEncryption;\n if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {\n if (xref) {\n return xref.fetchIfRefAsync(value, suppressEncryption);\n }\n return Promise.resolve(value);\n }\n if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {\n if (xref) {\n return xref.fetchIfRefAsync(value, suppressEncryption);\n }\n return Promise.resolve(value);\n }\n value = this._map[key3] || null;\n if (xref) {\n return xref.fetchIfRefAsync(value, suppressEncryption);\n }\n return Promise.resolve(value);\n },\n getArray: function Dict_getArray(key1, key2, key3) {\n var value = this.get(key1, key2, key3);\n var xref = this.xref,\n suppressEncryption = this.suppressEncryption;\n if (!(0, _util.isArray)(value) || !xref) {\n return value;\n }\n value = value.slice();\n for (var i = 0, ii = value.length; i < ii; i++) {\n if (!isRef(value[i])) {\n continue;\n }\n value[i] = xref.fetch(value[i], suppressEncryption);\n }\n return value;\n },\n getRaw: function Dict_getRaw(key) {\n return this._map[key];\n },\n getKeys: function Dict_getKeys() {\n return Object.keys(this._map);\n },\n set: function Dict_set(key, value) {\n this._map[key] = value;\n },\n has: function Dict_has(key) {\n return key in this._map;\n },\n forEach: function Dict_forEach(callback) {\n for (var key in this._map) {\n callback(key, this.get(key));\n }\n }\n };\n Dict.empty = new Dict(null);\n Dict.merge = function (xref, dictArray) {\n var mergedDict = new Dict(xref);\n for (var i = 0, ii = dictArray.length; i < ii; i++) {\n var dict = dictArray[i];\n if (!isDict(dict)) {\n continue;\n }\n for (var keyName in dict._map) {\n if (mergedDict._map[keyName] !== undefined) {\n continue;\n }\n mergedDict._map[keyName] = dict._map[keyName];\n }\n }\n return mergedDict;\n };\n return Dict;\n }();\n var Ref = function RefClosure() {\n function Ref(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n Ref.prototype = {\n toString: function Ref_toString() {\n var str = this.num + 'R';\n if (this.gen !== 0) {\n str += this.gen;\n }\n return str;\n }\n };\n return Ref;\n }();\n var RefSet = function RefSetClosure() {\n function RefSet() {\n this.dict = Object.create(null);\n }\n RefSet.prototype = {\n has: function RefSet_has(ref) {\n return ref.toString() in this.dict;\n },\n put: function RefSet_put(ref) {\n this.dict[ref.toString()] = true;\n },\n remove: function RefSet_remove(ref) {\n delete this.dict[ref.toString()];\n }\n };\n return RefSet;\n }();\n var RefSetCache = function RefSetCacheClosure() {\n function RefSetCache() {\n this.dict = Object.create(null);\n }\n RefSetCache.prototype = {\n get: function RefSetCache_get(ref) {\n return this.dict[ref.toString()];\n },\n has: function RefSetCache_has(ref) {\n return ref.toString() in this.dict;\n },\n put: function RefSetCache_put(ref, obj) {\n this.dict[ref.toString()] = obj;\n },\n putAlias: function RefSetCache_putAlias(ref, aliasRef) {\n this.dict[ref.toString()] = this.get(aliasRef);\n },\n forEach: function RefSetCache_forEach(fn, thisArg) {\n for (var i in this.dict) {\n fn.call(thisArg, this.dict[i]);\n }\n },\n clear: function RefSetCache_clear() {\n this.dict = Object.create(null);\n }\n };\n return RefSetCache;\n }();\n function isEOF(v) {\n return v === EOF;\n }\n function isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n }\n function isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n }\n function isDict(v, type) {\n return v instanceof Dict && (type === undefined || isName(v.get('Type'), type));\n }\n function isRef(v) {\n return v instanceof Ref;\n }\n function isRefsEqual(v1, v2) {\n return v1.num === v2.num && v1.gen === v2.gen;\n }\n function isStream(v) {\n return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.getBytes !== undefined;\n }\n exports.EOF = EOF;\n exports.Cmd = Cmd;\n exports.Dict = Dict;\n exports.Name = Name;\n exports.Ref = Ref;\n exports.RefSet = RefSet;\n exports.RefSetCache = RefSetCache;\n exports.isEOF = isEOF;\n exports.isCmd = isCmd;\n exports.isDict = isDict;\n exports.isName = isName;\n exports.isRef = isRef;\n exports.isRefsEqual = isRefsEqual;\n exports.isStream = isStream;\n\n /***/\n }, /* 2 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var store = __w_pdfjs_require__(49)('wks');\n var uid = __w_pdfjs_require__(14);\n var _Symbol = __w_pdfjs_require__(4).Symbol;\n var USE_SYMBOL = typeof _Symbol == 'function';\n var $exports = module.exports = function (name) {\n return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));\n };\n $exports.store = store;\n\n /***/\n }, /* 3 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.JpxStream = exports.JpegStream = exports.Jbig2Stream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.CCITTFaxStream = exports.AsciiHexStream = exports.Ascii85Stream = undefined;\n var _util = __w_pdfjs_require__(0);\n var _primitives = __w_pdfjs_require__(1);\n var _jbig = __w_pdfjs_require__(95);\n var _jpg = __w_pdfjs_require__(96);\n var _jpx = __w_pdfjs_require__(57);\n var Stream = function StreamClosure() {\n function Stream(arrayBuffer, start, length, dict) {\n this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n Stream.prototype = {\n get length() {\n return this.end - this.start;\n },\n get isEmpty() {\n return this.length === 0;\n },\n getByte: function Stream_getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n },\n getUint16: function Stream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n },\n getInt32: function Stream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n getBytes: function Stream_getBytes(length) {\n var bytes = this.bytes;\n var pos = this.pos;\n var strEnd = this.end;\n if (!length) {\n return bytes.subarray(pos, strEnd);\n }\n var end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n return bytes.subarray(pos, end);\n },\n peekByte: function Stream_peekByte() {\n var peekedByte = this.getByte();\n this.pos--;\n return peekedByte;\n },\n peekBytes: function Stream_peekBytes(length) {\n var bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n },\n skip: function Stream_skip(n) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n },\n reset: function Stream_reset() {\n this.pos = this.start;\n },\n moveStart: function Stream_moveStart() {\n this.start = this.pos;\n },\n makeSubStream: function Stream_makeSubStream(start, length, dict) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n };\n return Stream;\n }();\n var StringStream = function StringStreamClosure() {\n function StringStream(str) {\n var length = str.length;\n var bytes = new Uint8Array(length);\n for (var n = 0; n < length; ++n) {\n bytes[n] = str.charCodeAt(n);\n }\n Stream.call(this, bytes);\n }\n StringStream.prototype = Stream.prototype;\n return StringStream;\n }();\n var DecodeStream = function DecodeStreamClosure() {\n var emptyBuffer = new Uint8Array(0);\n function DecodeStream(maybeMinBufferLength) {\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n if (maybeMinBufferLength) {\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n DecodeStream.prototype = {\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n return this.bufferLength === 0;\n },\n ensureBuffer: function DecodeStream_ensureBuffer(requested) {\n var buffer = this.buffer;\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n var size = this.minBufferLength;\n while (size < requested) {\n size *= 2;\n }\n var buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return this.buffer = buffer2;\n },\n getByte: function DecodeStream_getByte() {\n var pos = this.pos;\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n this.readBlock();\n }\n return this.buffer[this.pos++];\n },\n getUint16: function DecodeStream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n },\n getInt32: function DecodeStream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n getBytes: function DecodeStream_getBytes(length) {\n var end,\n pos = this.pos;\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n var bufEnd = this.bufferLength;\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n end = this.bufferLength;\n }\n this.pos = end;\n return this.buffer.subarray(pos, end);\n },\n peekByte: function DecodeStream_peekByte() {\n var peekedByte = this.getByte();\n this.pos--;\n return peekedByte;\n },\n peekBytes: function DecodeStream_peekBytes(length) {\n var bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n },\n makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {\n var end = start + length;\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n return new Stream(this.buffer, start, length, dict);\n },\n skip: function DecodeStream_skip(n) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n },\n reset: function DecodeStream_reset() {\n this.pos = 0;\n },\n getBaseStreams: function DecodeStream_getBaseStreams() {\n if (this.str && this.str.getBaseStreams) {\n return this.str.getBaseStreams();\n }\n return [];\n }\n };\n return DecodeStream;\n }();\n var StreamsSequenceStream = function StreamsSequenceStreamClosure() {\n function StreamsSequenceStream(streams) {\n this.streams = streams;\n DecodeStream.call(this, null);\n }\n StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);\n StreamsSequenceStream.prototype.readBlock = function streamSequenceStreamReadBlock() {\n var streams = this.streams;\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\n var stream = streams.shift();\n var chunk = stream.getBytes();\n var bufferLength = this.bufferLength;\n var newLength = bufferLength + chunk.length;\n var buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n };\n StreamsSequenceStream.prototype.getBaseStreams = function StreamsSequenceStream_getBaseStreams() {\n var baseStreams = [];\n for (var i = 0, ii = this.streams.length; i < ii; i++) {\n var stream = this.streams[i];\n if (stream.getBaseStreams) {\n _util.Util.appendToArray(baseStreams, stream.getBaseStreams());\n }\n }\n return baseStreams;\n };\n return StreamsSequenceStream;\n }();\n var FlateStream = function FlateStreamClosure() {\n var codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n var lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]);\n var distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]);\n var fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9];\n var fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5];\n function FlateStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n var cmf = str.getByte();\n var flg = str.getByte();\n if (cmf === -1 || flg === -1) {\n throw new _util.FormatError('Invalid header in flate stream: ' + cmf + ', ' + flg);\n }\n if ((cmf & 0x0f) !== 0x08) {\n throw new _util.FormatError('Unknown compression method in flate stream: ' + cmf + ', ' + flg);\n }\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new _util.FormatError('Bad FCHECK in flate stream: ' + cmf + ', ' + flg);\n }\n if (flg & 0x20) {\n throw new _util.FormatError('FDICT bit set in flate stream: ' + cmf + ', ' + flg);\n }\n this.codeSize = 0;\n this.codeBuf = 0;\n DecodeStream.call(this, maybeLength);\n }\n FlateStream.prototype = Object.create(DecodeStream.prototype);\n FlateStream.prototype.getBits = function FlateStream_getBits(bits) {\n var str = this.str;\n var codeSize = this.codeSize;\n var codeBuf = this.codeBuf;\n var b;\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad encoding in flate stream');\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n b = codeBuf & (1 << bits) - 1;\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n return b;\n };\n FlateStream.prototype.getCode = function FlateStream_getCode(table) {\n var str = this.str;\n var codes = table[0];\n var maxLen = table[1];\n var codeSize = this.codeSize;\n var codeBuf = this.codeBuf;\n var b;\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n break;\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n var code = codes[codeBuf & (1 << maxLen) - 1];\n var codeLen = code >> 16;\n var codeVal = code & 0xffff;\n if (codeLen < 1 || codeSize < codeLen) {\n throw new _util.FormatError('Bad encoding in flate stream');\n }\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n };\n FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(lengths) {\n var n = lengths.length;\n var maxLen = 0;\n var i;\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n var size = 1 << maxLen;\n var codes = new Int32Array(size);\n for (var len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) {\n for (var val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n var code2 = 0;\n var t = code;\n for (i = 0; i < len; ++i) {\n code2 = code2 << 1 | t & 1;\n t >>= 1;\n }\n for (i = code2; i < size; i += skip) {\n codes[i] = len << 16 | val;\n }\n ++code;\n }\n }\n }\n return [codes, maxLen];\n };\n FlateStream.prototype.readBlock = function FlateStream_readBlock() {\n var buffer, len;\n var str = this.str;\n var hdr = this.getBits(3);\n if (hdr & 1) {\n this.eof = true;\n }\n hdr >>= 1;\n if (hdr === 0) {\n var b;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n var blockLen = b;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n blockLen |= b << 8;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n var check = b;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n check |= b << 8;\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n throw new _util.FormatError('Bad uncompressed block length in flate stream');\n }\n this.codeBuf = 0;\n this.codeSize = 0;\n var bufferLength = this.bufferLength;\n buffer = this.ensureBuffer(bufferLength + blockLen);\n var end = bufferLength + blockLen;\n this.bufferLength = end;\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n for (var n = bufferLength; n < end; ++n) {\n if ((b = str.getByte()) === -1) {\n this.eof = true;\n break;\n }\n buffer[n] = b;\n }\n }\n return;\n }\n var litCodeTable;\n var distCodeTable;\n if (hdr === 1) {\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n var numLitCodes = this.getBits(5) + 257;\n var numDistCodes = this.getBits(5) + 1;\n var numCodeLenCodes = this.getBits(4) + 4;\n var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n var i;\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n len = 0;\n i = 0;\n var codes = numLitCodes + numDistCodes;\n var codeLengths = new Uint8Array(codes);\n var bitsLength, bitsOffset, what;\n while (i < codes) {\n var code = this.getCode(codeLenCodeTab);\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n var repeatLength = this.getBits(bitsLength) + bitsOffset;\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n } else {\n throw new _util.FormatError('Unknown block type in flate stream');\n }\n buffer = this.buffer;\n var limit = buffer ? buffer.length : 0;\n var pos = this.bufferLength;\n while (true) {\n var code1 = this.getCode(litCodeTable);\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n buffer[pos++] = code1;\n continue;\n }\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n code1 -= 257;\n code1 = lengthDecode[code1];\n var code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n var dist = (code1 & 0xffff) + code2;\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n for (var k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n };\n return FlateStream;\n }();\n var PredictorStream = function PredictorStreamClosure() {\n function PredictorStream(str, maybeLength, params) {\n if (!(0, _primitives.isDict)(params)) {\n return str;\n }\n var predictor = this.predictor = params.get('Predictor') || 1;\n if (predictor <= 1) {\n return str;\n }\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new _util.FormatError('Unsupported predictor: ' + predictor);\n }\n if (predictor === 2) {\n this.readBlock = this.readBlockTiff;\n } else {\n this.readBlock = this.readBlockPng;\n }\n this.str = str;\n this.dict = str.dict;\n var colors = this.colors = params.get('Colors') || 1;\n var bits = this.bits = params.get('BitsPerComponent') || 8;\n var columns = this.columns = params.get('Columns') || 1;\n this.pixBytes = colors * bits + 7 >> 3;\n this.rowBytes = columns * colors * bits + 7 >> 3;\n DecodeStream.call(this, maybeLength);\n return this;\n }\n PredictorStream.prototype = Object.create(DecodeStream.prototype);\n PredictorStream.prototype.readBlockTiff = function predictorStreamReadBlockTiff() {\n var rowBytes = this.rowBytes;\n var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var bits = this.bits;\n var colors = this.colors;\n var rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n var inbuf = 0,\n outbuf = 0;\n var inbits = 0,\n outbits = 0;\n var pos = bufferLength;\n var i;\n if (bits === 1 && colors === 1) {\n for (i = 0; i < rowBytes; ++i) {\n var c = rawBytes[i] ^ inbuf;\n c ^= c >> 1;\n c ^= c >> 2;\n c ^= c >> 4;\n inbuf = (c & 1) << 7;\n buffer[pos++] = c;\n }\n } else if (bits === 8) {\n for (i = 0; i < colors; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[pos] = buffer[pos - colors] + rawBytes[i];\n pos++;\n }\n } else {\n var compArray = new Uint8Array(colors + 1);\n var bitMask = (1 << bits) - 1;\n var j = 0,\n k = bufferLength;\n var columns = this.columns;\n for (i = 0; i < columns; ++i) {\n for (var kk = 0; kk < colors; ++kk) {\n if (inbits < bits) {\n inbuf = inbuf << 8 | rawBytes[j++] & 0xFF;\n inbits += 8;\n }\n compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n inbits -= bits;\n outbuf = outbuf << bits | compArray[kk];\n outbits += bits;\n if (outbits >= 8) {\n buffer[k++] = outbuf >> outbits - 8 & 0xFF;\n outbits -= 8;\n }\n }\n }\n if (outbits > 0) {\n buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n }\n }\n this.bufferLength += rowBytes;\n };\n PredictorStream.prototype.readBlockPng = function predictorStreamReadBlockPng() {\n var rowBytes = this.rowBytes;\n var pixBytes = this.pixBytes;\n var predictor = this.str.getByte();\n var rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n var i,\n j = bufferLength,\n up,\n c;\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n break;\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xFF;\n j++;\n }\n break;\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = prevRow[i] + rawBytes[i] & 0xFF;\n }\n break;\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xFF;\n j++;\n }\n break;\n case 4:\n for (i = 0; i < pixBytes; ++i) {\n up = prevRow[i];\n c = rawBytes[i];\n buffer[j++] = up + c;\n }\n for (; i < rowBytes; ++i) {\n up = prevRow[i];\n var upLeft = prevRow[i - pixBytes];\n var left = buffer[j - pixBytes];\n var p = left + up - upLeft;\n var pa = p - left;\n if (pa < 0) {\n pa = -pa;\n }\n var pb = p - up;\n if (pb < 0) {\n pb = -pb;\n }\n var pc = p - upLeft;\n if (pc < 0) {\n pc = -pc;\n }\n c = rawBytes[i];\n if (pa <= pb && pa <= pc) {\n buffer[j++] = left + c;\n } else if (pb <= pc) {\n buffer[j++] = up + c;\n } else {\n buffer[j++] = upLeft + c;\n }\n }\n break;\n default:\n throw new _util.FormatError('Unsupported predictor: ' + predictor);\n }\n this.bufferLength += rowBytes;\n };\n return PredictorStream;\n }();\n var JpegStream = function JpegStreamClosure() {\n function JpegStream(stream, maybeLength, dict, params) {\n var ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === 0xFF) {\n stream.skip(-1);\n break;\n }\n }\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n DecodeStream.call(this, maybeLength);\n }\n JpegStream.prototype = Object.create(DecodeStream.prototype);\n Object.defineProperty(JpegStream.prototype, 'bytes', {\n get: function JpegStream_bytes() {\n return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n JpegStream.prototype.ensureBuffer = function JpegStream_ensureBuffer(req) {\n if (this.bufferLength) {\n return;\n }\n var jpegImage = new _jpg.JpegImage();\n var decodeArr = this.dict.getArray('Decode', 'D');\n if (this.forceRGB && (0, _util.isArray)(decodeArr)) {\n var bitsPerComponent = this.dict.get('BitsPerComponent') || 8;\n var decodeArrLength = decodeArr.length;\n var transform = new Int32Array(decodeArrLength);\n var transformNeeded = false;\n var maxValue = (1 << bitsPerComponent) - 1;\n for (var i = 0; i < decodeArrLength; i += 2) {\n transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;\n transform[i + 1] = decodeArr[i] * maxValue | 0;\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n if (transformNeeded) {\n jpegImage.decodeTransform = transform;\n }\n }\n if ((0, _primitives.isDict)(this.params)) {\n var colorTransform = this.params.get('ColorTransform');\n if ((0, _util.isInt)(colorTransform)) {\n jpegImage.colorTransform = colorTransform;\n }\n }\n jpegImage.parse(this.bytes);\n var data = jpegImage.getData(this.drawWidth, this.drawHeight, this.forceRGB);\n this.buffer = data;\n this.bufferLength = data.length;\n this.eof = true;\n };\n JpegStream.prototype.getBytes = function JpegStream_getBytes(length) {\n this.ensureBuffer();\n return this.buffer;\n };\n JpegStream.prototype.getIR = function JpegStream_getIR(forceDataSchema) {\n return (0, _util.createObjectURL)(this.bytes, 'image/jpeg', forceDataSchema);\n };\n return JpegStream;\n }();\n var JpxStream = function JpxStreamClosure() {\n function JpxStream(stream, maybeLength, dict, params) {\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n DecodeStream.call(this, maybeLength);\n }\n JpxStream.prototype = Object.create(DecodeStream.prototype);\n Object.defineProperty(JpxStream.prototype, 'bytes', {\n get: function JpxStream_bytes() {\n return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n JpxStream.prototype.ensureBuffer = function JpxStream_ensureBuffer(req) {\n if (this.bufferLength) {\n return;\n }\n var jpxImage = new _jpx.JpxImage();\n jpxImage.parse(this.bytes);\n var width = jpxImage.width;\n var height = jpxImage.height;\n var componentsCount = jpxImage.componentsCount;\n var tileCount = jpxImage.tiles.length;\n if (tileCount === 1) {\n this.buffer = jpxImage.tiles[0].items;\n } else {\n var data = new Uint8ClampedArray(width * height * componentsCount);\n for (var k = 0; k < tileCount; k++) {\n var tileComponents = jpxImage.tiles[k];\n var tileWidth = tileComponents.width;\n var tileHeight = tileComponents.height;\n var tileLeft = tileComponents.left;\n var tileTop = tileComponents.top;\n var src = tileComponents.items;\n var srcPosition = 0;\n var dataPosition = (width * tileTop + tileLeft) * componentsCount;\n var imgRowSize = width * componentsCount;\n var tileRowSize = tileWidth * componentsCount;\n for (var j = 0; j < tileHeight; j++) {\n var rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n data.set(rowBytes, dataPosition);\n srcPosition += tileRowSize;\n dataPosition += imgRowSize;\n }\n }\n this.buffer = data;\n }\n this.bufferLength = this.buffer.length;\n this.eof = true;\n };\n return JpxStream;\n }();\n var Jbig2Stream = function Jbig2StreamClosure() {\n function Jbig2Stream(stream, maybeLength, dict, params) {\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n DecodeStream.call(this, maybeLength);\n }\n Jbig2Stream.prototype = Object.create(DecodeStream.prototype);\n Object.defineProperty(Jbig2Stream.prototype, 'bytes', {\n get: function Jbig2Stream_bytes() {\n return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n Jbig2Stream.prototype.ensureBuffer = function Jbig2Stream_ensureBuffer(req) {\n if (this.bufferLength) {\n return;\n }\n var jbig2Image = new _jbig.Jbig2Image();\n var chunks = [];\n if ((0, _primitives.isDict)(this.params)) {\n var globalsStream = this.params.get('JBIG2Globals');\n if ((0, _primitives.isStream)(globalsStream)) {\n var globals = globalsStream.getBytes();\n chunks.push({\n data: globals,\n start: 0,\n end: globals.length\n });\n }\n }\n chunks.push({\n data: this.bytes,\n start: 0,\n end: this.bytes.length\n });\n var data = jbig2Image.parseChunks(chunks);\n var dataLength = data.length;\n for (var i = 0; i < dataLength; i++) {\n data[i] ^= 0xFF;\n }\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n };\n return Jbig2Stream;\n }();\n var DecryptStream = function DecryptStreamClosure() {\n function DecryptStream(str, maybeLength, decrypt) {\n this.str = str;\n this.dict = str.dict;\n this.decrypt = decrypt;\n this.nextChunk = null;\n this.initialized = false;\n DecodeStream.call(this, maybeLength);\n }\n var chunkSize = 512;\n DecryptStream.prototype = Object.create(DecodeStream.prototype);\n DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {\n var chunk;\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n this.nextChunk = this.str.getBytes(chunkSize);\n var hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n var decrypt = this.decrypt;\n chunk = decrypt(chunk, !hasMoreData);\n var bufferLength = this.bufferLength;\n var i,\n n = chunk.length;\n var buffer = this.ensureBuffer(bufferLength + n);\n for (i = 0; i < n; i++) {\n buffer[bufferLength++] = chunk[i];\n }\n this.bufferLength = bufferLength;\n };\n return DecryptStream;\n }();\n var Ascii85Stream = function Ascii85StreamClosure() {\n function Ascii85Stream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n this.input = new Uint8Array(5);\n if (maybeLength) {\n maybeLength = 0.8 * maybeLength;\n }\n DecodeStream.call(this, maybeLength);\n }\n Ascii85Stream.prototype = Object.create(DecodeStream.prototype);\n Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {\n var TILDA_CHAR = 0x7E;\n var Z_LOWER_CHAR = 0x7A;\n var EOF = -1;\n var str = this.str;\n var c = str.getByte();\n while ((0, _util.isSpace)(c)) {\n c = str.getByte();\n }\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n var bufferLength = this.bufferLength,\n buffer;\n var i;\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n this.bufferLength += 4;\n } else {\n var input = this.input;\n input[0] = c;\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n while ((0, _util.isSpace)(c)) {\n c = str.getByte();\n }\n input[i] = c;\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n this.eof = true;\n }\n var t = 0;\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xFF;\n t >>= 8;\n }\n }\n };\n return Ascii85Stream;\n }();\n var AsciiHexStream = function AsciiHexStreamClosure() {\n function AsciiHexStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n this.firstDigit = -1;\n if (maybeLength) {\n maybeLength = 0.5 * maybeLength;\n }\n DecodeStream.call(this, maybeLength);\n }\n AsciiHexStream.prototype = Object.create(DecodeStream.prototype);\n AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {\n var UPSTREAM_BLOCK_SIZE = 8000;\n var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n var maxDecodeLength = bytes.length + 1 >> 1;\n var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n var bufferLength = this.bufferLength;\n var firstDigit = this.firstDigit;\n for (var i = 0, ii = bytes.length; i < ii; i++) {\n var ch = bytes[i],\n digit;\n if (ch >= 0x30 && ch <= 0x39) {\n digit = ch & 0x0F;\n } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n digit = (ch & 0x0F) + 9;\n } else if (ch === 0x3E) {\n this.eof = true;\n break;\n } else {\n continue;\n }\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = firstDigit << 4 | digit;\n firstDigit = -1;\n }\n }\n if (firstDigit >= 0 && this.eof) {\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n };\n return AsciiHexStream;\n }();\n var RunLengthStream = function RunLengthStreamClosure() {\n function RunLengthStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n DecodeStream.call(this, maybeLength);\n }\n RunLengthStream.prototype = Object.create(DecodeStream.prototype);\n RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {\n var repeatHeader = this.str.getBytes(2);\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n var buffer;\n var bufferLength = this.bufferLength;\n var n = repeatHeader[0];\n if (n < 128) {\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n if (n > 0) {\n var source = this.str.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n var b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n for (var i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n this.bufferLength = bufferLength;\n };\n return RunLengthStream;\n }();\n var CCITTFaxStream = function CCITTFaxStreamClosure() {\n var ccittEOL = -2;\n var ccittEOF = -1;\n var twoDimPass = 0;\n var twoDimHoriz = 1;\n var twoDimVert0 = 2;\n var twoDimVertR1 = 3;\n var twoDimVertL1 = 4;\n var twoDimVertR2 = 5;\n var twoDimVertL2 = 6;\n var twoDimVertR3 = 7;\n var twoDimVertL3 = 8;\n var twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]];\n var whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]];\n var whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]];\n var blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]];\n var blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]];\n var blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]];\n function CCITTFaxStream(str, maybeLength, params) {\n this.str = str;\n this.dict = str.dict;\n params = params || _primitives.Dict.empty;\n this.encoding = params.get('K') || 0;\n this.eoline = params.get('EndOfLine') || false;\n this.byteAlign = params.get('EncodedByteAlign') || false;\n this.columns = params.get('Columns') || 1728;\n this.rows = params.get('Rows') || 0;\n var eoblock = params.get('EndOfBlock');\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n this.eoblock = eoblock;\n this.black = params.get('BlackIs1') || false;\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n var code1;\n while ((code1 = this.lookBits(12)) === 0) {\n this.eatBits(1);\n }\n if (code1 === 1) {\n this.eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this.lookBits(1);\n this.eatBits(1);\n }\n DecodeStream.call(this, maybeLength);\n }\n CCITTFaxStream.prototype = Object.create(DecodeStream.prototype);\n CCITTFaxStream.prototype.readBlock = function CCITTFaxStream_readBlock() {\n while (!this.eof) {\n var c = this.lookChar();\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n };\n CCITTFaxStream.prototype.addPixels = function ccittFaxStreamAddPixels(a1, blackPixels) {\n var codingLine = this.codingLine;\n var codingPos = this.codingPos;\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n (0, _util.info)('row is wrong length');\n this.err = true;\n a1 = this.columns;\n }\n if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\n }\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n };\n CCITTFaxStream.prototype.addPixelsNeg = function ccittFaxStreamAddPixelsNeg(a1, blackPixels) {\n var codingLine = this.codingLine;\n var codingPos = this.codingPos;\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n (0, _util.info)('row is wrong length');\n this.err = true;\n a1 = this.columns;\n }\n if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\n }\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n (0, _util.info)('invalid code');\n this.err = true;\n a1 = 0;\n }\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n };\n CCITTFaxStream.prototype.lookChar = function CCITTFaxStream_lookChar() {\n var refLine = this.refLine;\n var codingLine = this.codingLine;\n var columns = this.columns;\n var refPos, blackPixels, bits, i;\n if (this.outputBits === 0) {\n if (this.eof) {\n return null;\n }\n this.err = false;\n var code1, code2, code3;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = this.getTwoDimCode();\n switch (code1) {\n case twoDimPass:\n this.addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this.getBlackCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this.getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this.getWhiteCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this.getBlackCode();\n } while (code3 >= 64);\n }\n this.addPixels(codingLine[this.codingPos] + code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this.addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1);\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this.addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this.addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this.addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this.addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this.addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this.addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this.addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this.addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n (0, _util.info)('bad 2d code');\n this.addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this.getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this.getWhiteCode();\n } while (code3 >= 64);\n }\n this.addPixels(codingLine[this.codingPos] + code1, blackPixels);\n blackPixels ^= 1;\n }\n }\n var gotEOL = false;\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n if (!this.eoblock && this.row === this.rows - 1) {\n this.eof = true;\n } else {\n code1 = this.lookBits(12);\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this.eatBits(1);\n code1 = this.lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this.eatBits(1);\n code1 = this.lookBits(12);\n }\n }\n if (code1 === 1) {\n this.eatBits(12);\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n if (!this.eof && this.encoding > 0) {\n this.nextLine2D = !this.lookBits(1);\n this.eatBits(1);\n }\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this.lookBits(12);\n if (code1 === 1) {\n this.eatBits(12);\n if (this.encoding > 0) {\n this.lookBits(1);\n this.eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this.lookBits(12);\n if (code1 !== 1) {\n (0, _util.info)('bad rtc code: ' + code1);\n }\n this.eatBits(12);\n if (this.encoding > 0) {\n this.lookBits(1);\n this.eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this.lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return null;\n }\n if (code1 >> 1 === 1) {\n break;\n }\n this.eatBits(1);\n }\n this.eatBits(12);\n if (this.encoding > 0) {\n this.eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[this.codingPos = 0];\n } else {\n this.outputBits = codingLine[this.codingPos = 1];\n }\n this.row++;\n }\n var c;\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xFF;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xFF >> 8 - bits;\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xFF >> 8 - this.outputBits;\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n if (this.black) {\n c ^= 0xFF;\n }\n return c;\n };\n CCITTFaxStream.prototype.findTableCode = function ccittFaxStreamFindTableCode(start, end, table, limit) {\n var limitValue = limit || 0;\n for (var i = start; i <= end; ++i) {\n var code = this.lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n var p = table[code - limitValue];\n if (p[0] === i) {\n this.eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n };\n CCITTFaxStream.prototype.getTwoDimCode = function ccittFaxStreamGetTwoDimCode() {\n var code = 0;\n var p;\n if (this.eoblock) {\n code = this.lookBits(7);\n p = twoDimTable[code];\n if (p && p[0] > 0) {\n this.eatBits(p[0]);\n return p[1];\n }\n } else {\n var result = this.findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n (0, _util.info)('Bad two dim code');\n return ccittEOF;\n };\n CCITTFaxStream.prototype.getWhiteCode = function ccittFaxStreamGetWhiteCode() {\n var code = 0;\n var p;\n if (this.eoblock) {\n code = this.lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 5 === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n if (p[0] > 0) {\n this.eatBits(p[0]);\n return p[1];\n }\n } else {\n var result = this.findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n result = this.findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n (0, _util.info)('bad white code');\n this.eatBits(1);\n return 1;\n };\n CCITTFaxStream.prototype.getBlackCode = function ccittFaxStreamGetBlackCode() {\n var code, p;\n if (this.eoblock) {\n code = this.lookBits(13);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n if (p[0] > 0) {\n this.eatBits(p[0]);\n return p[1];\n }\n } else {\n var result = this.findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n result = this.findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n result = this.findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n (0, _util.info)('bad black code');\n this.eatBits(1);\n return 1;\n };\n CCITTFaxStream.prototype.lookBits = function CCITTFaxStream_lookBits(n) {\n var c;\n while (this.inputBits < n) {\n if ((c = this.str.getByte()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return this.inputBuf << n - this.inputBits & 0xFFFF >> 16 - n;\n }\n this.inputBuf = this.inputBuf << 8 | c;\n this.inputBits += 8;\n }\n return this.inputBuf >> this.inputBits - n & 0xFFFF >> 16 - n;\n };\n CCITTFaxStream.prototype.eatBits = function CCITTFaxStream_eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n };\n return CCITTFaxStream;\n }();\n var LZWStream = function LZWStreamClosure() {\n function LZWStream(str, maybeLength, earlyChange) {\n this.str = str;\n this.dict = str.dict;\n this.cachedData = 0;\n this.bitsCached = 0;\n var maxLzwDictionarySize = 4096;\n var lzwState = {\n earlyChange: earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0\n };\n for (var i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n this.lzwState = lzwState;\n DecodeStream.call(this, maybeLength);\n }\n LZWStream.prototype = Object.create(DecodeStream.prototype);\n LZWStream.prototype.readBits = function LZWStream_readBits(n) {\n var bitsCached = this.bitsCached;\n var cachedData = this.cachedData;\n while (bitsCached < n) {\n var c = this.str.getByte();\n if (c === -1) {\n this.eof = true;\n return null;\n }\n cachedData = cachedData << 8 | c;\n bitsCached += 8;\n }\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n this.lastCode = null;\n return cachedData >>> bitsCached & (1 << n) - 1;\n };\n LZWStream.prototype.readBlock = function LZWStream_readBlock() {\n var blockSize = 512;\n var estimatedDecodedSize = blockSize * 2,\n decodedSizeDelta = blockSize;\n var i, j, q;\n var lzwState = this.lzwState;\n if (!lzwState) {\n return;\n }\n var earlyChange = lzwState.earlyChange;\n var nextCode = lzwState.nextCode;\n var dictionaryValues = lzwState.dictionaryValues;\n var dictionaryLengths = lzwState.dictionaryLengths;\n var dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n var codeLength = lzwState.codeLength;\n var prevCode = lzwState.prevCode;\n var currentSequence = lzwState.currentSequence;\n var currentSequenceLength = lzwState.currentSequenceLength;\n var decodedLength = 0;\n var currentBufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n for (i = 0; i < blockSize; i++) {\n var code = this.readBits(codeLength);\n var hasPrev = currentSequenceLength > 0;\n if (code < 256) {\n currentSequence[0] = code;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n if (hasPrev) {\n dictionaryPrevCodes[nextCode] = prevCode;\n dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n dictionaryValues[nextCode] = currentSequence[0];\n nextCode++;\n codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0;\n }\n prevCode = code;\n decodedLength += currentSequenceLength;\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n this.bufferLength = currentBufferLength;\n };\n return LZWStream;\n }();\n var NullStream = function NullStreamClosure() {\n function NullStream() {\n Stream.call(this, new Uint8Array(0));\n }\n NullStream.prototype = Stream.prototype;\n return NullStream;\n }();\n exports.Ascii85Stream = Ascii85Stream;\n exports.AsciiHexStream = AsciiHexStream;\n exports.CCITTFaxStream = CCITTFaxStream;\n exports.DecryptStream = DecryptStream;\n exports.DecodeStream = DecodeStream;\n exports.FlateStream = FlateStream;\n exports.Jbig2Stream = Jbig2Stream;\n exports.JpegStream = JpegStream;\n exports.JpxStream = JpxStream;\n exports.NullStream = NullStream;\n exports.PredictorStream = PredictorStream;\n exports.RunLengthStream = RunLengthStream;\n exports.Stream = Stream;\n exports.StreamsSequenceStream = StreamsSequenceStream;\n exports.StringStream = StringStream;\n exports.LZWStream = LZWStream;\n\n /***/\n }, /* 4 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n if (typeof __g == 'number') __g = global;\n\n /***/\n }, /* 5 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = !__w_pdfjs_require__(19)(function () {\n return Object.defineProperty({}, 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n });\n\n /***/\n }, /* 6 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var dP = __w_pdfjs_require__(9);\n var createDesc = __w_pdfjs_require__(20);\n module.exports = __w_pdfjs_require__(5) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n } : function (object, key, value) {\n object[key] = value;\n return object;\n };\n\n /***/\n }, /* 7 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var hasOwnProperty = {}.hasOwnProperty;\n module.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n };\n\n /***/\n }, /* 8 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toInteger = __w_pdfjs_require__(12);\n var min = Math.min;\n module.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;\n };\n\n /***/\n }, /* 9 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var anObject = __w_pdfjs_require__(17);\n var IE8_DOM_DEFINE = __w_pdfjs_require__(42);\n var toPrimitive = __w_pdfjs_require__(31);\n var dP = Object.defineProperty;\n exports.f = __w_pdfjs_require__(5) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) {}\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n };\n\n /***/\n }, /* 10 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n module.exports = function (it) {\n return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) === 'object' ? it !== null : typeof it === 'function';\n };\n\n /***/\n }, /* 11 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = {};\n\n /***/\n }, /* 12 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var ceil = Math.ceil;\n var floor = Math.floor;\n module.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n };\n\n /***/\n }, /* 13 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var defined = __w_pdfjs_require__(39);\n module.exports = function (it) {\n return Object(defined(it));\n };\n\n /***/\n }, /* 14 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var id = 0;\n var px = Math.random();\n module.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n };\n\n /***/\n }, /* 15 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.ColorSpace = undefined;\n var _util = __w_pdfjs_require__(0);\n var _primitives = __w_pdfjs_require__(1);\n var _function = __w_pdfjs_require__(32);\n var ColorSpace = function ColorSpaceClosure() {\n function resizeRgbImage(src, bpc, w1, h1, w2, h2, alpha01, dest) {\n var COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n var xRatio = w1 / w2;\n var yRatio = h1 / h2;\n var i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n var xScaled = new Uint16Array(w2);\n var w1Scanline = w1 * COMPONENTS;\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n }\n function ColorSpace() {\n throw new Error('should not call ColorSpace constructor');\n }\n ColorSpace.prototype = {\n getRgb: function ColorSpace_getRgb(src, srcOffset) {\n var rgb = new Uint8Array(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n },\n getRgbItem: function ColorSpace_getRgbItem(src, srcOffset, dest, destOffset) {\n throw new Error('Should not call ColorSpace.getRgbItem');\n },\n getRgbBuffer: function ColorSpace_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n throw new Error('Should not call ColorSpace.getRgbBuffer');\n },\n getOutputLength: function ColorSpace_getOutputLength(inputLength, alpha01) {\n throw new Error('Should not call ColorSpace.getOutputLength');\n },\n isPassthrough: function ColorSpace_isPassthrough(bits) {\n return false;\n },\n fillRgb: function ColorSpace_fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n var count = originalWidth * originalHeight;\n var rgbBuf = null;\n var numComponentColors = 1 << bpc;\n var needsResizing = originalHeight !== height || originalWidth !== width;\n var i, ii;\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (this.numComps === 1 && count > numComponentColors && this.name !== 'DeviceGray' && this.name !== 'DeviceRGB') {\n var allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n var key;\n for (i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n var colorMap = new Uint8Array(numComponentColors * 3);\n this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n var destPos, rgbPos;\n if (!needsResizing) {\n destPos = 0;\n for (i = 0; i < count; ++i) {\n key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n rgbPos = 0;\n for (i = 0; i < count; ++i) {\n key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else {\n if (!needsResizing) {\n this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n } else {\n rgbBuf = new Uint8Array(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);\n }\n }\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(rgbBuf, bpc, originalWidth, originalHeight, width, height, alpha01, dest);\n } else {\n rgbPos = 0;\n destPos = 0;\n for (i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n },\n usesZeroToOneRange: true\n };\n ColorSpace.parse = function ColorSpace_parse(cs, xref, res) {\n var IR = ColorSpace.parseToIR(cs, xref, res);\n if (IR instanceof AlternateCS) {\n return IR;\n }\n return ColorSpace.fromIR(IR);\n };\n ColorSpace.fromIR = function ColorSpace_fromIR(IR) {\n var name = (0, _util.isArray)(IR) ? IR[0] : IR;\n var whitePoint, blackPoint, gamma;\n switch (name) {\n case 'DeviceGrayCS':\n return this.singletons.gray;\n case 'DeviceRgbCS':\n return this.singletons.rgb;\n case 'DeviceCmykCS':\n return this.singletons.cmyk;\n case 'CalGrayCS':\n whitePoint = IR[1];\n blackPoint = IR[2];\n gamma = IR[3];\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n case 'CalRGBCS':\n whitePoint = IR[1];\n blackPoint = IR[2];\n gamma = IR[3];\n var matrix = IR[4];\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n case 'PatternCS':\n var basePatternCS = IR[1];\n if (basePatternCS) {\n basePatternCS = ColorSpace.fromIR(basePatternCS);\n }\n return new PatternCS(basePatternCS);\n case 'IndexedCS':\n var baseIndexedCS = IR[1];\n var hiVal = IR[2];\n var lookup = IR[3];\n return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup);\n case 'AlternateCS':\n var numComps = IR[1];\n var alt = IR[2];\n var tintFnIR = IR[3];\n return new AlternateCS(numComps, ColorSpace.fromIR(alt), _function.PDFFunction.fromIR(tintFnIR));\n case 'LabCS':\n whitePoint = IR[1];\n blackPoint = IR[2];\n var range = IR[3];\n return new LabCS(whitePoint, blackPoint, range);\n default:\n throw new _util.FormatError('Unknown colorspace name: ' + name);\n }\n };\n ColorSpace.parseToIR = function ColorSpace_parseToIR(cs, xref, res) {\n if ((0, _primitives.isName)(cs)) {\n var colorSpaces = res.get('ColorSpace');\n if ((0, _primitives.isDict)(colorSpaces)) {\n var refcs = colorSpaces.get(cs.name);\n if (refcs) {\n cs = refcs;\n }\n }\n }\n cs = xref.fetchIfRef(cs);\n if ((0, _primitives.isName)(cs)) {\n switch (cs.name) {\n case 'DeviceGray':\n case 'G':\n return 'DeviceGrayCS';\n case 'DeviceRGB':\n case 'RGB':\n return 'DeviceRgbCS';\n case 'DeviceCMYK':\n case 'CMYK':\n return 'DeviceCmykCS';\n case 'Pattern':\n return ['PatternCS', null];\n default:\n throw new _util.FormatError('unrecognized colorspace ' + cs.name);\n }\n }\n if ((0, _util.isArray)(cs)) {\n var mode = xref.fetchIfRef(cs[0]).name;\n var numComps, params, alt, whitePoint, blackPoint, gamma;\n switch (mode) {\n case 'DeviceGray':\n case 'G':\n return 'DeviceGrayCS';\n case 'DeviceRGB':\n case 'RGB':\n return 'DeviceRgbCS';\n case 'DeviceCMYK':\n case 'CMYK':\n return 'DeviceCmykCS';\n case 'CalGray':\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray('WhitePoint');\n blackPoint = params.getArray('BlackPoint');\n gamma = params.get('Gamma');\n return ['CalGrayCS', whitePoint, blackPoint, gamma];\n case 'CalRGB':\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray('WhitePoint');\n blackPoint = params.getArray('BlackPoint');\n gamma = params.getArray('Gamma');\n var matrix = params.getArray('Matrix');\n return ['CalRGBCS', whitePoint, blackPoint, gamma, matrix];\n case 'ICCBased':\n var stream = xref.fetchIfRef(cs[1]);\n var dict = stream.dict;\n numComps = dict.get('N');\n alt = dict.get('Alternate');\n if (alt) {\n var altIR = ColorSpace.parseToIR(alt, xref, res);\n var altCS = ColorSpace.fromIR(altIR);\n if (altCS.numComps === numComps) {\n return altIR;\n }\n (0, _util.warn)('ICCBased color space: Ignoring incorrect /Alternate entry.');\n }\n if (numComps === 1) {\n return 'DeviceGrayCS';\n } else if (numComps === 3) {\n return 'DeviceRgbCS';\n } else if (numComps === 4) {\n return 'DeviceCmykCS';\n }\n break;\n case 'Pattern':\n var basePatternCS = cs[1] || null;\n if (basePatternCS) {\n basePatternCS = ColorSpace.parseToIR(basePatternCS, xref, res);\n }\n return ['PatternCS', basePatternCS];\n case 'Indexed':\n case 'I':\n var baseIndexedCS = ColorSpace.parseToIR(cs[1], xref, res);\n var hiVal = xref.fetchIfRef(cs[2]) + 1;\n var lookup = xref.fetchIfRef(cs[3]);\n if ((0, _primitives.isStream)(lookup)) {\n lookup = lookup.getBytes();\n }\n return ['IndexedCS', baseIndexedCS, hiVal, lookup];\n case 'Separation':\n case 'DeviceN':\n var name = xref.fetchIfRef(cs[1]);\n numComps = (0, _util.isArray)(name) ? name.length : 1;\n alt = ColorSpace.parseToIR(cs[2], xref, res);\n var tintFnIR = _function.PDFFunction.getIR(xref, xref.fetchIfRef(cs[3]));\n return ['AlternateCS', numComps, alt, tintFnIR];\n case 'Lab':\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray('WhitePoint');\n blackPoint = params.getArray('BlackPoint');\n var range = params.getArray('Range');\n return ['LabCS', whitePoint, blackPoint, range];\n default:\n throw new _util.FormatError('unimplemented color space object \"' + mode + '\"');\n }\n }\n throw new _util.FormatError('unrecognized color space object: \"' + cs + '\"');\n };\n ColorSpace.isDefaultDecode = function ColorSpace_isDefaultDecode(decode, n) {\n if (!(0, _util.isArray)(decode)) {\n return true;\n }\n if (n * 2 !== decode.length) {\n (0, _util.warn)('The decode map is not the correct length');\n return true;\n }\n for (var i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n return true;\n };\n ColorSpace.singletons = {\n get gray() {\n return (0, _util.shadow)(this, 'gray', new DeviceGrayCS());\n },\n get rgb() {\n return (0, _util.shadow)(this, 'rgb', new DeviceRgbCS());\n },\n get cmyk() {\n return (0, _util.shadow)(this, 'cmyk', new DeviceCmykCS());\n }\n };\n return ColorSpace;\n }();\n var AlternateCS = function AlternateCSClosure() {\n function AlternateCS(numComps, base, tintFn) {\n this.name = 'Alternate';\n this.numComps = numComps;\n this.defaultColor = new Float32Array(numComps);\n for (var i = 0; i < numComps; ++i) {\n this.defaultColor[i] = 1;\n }\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n AlternateCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function AlternateCS_getRgbItem(src, srcOffset, dest, destOffset) {\n var tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n },\n getRgbBuffer: function AlternateCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var tintFn = this.tintFn;\n var base = this.base;\n var scale = 1 / ((1 << bits) - 1);\n var baseNumComps = base.numComps;\n var usesZeroToOneRange = base.usesZeroToOneRange;\n var isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n var pos = isPassthrough ? destOffset : 0;\n var baseBuf = isPassthrough ? dest : new Uint8Array(baseNumComps * count);\n var numComps = this.numComps;\n var scaled = new Float32Array(numComps);\n var tinted = new Float32Array(baseNumComps);\n var i, j;\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n tintFn(scaled, 0, tinted, 0);\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n },\n getOutputLength: function AlternateCS_getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function AlternateCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return AlternateCS;\n }();\n var PatternCS = function PatternCSClosure() {\n function PatternCS(baseCS) {\n this.name = 'Pattern';\n this.base = baseCS;\n }\n PatternCS.prototype = {};\n return PatternCS;\n }();\n var IndexedCS = function IndexedCSClosure() {\n function IndexedCS(base, highVal, lookup) {\n this.name = 'Indexed';\n this.numComps = 1;\n this.defaultColor = new Uint8Array(this.numComps);\n this.base = base;\n this.highVal = highVal;\n var baseNumComps = base.numComps;\n var length = baseNumComps * highVal;\n if ((0, _primitives.isStream)(lookup)) {\n this.lookup = new Uint8Array(length);\n var bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if ((0, _util.isString)(lookup)) {\n this.lookup = new Uint8Array(length);\n for (var i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i);\n }\n } else if (lookup instanceof Uint8Array || lookup instanceof Array) {\n this.lookup = lookup;\n } else {\n throw new _util.FormatError('Unrecognized lookup table: ' + lookup);\n }\n }\n IndexedCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function IndexedCS_getRgbItem(src, srcOffset, dest, destOffset) {\n var numComps = this.base.numComps;\n var start = src[srcOffset] * numComps;\n this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n },\n getRgbBuffer: function IndexedCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var base = this.base;\n var numComps = base.numComps;\n var outputDelta = base.getOutputLength(numComps, alpha01);\n var lookup = this.lookup;\n for (var i = 0; i < count; ++i) {\n var lookupPos = src[srcOffset++] * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n },\n getOutputLength: function IndexedCS_getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function IndexedCS_isDefaultDecode(decodeMap) {\n return true;\n },\n usesZeroToOneRange: true\n };\n return IndexedCS;\n }();\n var DeviceGrayCS = function DeviceGrayCSClosure() {\n function DeviceGrayCS() {\n this.name = 'DeviceGray';\n this.numComps = 1;\n this.defaultColor = new Float32Array(this.numComps);\n }\n DeviceGrayCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function DeviceGrayCS_getRgbItem(src, srcOffset, dest, destOffset) {\n var c = src[srcOffset] * 255 | 0;\n c = c < 0 ? 0 : c > 255 ? 255 : c;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n },\n getRgbBuffer: function DeviceGrayCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 255 / ((1 << bits) - 1);\n var j = srcOffset,\n q = destOffset;\n for (var i = 0; i < count; ++i) {\n var c = scale * src[j++] | 0;\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n },\n getOutputLength: function DeviceGrayCS_getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function DeviceGrayCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return DeviceGrayCS;\n }();\n var DeviceRgbCS = function DeviceRgbCSClosure() {\n function DeviceRgbCS() {\n this.name = 'DeviceRGB';\n this.numComps = 3;\n this.defaultColor = new Float32Array(this.numComps);\n }\n DeviceRgbCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function DeviceRgbCS_getRgbItem(src, srcOffset, dest, destOffset) {\n var r = src[srcOffset] * 255 | 0;\n var g = src[srcOffset + 1] * 255 | 0;\n var b = src[srcOffset + 2] * 255 | 0;\n dest[destOffset] = r < 0 ? 0 : r > 255 ? 255 : r;\n dest[destOffset + 1] = g < 0 ? 0 : g > 255 ? 255 : g;\n dest[destOffset + 2] = b < 0 ? 0 : b > 255 ? 255 : b;\n },\n getRgbBuffer: function DeviceRgbCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n var scale = 255 / ((1 << bits) - 1);\n var j = srcOffset,\n q = destOffset;\n for (var i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++] | 0;\n dest[q++] = scale * src[j++] | 0;\n dest[q++] = scale * src[j++] | 0;\n q += alpha01;\n }\n },\n getOutputLength: function DeviceRgbCS_getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n },\n isPassthrough: function DeviceRgbCS_isPassthrough(bits) {\n return bits === 8;\n },\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function DeviceRgbCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return DeviceRgbCS;\n }();\n var DeviceCmykCS = function DeviceCmykCSClosure() {\n function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n var c = src[srcOffset + 0] * srcScale;\n var m = src[srcOffset + 1] * srcScale;\n var y = src[srcOffset + 2] * srcScale;\n var k = src[srcOffset + 3] * srcScale;\n var r = c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747) + 255 | 0;\n var g = c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578) + 255 | 0;\n var b = c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367) + 255 | 0;\n dest[destOffset] = r > 255 ? 255 : r < 0 ? 0 : r;\n dest[destOffset + 1] = g > 255 ? 255 : g < 0 ? 0 : g;\n dest[destOffset + 2] = b > 255 ? 255 : b < 0 ? 0 : b;\n }\n function DeviceCmykCS() {\n this.name = 'DeviceCMYK';\n this.numComps = 4;\n this.defaultColor = new Float32Array(this.numComps);\n this.defaultColor[3] = 1;\n }\n DeviceCmykCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function DeviceCmykCS_getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(src, srcOffset, 1, dest, destOffset);\n },\n getRgbBuffer: function DeviceCmykCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 1 / ((1 << bits) - 1);\n for (var i = 0; i < count; i++) {\n convertToRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n },\n getOutputLength: function DeviceCmykCS_getOutputLength(inputLength, alpha01) {\n return inputLength / 4 * (3 + alpha01) | 0;\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function DeviceCmykCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return DeviceCmykCS;\n }();\n var CalGrayCS = function CalGrayCSClosure() {\n function CalGrayCS(whitePoint, blackPoint, gamma) {\n this.name = 'CalGray';\n this.numComps = 1;\n this.defaultColor = new Float32Array(this.numComps);\n if (!whitePoint) {\n throw new _util.FormatError('WhitePoint missing - required for color space CalGray');\n }\n blackPoint = blackPoint || [0, 0, 0];\n gamma = gamma || 1;\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n this.G = gamma;\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new _util.FormatError('Invalid WhitePoint components for ' + this.name + ', no fallback available');\n }\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n (0, _util.info)('Invalid BlackPoint for ' + this.name + ', falling back to default');\n this.XB = this.YB = this.ZB = 0;\n }\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n (0, _util.warn)(this.name + ', BlackPoint: XB: ' + this.XB + ', YB: ' + this.YB + ', ZB: ' + this.ZB + ', only default values are supported.');\n }\n if (this.G < 1) {\n (0, _util.info)('Invalid Gamma: ' + this.G + ' for ' + this.name + ', falling back to default');\n this.G = 1;\n }\n }\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n var A = src[srcOffset] * scale;\n var AG = Math.pow(A, cs.G);\n var L = cs.YW * AG;\n var val = Math.max(295.8 * Math.pow(L, 0.333333333333333333) - 40.8, 0) | 0;\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n CalGrayCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function CalGrayCS_getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n },\n getRgbBuffer: function CalGrayCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 1 / ((1 << bits) - 1);\n for (var i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n },\n getOutputLength: function CalGrayCS_getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function CalGrayCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return CalGrayCS;\n }();\n var CalRGBCS = function CalRGBCSClosure() {\n var BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n var BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);\n var SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);\n var FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n var tempNormalizeMatrix = new Float32Array(3);\n var tempConvertMatrix1 = new Float32Array(3);\n var tempConvertMatrix2 = new Float32Array(3);\n var DECODE_L_CONSTANT = Math.pow((8 + 16) / 116, 3) / 8.0;\n function CalRGBCS(whitePoint, blackPoint, gamma, matrix) {\n this.name = 'CalRGB';\n this.numComps = 3;\n this.defaultColor = new Float32Array(this.numComps);\n if (!whitePoint) {\n throw new _util.FormatError('WhitePoint missing - required for color space CalRGB');\n }\n blackPoint = blackPoint || new Float32Array(3);\n gamma = gamma || new Float32Array([1, 1, 1]);\n matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n var XW = whitePoint[0];\n var YW = whitePoint[1];\n var ZW = whitePoint[2];\n this.whitePoint = whitePoint;\n var XB = blackPoint[0];\n var YB = blackPoint[1];\n var ZB = blackPoint[2];\n this.blackPoint = blackPoint;\n this.GR = gamma[0];\n this.GG = gamma[1];\n this.GB = gamma[2];\n this.MXA = matrix[0];\n this.MYA = matrix[1];\n this.MZA = matrix[2];\n this.MXB = matrix[3];\n this.MYB = matrix[4];\n this.MZB = matrix[5];\n this.MXC = matrix[6];\n this.MYC = matrix[7];\n this.MZC = matrix[8];\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new _util.FormatError('Invalid WhitePoint components for ' + this.name + ', no fallback available');\n }\n if (XB < 0 || YB < 0 || ZB < 0) {\n (0, _util.info)('Invalid BlackPoint for ' + this.name + ' [' + XB + ', ' + YB + ', ' + ZB + '], falling back to default');\n this.blackPoint = new Float32Array(3);\n }\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n (0, _util.info)('Invalid Gamma [' + this.GR + ', ' + this.GG + ', ' + this.GB + '] for ' + this.name + ', falling back to default');\n this.GR = this.GG = this.GB = 1;\n }\n if (this.MXA < 0 || this.MYA < 0 || this.MZA < 0 || this.MXB < 0 || this.MYB < 0 || this.MZB < 0 || this.MXC < 0 || this.MYC < 0 || this.MZC < 0) {\n (0, _util.info)('Invalid Matrix for ' + this.name + ' [' + this.MXA + ', ' + this.MYA + ', ' + this.MZA + this.MXB + ', ' + this.MYB + ', ' + this.MZB + this.MXC + ', ' + this.MYC + ', ' + this.MZC + '], falling back to default');\n this.MXA = this.MYB = this.MZC = 1;\n this.MXB = this.MYA = this.MZA = this.MXC = this.MYC = this.MZB = 0;\n }\n }\n function matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n function convertToFlat(sourceWhitePoint, LMS, result) {\n result[0] = LMS[0] * 1 / sourceWhitePoint[0];\n result[1] = LMS[1] * 1 / sourceWhitePoint[1];\n result[2] = LMS[2] * 1 / sourceWhitePoint[2];\n }\n function convertToD65(sourceWhitePoint, LMS, result) {\n var D65X = 0.95047;\n var D65Y = 1;\n var D65Z = 1.08883;\n result[0] = LMS[0] * D65X / sourceWhitePoint[0];\n result[1] = LMS[1] * D65Y / sourceWhitePoint[1];\n result[2] = LMS[2] * D65Z / sourceWhitePoint[2];\n }\n function sRGBTransferFunction(color) {\n if (color <= 0.0031308) {\n return adjustToRange(0, 1, 12.92 * color);\n }\n return adjustToRange(0, 1, (1 + 0.055) * Math.pow(color, 1 / 2.4) - 0.055);\n }\n function adjustToRange(min, max, value) {\n return Math.max(min, Math.min(max, value));\n }\n function decodeL(L) {\n if (L < 0) {\n return -decodeL(-L);\n }\n if (L > 8.0) {\n return Math.pow((L + 16) / 116, 3);\n }\n return L * DECODE_L_CONSTANT;\n }\n function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n var zeroDecodeL = decodeL(0);\n var X_DST = zeroDecodeL;\n var X_SRC = decodeL(sourceBlackPoint[0]);\n var Y_DST = zeroDecodeL;\n var Y_SRC = decodeL(sourceBlackPoint[1]);\n var Z_DST = zeroDecodeL;\n var Z_SRC = decodeL(sourceBlackPoint[2]);\n var X_Scale = (1 - X_DST) / (1 - X_SRC);\n var X_Offset = 1 - X_Scale;\n var Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n var Y_Offset = 1 - Y_Scale;\n var Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n var Z_Offset = 1 - Z_Scale;\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n var LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n var LMS_Flat = tempNormalizeMatrix;\n convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n }\n function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n var LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n var LMS_D65 = tempNormalizeMatrix;\n convertToD65(sourceWhitePoint, LMS, LMS_D65);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n }\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n var A = adjustToRange(0, 1, src[srcOffset] * scale);\n var B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n var C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n var AGR = Math.pow(A, cs.GR);\n var BGG = Math.pow(B, cs.GG);\n var CGB = Math.pow(C, cs.GB);\n var X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n var Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n var Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n var XYZ = tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n var XYZ_Flat = tempConvertMatrix2;\n normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n var XYZ_Black = tempConvertMatrix1;\n compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n var XYZ_D65 = tempConvertMatrix2;\n normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n var SRGB = tempConvertMatrix1;\n matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n var sR = sRGBTransferFunction(SRGB[0]);\n var sG = sRGBTransferFunction(SRGB[1]);\n var sB = sRGBTransferFunction(SRGB[2]);\n dest[destOffset] = Math.round(sR * 255);\n dest[destOffset + 1] = Math.round(sG * 255);\n dest[destOffset + 2] = Math.round(sB * 255);\n }\n CalRGBCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function CalRGBCS_getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n },\n getRgbBuffer: function CalRGBCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 1 / ((1 << bits) - 1);\n for (var i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n },\n getOutputLength: function CalRGBCS_getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function CalRGBCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return CalRGBCS;\n }();\n var LabCS = function LabCSClosure() {\n function LabCS(whitePoint, blackPoint, range) {\n this.name = 'Lab';\n this.numComps = 3;\n this.defaultColor = new Float32Array(this.numComps);\n if (!whitePoint) {\n throw new _util.FormatError('WhitePoint missing - required for color space Lab');\n }\n blackPoint = blackPoint || [0, 0, 0];\n range = range || [-100, 100, -100, 100];\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.amin = range[0];\n this.amax = range[1];\n this.bmin = range[2];\n this.bmax = range[3];\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new _util.FormatError('Invalid WhitePoint components, no fallback available');\n }\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n (0, _util.info)('Invalid BlackPoint, falling back to default');\n this.XB = this.YB = this.ZB = 0;\n }\n if (this.amin > this.amax || this.bmin > this.bmax) {\n (0, _util.info)('Invalid Range, falling back to defaults');\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n function fn_g(x) {\n var result;\n if (x >= 6 / 29) {\n result = x * x * x;\n } else {\n result = 108 / 841 * (x - 4 / 29);\n }\n return result;\n }\n function decode(value, high1, low2, high2) {\n return low2 + value * (high2 - low2) / high1;\n }\n function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n var Ls = src[srcOffset];\n var as = src[srcOffset + 1];\n var bs = src[srcOffset + 2];\n if (maxVal !== false) {\n Ls = decode(Ls, maxVal, 0, 100);\n as = decode(as, maxVal, cs.amin, cs.amax);\n bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n }\n as = as > cs.amax ? cs.amax : as < cs.amin ? cs.amin : as;\n bs = bs > cs.bmax ? cs.bmax : bs < cs.bmin ? cs.bmin : bs;\n var M = (Ls + 16) / 116;\n var L = M + as / 500;\n var N = M - bs / 200;\n var X = cs.XW * fn_g(L);\n var Y = cs.YW * fn_g(M);\n var Z = cs.ZW * fn_g(N);\n var r, g, b;\n if (cs.ZW < 1) {\n r = X * 3.1339 + Y * -1.6170 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.9160 + Z * 0.0333;\n b = X * 0.0720 + Y * -0.2290 + Z * 1.4057;\n } else {\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.2040 + Z * 1.0570;\n }\n dest[destOffset] = r <= 0 ? 0 : r >= 1 ? 255 : Math.sqrt(r) * 255 | 0;\n dest[destOffset + 1] = g <= 0 ? 0 : g >= 1 ? 255 : Math.sqrt(g) * 255 | 0;\n dest[destOffset + 2] = b <= 0 ? 0 : b >= 1 ? 255 : Math.sqrt(b) * 255 | 0;\n }\n LabCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function LabCS_getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, false, dest, destOffset);\n },\n getRgbBuffer: function LabCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var maxVal = (1 << bits) - 1;\n for (var i = 0; i < count; i++) {\n convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n },\n getOutputLength: function LabCS_getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function LabCS_isDefaultDecode(decodeMap) {\n return true;\n },\n usesZeroToOneRange: false\n };\n return LabCS;\n }();\n exports.ColorSpace = ColorSpace;\n\n /***/\n }, /* 16 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var 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'];\n var 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'];\n var 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'];\n var 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'];\n var 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'];\n var 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'];\n var 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'];\n function getEncoding(encodingName) {\n switch (encodingName) {\n case 'WinAnsiEncoding':\n return WinAnsiEncoding;\n case 'StandardEncoding':\n return StandardEncoding;\n case 'MacRomanEncoding':\n return MacRomanEncoding;\n case 'SymbolSetEncoding':\n return SymbolSetEncoding;\n case 'ZapfDingbatsEncoding':\n return ZapfDingbatsEncoding;\n case 'ExpertEncoding':\n return ExpertEncoding;\n case 'MacExpertEncoding':\n return MacExpertEncoding;\n default:\n return null;\n }\n }\n exports.WinAnsiEncoding = WinAnsiEncoding;\n exports.StandardEncoding = StandardEncoding;\n exports.MacRomanEncoding = MacRomanEncoding;\n exports.SymbolSetEncoding = SymbolSetEncoding;\n exports.ZapfDingbatsEncoding = ZapfDingbatsEncoding;\n exports.ExpertEncoding = ExpertEncoding;\n exports.getEncoding = getEncoding;\n\n /***/\n }, /* 17 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(10);\n module.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n };\n\n /***/\n }, /* 18 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var core = module.exports = {\n version: '2.5.0'\n };\n if (typeof __e == 'number') __e = core;\n\n /***/\n }, /* 19 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n };\n\n /***/\n }, /* 20 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n };\n\n /***/\n }, /* 21 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toInteger = __w_pdfjs_require__(12);\n var max = Math.max;\n var min = Math.min;\n module.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n };\n\n /***/\n }, /* 22 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var IObject = __w_pdfjs_require__(43);\n var defined = __w_pdfjs_require__(39);\n module.exports = function (it) {\n return IObject(defined(it));\n };\n\n /***/\n }, /* 23 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Parser = exports.Linearization = exports.Lexer = undefined;\n var _stream = __w_pdfjs_require__(3);\n var _util = __w_pdfjs_require__(0);\n var _primitives = __w_pdfjs_require__(1);\n var MAX_LENGTH_TO_CACHE = 1000;\n var Parser = function ParserClosure() {\n function Parser(lexer, allowStreams, xref, recoveryMode) {\n this.lexer = lexer;\n this.allowStreams = allowStreams;\n this.xref = xref;\n this.recoveryMode = recoveryMode || false;\n this.imageCache = Object.create(null);\n this.refill();\n }\n Parser.prototype = {\n refill: function Parser_refill() {\n this.buf1 = this.lexer.getObj();\n this.buf2 = this.lexer.getObj();\n },\n shift: function Parser_shift() {\n if ((0, _primitives.isCmd)(this.buf2, 'ID')) {\n this.buf1 = this.buf2;\n this.buf2 = null;\n } else {\n this.buf1 = this.buf2;\n this.buf2 = this.lexer.getObj();\n }\n },\n tryShift: function Parser_tryShift() {\n try {\n this.shift();\n return true;\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n throw e;\n }\n return false;\n }\n },\n getObj: function Parser_getObj(cipherTransform) {\n var buf1 = this.buf1;\n this.shift();\n if (buf1 instanceof _primitives.Cmd) {\n switch (buf1.cmd) {\n case 'BI':\n return this.makeInlineImage(cipherTransform);\n case '[':\n var array = [];\n while (!(0, _primitives.isCmd)(this.buf1, ']') && !(0, _primitives.isEOF)(this.buf1)) {\n array.push(this.getObj(cipherTransform));\n }\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError('End of file inside array');\n }\n return array;\n }\n this.shift();\n return array;\n case '<<':\n var dict = new _primitives.Dict(this.xref);\n while (!(0, _primitives.isCmd)(this.buf1, '>>') && !(0, _primitives.isEOF)(this.buf1)) {\n if (!(0, _primitives.isName)(this.buf1)) {\n (0, _util.info)('Malformed dictionary: key must be a name object');\n this.shift();\n continue;\n }\n var key = this.buf1.name;\n this.shift();\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError('End of file inside dictionary');\n }\n return dict;\n }\n if ((0, _primitives.isCmd)(this.buf2, 'stream')) {\n return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n }\n this.shift();\n return dict;\n default:\n return buf1;\n }\n }\n if ((0, _util.isInt)(buf1)) {\n var num = buf1;\n if ((0, _util.isInt)(this.buf1) && (0, _primitives.isCmd)(this.buf2, 'R')) {\n var ref = new _primitives.Ref(num, this.buf1);\n this.shift();\n this.shift();\n return ref;\n }\n return num;\n }\n if ((0, _util.isString)(buf1)) {\n var str = buf1;\n if (cipherTransform) {\n str = cipherTransform.decryptString(str);\n }\n return str;\n }\n return buf1;\n },\n findDefaultInlineStreamEnd: function findDefaultInlineStreamEnd(stream) {\n var E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xA,\n CR = 0xD;\n var n = 10,\n NUL = 0x0;\n var startPos = stream.pos,\n state = 0,\n ch = void 0,\n maybeEIPos = void 0;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else {\n (0, _util.assert)(state === 2);\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n var followingBytes = stream.peekBytes(n);\n for (var i = 0, ii = followingBytes.length; i < ii; i++) {\n ch = followingBytes[i];\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n continue;\n }\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7F)) {\n state = 0;\n break;\n }\n }\n if (state === 2) {\n break;\n }\n } else {\n state = 0;\n }\n }\n }\n if (ch === -1) {\n (0, _util.warn)('findDefaultInlineStreamEnd: ' + 'Reached the end of the stream without finding a valid EI marker');\n if (maybeEIPos) {\n (0, _util.warn)('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos));\n }\n }\n return stream.pos - 4 - startPos;\n },\n findDCTDecodeInlineStreamEnd: function Parser_findDCTDecodeInlineStreamEnd(stream) {\n var startPos = stream.pos,\n foundEOI = false,\n b,\n markerLength,\n length;\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xFF) {\n continue;\n }\n switch (stream.getByte()) {\n case 0x00:\n break;\n case 0xFF:\n stream.skip(-1);\n break;\n case 0xD9:\n foundEOI = true;\n break;\n case 0xC0:\n case 0xC1:\n case 0xC2:\n case 0xC3:\n case 0xC5:\n case 0xC6:\n case 0xC7:\n case 0xC9:\n case 0xCA:\n case 0xCB:\n case 0xCD:\n case 0xCE:\n case 0xCF:\n case 0xC4:\n case 0xCC:\n case 0xDA:\n case 0xDB:\n case 0xDC:\n case 0xDD:\n case 0xDE:\n case 0xDF:\n case 0xE0:\n case 0xE1:\n case 0xE2:\n case 0xE3:\n case 0xE4:\n case 0xE5:\n case 0xE6:\n case 0xE7:\n case 0xE8:\n case 0xE9:\n case 0xEA:\n case 0xEB:\n case 0xEC:\n case 0xED:\n case 0xEE:\n case 0xEF:\n case 0xFE:\n markerLength = stream.getUint16();\n if (markerLength > 2) {\n stream.skip(markerLength - 2);\n } else {\n stream.skip(-2);\n }\n break;\n }\n if (foundEOI) {\n break;\n }\n }\n length = stream.pos - startPos;\n if (b === -1) {\n (0, _util.warn)('Inline DCTDecode image stream: ' + 'EOI marker not found, searching for /EI/ instead.');\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n },\n findASCII85DecodeInlineStreamEnd: function Parser_findASCII85DecodeInlineStreamEnd(stream) {\n var TILDE = 0x7E,\n GT = 0x3E;\n var startPos = stream.pos,\n ch,\n length;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE && stream.peekByte() === GT) {\n stream.skip();\n break;\n }\n }\n length = stream.pos - startPos;\n if (ch === -1) {\n (0, _util.warn)('Inline ASCII85Decode image stream: ' + 'EOD marker not found, searching for /EI/ instead.');\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n },\n findASCIIHexDecodeInlineStreamEnd: function Parser_findASCIIHexDecodeInlineStreamEnd(stream) {\n var GT = 0x3E;\n var startPos = stream.pos,\n ch,\n length;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n length = stream.pos - startPos;\n if (ch === -1) {\n (0, _util.warn)('Inline ASCIIHexDecode image stream: ' + 'EOD marker not found, searching for /EI/ instead.');\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n },\n inlineStreamSkipEI: function Parser_inlineStreamSkipEI(stream) {\n var E = 0x45,\n I = 0x49;\n var state = 0,\n ch;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else if (state === 2) {\n break;\n }\n }\n },\n makeInlineImage: function Parser_makeInlineImage(cipherTransform) {\n var lexer = this.lexer;\n var stream = lexer.stream;\n var dict = new _primitives.Dict(this.xref);\n while (!(0, _primitives.isCmd)(this.buf1, 'ID') && !(0, _primitives.isEOF)(this.buf1)) {\n if (!(0, _primitives.isName)(this.buf1)) {\n throw new _util.FormatError('Dictionary key must be a name object');\n }\n var key = this.buf1.name;\n this.shift();\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n var filter = dict.get('Filter', 'F'),\n filterName;\n if ((0, _primitives.isName)(filter)) {\n filterName = filter.name;\n } else if ((0, _util.isArray)(filter)) {\n var filterZero = this.xref.fetchIfRef(filter[0]);\n if ((0, _primitives.isName)(filterZero)) {\n filterName = filterZero.name;\n }\n }\n var startPos = stream.pos,\n length,\n i,\n ii;\n if (filterName === 'DCTDecode' || filterName === 'DCT') {\n length = this.findDCTDecodeInlineStreamEnd(stream);\n } else if (filterName === 'ASCII85Decode' || filterName === 'A85') {\n length = this.findASCII85DecodeInlineStreamEnd(stream);\n } else if (filterName === 'ASCIIHexDecode' || filterName === 'AHx') {\n length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n } else {\n length = this.findDefaultInlineStreamEnd(stream);\n }\n var imageStream = stream.makeSubStream(startPos, length, dict);\n var adler32;\n if (length < MAX_LENGTH_TO_CACHE) {\n var imageBytes = imageStream.getBytes();\n imageStream.reset();\n var a = 1;\n var b = 0;\n for (i = 0, ii = imageBytes.length; i < ii; ++i) {\n a += imageBytes[i] & 0xff;\n b += a;\n }\n adler32 = b % 65521 << 16 | a % 65521;\n var cacheEntry = this.imageCache[adler32];\n if (cacheEntry !== undefined) {\n this.buf2 = _primitives.Cmd.get('EI');\n this.shift();\n cacheEntry.reset();\n return cacheEntry;\n }\n }\n if (cipherTransform) {\n imageStream = cipherTransform.createStream(imageStream, length);\n }\n imageStream = this.filter(imageStream, dict, length);\n imageStream.dict = dict;\n if (adler32 !== undefined) {\n imageStream.cacheKey = 'inline_' + length + '_' + adler32;\n this.imageCache[adler32] = imageStream;\n }\n this.buf2 = _primitives.Cmd.get('EI');\n this.shift();\n return imageStream;\n },\n makeStream: function Parser_makeStream(dict, cipherTransform) {\n var lexer = this.lexer;\n var stream = lexer.stream;\n lexer.skipToNextLine();\n var pos = stream.pos - 1;\n var length = dict.get('Length');\n if (!(0, _util.isInt)(length)) {\n (0, _util.info)('Bad ' + length + ' attribute in stream');\n length = 0;\n }\n stream.pos = pos + length;\n lexer.nextChar();\n if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, 'endstream')) {\n this.shift();\n } else {\n stream.pos = pos;\n var SCAN_BLOCK_SIZE = 2048;\n var ENDSTREAM_SIGNATURE_LENGTH = 9;\n var ENDSTREAM_SIGNATURE = [0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D];\n var skipped = 0,\n found = false,\n i,\n j;\n while (stream.pos < stream.end) {\n var scanBytes = stream.peekBytes(SCAN_BLOCK_SIZE);\n var scanLength = scanBytes.length - ENDSTREAM_SIGNATURE_LENGTH;\n if (scanLength <= 0) {\n break;\n }\n found = false;\n i = 0;\n while (i < scanLength) {\n j = 0;\n while (j < ENDSTREAM_SIGNATURE_LENGTH && scanBytes[i + j] === ENDSTREAM_SIGNATURE[j]) {\n j++;\n }\n if (j >= ENDSTREAM_SIGNATURE_LENGTH) {\n found = true;\n break;\n }\n i++;\n }\n if (found) {\n skipped += i;\n stream.pos += i;\n break;\n }\n skipped += scanLength;\n stream.pos += scanLength;\n }\n if (!found) {\n throw new _util.FormatError('Missing endstream');\n }\n length = skipped;\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n this.shift();\n stream = stream.makeSubStream(pos, length, dict);\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\n stream = this.filter(stream, dict, length);\n stream.dict = dict;\n return stream;\n },\n filter: function Parser_filter(stream, dict, length) {\n var filter = dict.get('Filter', 'F');\n var params = dict.get('DecodeParms', 'DP');\n if ((0, _primitives.isName)(filter)) {\n if ((0, _util.isArray)(params)) {\n params = this.xref.fetchIfRef(params[0]);\n }\n return this.makeFilter(stream, filter.name, length, params);\n }\n var maybeLength = length;\n if ((0, _util.isArray)(filter)) {\n var filterArray = filter;\n var paramsArray = params;\n for (var i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n if (!(0, _primitives.isName)(filter)) {\n throw new _util.FormatError('Bad filter name: ' + filter);\n }\n params = null;\n if ((0, _util.isArray)(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n maybeLength = null;\n }\n }\n return stream;\n },\n makeFilter: function Parser_makeFilter(stream, name, maybeLength, params) {\n if (maybeLength === 0) {\n (0, _util.warn)('Empty \"' + name + '\" stream.');\n return new _stream.NullStream(stream);\n }\n try {\n var xrefStreamStats = this.xref.stats.streamTypes;\n if (name === 'FlateDecode' || name === 'Fl') {\n xrefStreamStats[_util.StreamType.FLATE] = true;\n if (params) {\n return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params);\n }\n return new _stream.FlateStream(stream, maybeLength);\n }\n if (name === 'LZWDecode' || name === 'LZW') {\n xrefStreamStats[_util.StreamType.LZW] = true;\n var earlyChange = 1;\n if (params) {\n if (params.has('EarlyChange')) {\n earlyChange = params.get('EarlyChange');\n }\n return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n }\n return new _stream.LZWStream(stream, maybeLength, earlyChange);\n }\n if (name === 'DCTDecode' || name === 'DCT') {\n xrefStreamStats[_util.StreamType.DCT] = true;\n return new _stream.JpegStream(stream, maybeLength, stream.dict, params);\n }\n if (name === 'JPXDecode' || name === 'JPX') {\n xrefStreamStats[_util.StreamType.JPX] = true;\n return new _stream.JpxStream(stream, maybeLength, stream.dict, params);\n }\n if (name === 'ASCII85Decode' || name === 'A85') {\n xrefStreamStats[_util.StreamType.A85] = true;\n return new _stream.Ascii85Stream(stream, maybeLength);\n }\n if (name === 'ASCIIHexDecode' || name === 'AHx') {\n xrefStreamStats[_util.StreamType.AHX] = true;\n return new _stream.AsciiHexStream(stream, maybeLength);\n }\n if (name === 'CCITTFaxDecode' || name === 'CCF') {\n xrefStreamStats[_util.StreamType.CCF] = true;\n return new _stream.CCITTFaxStream(stream, maybeLength, params);\n }\n if (name === 'RunLengthDecode' || name === 'RL') {\n xrefStreamStats[_util.StreamType.RL] = true;\n return new _stream.RunLengthStream(stream, maybeLength);\n }\n if (name === 'JBIG2Decode') {\n xrefStreamStats[_util.StreamType.JBIG] = true;\n return new _stream.Jbig2Stream(stream, maybeLength, stream.dict, params);\n }\n (0, _util.warn)('filter \"' + name + '\" not supported yet');\n return stream;\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Invalid stream: \\\"' + ex + '\\\"');\n return new _stream.NullStream(stream);\n }\n }\n };\n return Parser;\n }();\n var Lexer = function LexerClosure() {\n function Lexer(stream, knownCommands) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n this.knownCommands = knownCommands;\n }\n var specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n function toHexDigit(ch) {\n if (ch >= 0x30 && ch <= 0x39) {\n return ch & 0x0F;\n }\n if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n return (ch & 0x0F) + 9;\n }\n return -1;\n }\n Lexer.prototype = {\n nextChar: function Lexer_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n peekChar: function Lexer_peekChar() {\n return this.stream.peekByte();\n },\n getNumber: function Lexer_getNumber() {\n var ch = this.currentChar;\n var eNotation = false;\n var divideBy = 0;\n var sign = 1;\n if (ch === 0x2D) {\n sign = -1;\n ch = this.nextChar();\n if (ch === 0x2D) {\n ch = this.nextChar();\n }\n } else if (ch === 0x2B) {\n ch = this.nextChar();\n }\n if (ch === 0x2E) {\n divideBy = 10;\n ch = this.nextChar();\n }\n if (ch === 0x0A || ch === 0x0D) {\n do {\n ch = this.nextChar();\n } while (ch === 0x0A || ch === 0x0D);\n }\n if (ch < 0x30 || ch > 0x39) {\n throw new _util.FormatError('Invalid number: ' + String.fromCharCode(ch) + ' (charCode ' + ch + ')');\n }\n var baseValue = ch - 0x30;\n var powerValue = 0;\n var powerValueSign = 1;\n while ((ch = this.nextChar()) >= 0) {\n if (0x30 <= ch && ch <= 0x39) {\n var currentDigit = ch - 0x30;\n if (eNotation) {\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n divideBy *= 10;\n }\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === 0x2E) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n break;\n }\n } else if (ch === 0x2D) {\n (0, _util.warn)('Badly formatted number');\n } else if (ch === 0x45 || ch === 0x65) {\n ch = this.peekChar();\n if (ch === 0x2B || ch === 0x2D) {\n powerValueSign = ch === 0x2D ? -1 : 1;\n this.nextChar();\n } else if (ch < 0x30 || ch > 0x39) {\n break;\n }\n eNotation = true;\n } else {\n break;\n }\n }\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n if (eNotation) {\n baseValue *= Math.pow(10, powerValueSign * powerValue);\n }\n return sign * baseValue;\n },\n getString: function Lexer_getString() {\n var numParen = 1;\n var done = false;\n var strBuf = this.strBuf;\n strBuf.length = 0;\n var ch = this.nextChar();\n while (true) {\n var charBuffered = false;\n switch (ch | 0) {\n case -1:\n (0, _util.warn)('Unterminated string');\n done = true;\n break;\n case 0x28:\n ++numParen;\n strBuf.push('(');\n break;\n case 0x29:\n if (--numParen === 0) {\n this.nextChar();\n done = true;\n } else {\n strBuf.push(')');\n }\n break;\n case 0x5C:\n ch = this.nextChar();\n switch (ch) {\n case -1:\n (0, _util.warn)('Unterminated string');\n done = true;\n break;\n case 0x6E:\n strBuf.push('\\n');\n break;\n case 0x72:\n strBuf.push('\\r');\n break;\n case 0x74:\n strBuf.push('\\t');\n break;\n case 0x62:\n strBuf.push('\\b');\n break;\n case 0x66:\n strBuf.push('\\f');\n break;\n case 0x5C:\n case 0x28:\n case 0x29:\n strBuf.push(String.fromCharCode(ch));\n break;\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n var x = ch & 0x0F;\n ch = this.nextChar();\n charBuffered = true;\n if (ch >= 0x30 && ch <= 0x37) {\n x = (x << 3) + (ch & 0x0F);\n ch = this.nextChar();\n if (ch >= 0x30 && ch <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0F);\n }\n }\n strBuf.push(String.fromCharCode(x));\n break;\n case 0x0D:\n if (this.peekChar() === 0x0A) {\n this.nextChar();\n }\n break;\n case 0x0A:\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n if (done) {\n break;\n }\n if (!charBuffered) {\n ch = this.nextChar();\n }\n }\n return strBuf.join('');\n },\n getName: function Lexer_getName() {\n var ch, previousCh;\n var strBuf = this.strBuf;\n strBuf.length = 0;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n if (ch === 0x23) {\n ch = this.nextChar();\n if (specialChars[ch]) {\n (0, _util.warn)('Lexer_getName: ' + 'NUMBER SIGN (#) should be followed by a hexadecimal number.');\n strBuf.push('#');\n break;\n }\n var x = toHexDigit(ch);\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n var x2 = toHexDigit(ch);\n if (x2 === -1) {\n (0, _util.warn)('Lexer_getName: Illegal digit (' + String.fromCharCode(ch) + ') in hexadecimal number.');\n strBuf.push('#', String.fromCharCode(previousCh));\n if (specialChars[ch]) {\n break;\n }\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\n strBuf.push(String.fromCharCode(x << 4 | x2));\n } else {\n strBuf.push('#', String.fromCharCode(ch));\n }\n } else {\n strBuf.push(String.fromCharCode(ch));\n }\n }\n if (strBuf.length > 127) {\n (0, _util.warn)('name token is longer than allowed by the spec: ' + strBuf.length);\n }\n return _primitives.Name.get(strBuf.join(''));\n },\n getHexString: function Lexer_getHexString() {\n var strBuf = this.strBuf;\n strBuf.length = 0;\n var ch = this.currentChar;\n var isFirstHex = true;\n var firstDigit;\n var secondDigit;\n while (true) {\n if (ch < 0) {\n (0, _util.warn)('Unterminated hex string');\n break;\n } else if (ch === 0x3E) {\n this.nextChar();\n break;\n } else if (specialChars[ch] === 1) {\n ch = this.nextChar();\n continue;\n } else {\n if (isFirstHex) {\n firstDigit = toHexDigit(ch);\n if (firstDigit === -1) {\n (0, _util.warn)('Ignoring invalid character \"' + ch + '\" in hex string');\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n if (secondDigit === -1) {\n (0, _util.warn)('Ignoring invalid character \"' + ch + '\" in hex string');\n ch = this.nextChar();\n continue;\n }\n strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit));\n }\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n return strBuf.join('');\n },\n getObj: function Lexer_getObj() {\n var comment = false;\n var ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return _primitives.EOF;\n }\n if (comment) {\n if (ch === 0x0A || ch === 0x0D) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (specialChars[ch] !== 1) {\n break;\n }\n ch = this.nextChar();\n }\n switch (ch | 0) {\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n case 0x38:\n case 0x39:\n case 0x2B:\n case 0x2D:\n case 0x2E:\n return this.getNumber();\n case 0x28:\n return this.getString();\n case 0x2F:\n return this.getName();\n case 0x5B:\n this.nextChar();\n return _primitives.Cmd.get('[');\n case 0x5D:\n this.nextChar();\n return _primitives.Cmd.get(']');\n case 0x3C:\n ch = this.nextChar();\n if (ch === 0x3C) {\n this.nextChar();\n return _primitives.Cmd.get('<<');\n }\n return this.getHexString();\n case 0x3E:\n ch = this.nextChar();\n if (ch === 0x3E) {\n this.nextChar();\n return _primitives.Cmd.get('>>');\n }\n return _primitives.Cmd.get('>');\n case 0x7B:\n this.nextChar();\n return _primitives.Cmd.get('{');\n case 0x7D:\n this.nextChar();\n return _primitives.Cmd.get('}');\n case 0x29:\n this.nextChar();\n throw new _util.FormatError('Illegal character: ' + ch);\n }\n var str = String.fromCharCode(ch);\n var knownCommands = this.knownCommands;\n var knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n var possibleCommand = str + String.fromCharCode(ch);\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n if (str.length === 128) {\n throw new _util.FormatError('Command token too long: ' + str.length);\n }\n str = possibleCommand;\n knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n }\n if (str === 'true') {\n return true;\n }\n if (str === 'false') {\n return false;\n }\n if (str === 'null') {\n return null;\n }\n return _primitives.Cmd.get(str);\n },\n skipToNextLine: function Lexer_skipToNextLine() {\n var ch = this.currentChar;\n while (ch >= 0) {\n if (ch === 0x0D) {\n ch = this.nextChar();\n if (ch === 0x0A) {\n this.nextChar();\n }\n break;\n } else if (ch === 0x0A) {\n this.nextChar();\n break;\n }\n ch = this.nextChar();\n }\n }\n };\n return Lexer;\n }();\n var Linearization = {\n create: function LinearizationCreate(stream) {\n function getInt(name, allowZeroValue) {\n var obj = linDict.get(name);\n if ((0, _util.isInt)(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n throw new Error('The \"' + name + '\" parameter in the linearization ' + 'dictionary is invalid.');\n }\n function getHints() {\n var hints = linDict.get('H'),\n hintsLength,\n item;\n if ((0, _util.isArray)(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n for (var index = 0; index < hintsLength; index++) {\n if (!((0, _util.isInt)(item = hints[index]) && item > 0)) {\n throw new Error('Hint (' + index + ') in the linearization dictionary is invalid.');\n }\n }\n return hints;\n }\n throw new Error('Hint array in the linearization dictionary is invalid.');\n }\n var parser = new Parser(new Lexer(stream), false, null);\n var obj1 = parser.getObj();\n var obj2 = parser.getObj();\n var obj3 = parser.getObj();\n var linDict = parser.getObj();\n var obj, length;\n if (!((0, _util.isInt)(obj1) && (0, _util.isInt)(obj2) && (0, _primitives.isCmd)(obj3, 'obj') && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get('Linearized')) && obj > 0)) {\n return null;\n } else if ((length = getInt('L')) !== stream.length) {\n throw new Error('The \"L\" parameter in the linearization dictionary ' + 'does not equal the stream length.');\n }\n return {\n length: length,\n hints: getHints(),\n objectNumberFirst: getInt('O'),\n endFirst: getInt('E'),\n numPages: getInt('N'),\n mainXRefEntriesOffset: getInt('T'),\n pageFirst: linDict.has('P') ? getInt('P', true) : 0\n };\n }\n };\n exports.Lexer = Lexer;\n exports.Linearization = Linearization;\n exports.Parser = Parser;\n\n /***/\n }, /* 24 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toString = {}.toString;\n module.exports = function (it) {\n return toString.call(it).slice(8, -1);\n };\n\n /***/\n }, /* 25 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var aFunction = __w_pdfjs_require__(34);\n module.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function () {\n return fn.apply(that, arguments);\n };\n };\n\n /***/\n }, /* 26 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');\n\n /***/\n }, /* 27 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = false;\n\n /***/\n }, /* 28 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(4);\n var hide = __w_pdfjs_require__(6);\n var has = __w_pdfjs_require__(7);\n var SRC = __w_pdfjs_require__(14)('src');\n var TO_STRING = 'toString';\n var $toString = Function[TO_STRING];\n var TPL = ('' + $toString).split(TO_STRING);\n __w_pdfjs_require__(18).inspectSource = function (it) {\n return $toString.call(it);\n };\n (module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n })(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n });\n\n /***/\n }, /* 29 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var def = __w_pdfjs_require__(9).f;\n var has = __w_pdfjs_require__(7);\n var TAG = __w_pdfjs_require__(2)('toStringTag');\n module.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {\n configurable: true,\n value: tag\n });\n };\n\n /***/\n }, /* 30 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var shared = __w_pdfjs_require__(49)('keys');\n var uid = __w_pdfjs_require__(14);\n module.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n };\n\n /***/\n }, /* 31 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(10);\n module.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n };\n\n /***/\n }, /* 32 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunction = exports.isPDFFunction = undefined;\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _util = __w_pdfjs_require__(0);\n var _primitives = __w_pdfjs_require__(1);\n var _ps_parser = __w_pdfjs_require__(101);\n var PDFFunction = function PDFFunctionClosure() {\n var CONSTRUCT_SAMPLED = 0;\n var CONSTRUCT_INTERPOLATED = 2;\n var CONSTRUCT_STICHED = 3;\n var CONSTRUCT_POSTSCRIPT = 4;\n return {\n getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps, str) {\n var i, ii;\n var length = 1;\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n length *= outputSize;\n var array = new Array(length);\n var codeSize = 0;\n var codeBuf = 0;\n var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1);\n var strBytes = str.getBytes((length * bps + 7) / 8);\n var strIdx = 0;\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n return array;\n },\n getIR: function PDFFunction_getIR(xref, fn) {\n var dict = fn.dict;\n if (!dict) {\n dict = fn;\n }\n var types = [this.constructSampled, null, this.constructInterpolated, this.constructStiched, this.constructPostScript];\n var typeNum = dict.get('FunctionType');\n var typeFn = types[typeNum];\n if (!typeFn) {\n throw new _util.FormatError('Unknown type of function');\n }\n return typeFn.call(this, fn, dict, xref);\n },\n fromIR: function PDFFunction_fromIR(IR) {\n var type = IR[0];\n switch (type) {\n case CONSTRUCT_SAMPLED:\n return this.constructSampledFromIR(IR);\n case CONSTRUCT_INTERPOLATED:\n return this.constructInterpolatedFromIR(IR);\n case CONSTRUCT_STICHED:\n return this.constructStichedFromIR(IR);\n default:\n return this.constructPostScriptFromIR(IR);\n }\n },\n parse: function PDFFunction_parse(xref, fn) {\n var IR = this.getIR(xref, fn);\n return this.fromIR(IR);\n },\n parseArray: function PDFFunction_parseArray(xref, fnObj) {\n if (!(0, _util.isArray)(fnObj)) {\n return this.parse(xref, fnObj);\n }\n var fnArray = [];\n for (var j = 0, jj = fnObj.length; j < jj; j++) {\n var obj = xref.fetchIfRef(fnObj[j]);\n fnArray.push(PDFFunction.parse(xref, obj));\n }\n return function (src, srcOffset, dest, destOffset) {\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n fnArray[i](src, srcOffset, dest, destOffset + i);\n }\n };\n },\n constructSampled: function PDFFunction_constructSampled(str, dict) {\n function toMultiArray(arr) {\n var inputLength = arr.length;\n var out = [];\n var index = 0;\n for (var i = 0; i < inputLength; i += 2) {\n out[index] = [arr[i], arr[i + 1]];\n ++index;\n }\n return out;\n }\n var domain = dict.getArray('Domain');\n var range = dict.getArray('Range');\n if (!domain || !range) {\n throw new _util.FormatError('No domain or range');\n }\n var inputSize = domain.length / 2;\n var outputSize = range.length / 2;\n domain = toMultiArray(domain);\n range = toMultiArray(range);\n var size = dict.get('Size');\n var bps = dict.get('BitsPerSample');\n var order = dict.get('Order') || 1;\n if (order !== 1) {\n (0, _util.info)('No support for cubic spline interpolation: ' + order);\n }\n var encode = dict.getArray('Encode');\n if (!encode) {\n encode = [];\n for (var i = 0; i < inputSize; ++i) {\n encode.push(0);\n encode.push(size[i] - 1);\n }\n }\n encode = toMultiArray(encode);\n var decode = dict.getArray('Decode');\n if (!decode) {\n decode = range;\n } else {\n decode = toMultiArray(decode);\n }\n var samples = this.getSampleArray(size, outputSize, bps, str);\n return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, Math.pow(2, bps) - 1, range];\n },\n constructSampledFromIR: function PDFFunction_constructSampledFromIR(IR) {\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n }\n return function constructSampledFromIRResult(src, srcOffset, dest, destOffset) {\n var m = IR[1];\n var domain = IR[2];\n var encode = IR[3];\n var decode = IR[4];\n var samples = IR[5];\n var size = IR[6];\n var n = IR[7];\n var range = IR[9];\n var cubeVertices = 1 << m;\n var cubeN = new Float64Array(cubeVertices);\n var cubeVertex = new Uint32Array(cubeVertices);\n var i, j;\n for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n var k = n,\n pos = 1;\n for (i = 0; i < m; ++i) {\n var domain_2i = domain[i][0];\n var domain_2i_1 = domain[i][1];\n var xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1);\n var e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]);\n var size_i = size[i];\n e = Math.min(Math.max(e, 0), size_i - 1);\n var e0 = e < size_i - 1 ? Math.floor(e) : e - 1;\n var n0 = e0 + 1 - e;\n var n1 = e - e0;\n var offset0 = e0 * k;\n var offset1 = offset0 + k;\n for (j = 0; j < cubeVertices; j++) {\n if (j & pos) {\n cubeN[j] *= n1;\n cubeVertex[j] += offset1;\n } else {\n cubeN[j] *= n0;\n cubeVertex[j] += offset0;\n }\n }\n k *= size_i;\n pos <<= 1;\n }\n for (j = 0; j < n; ++j) {\n var rj = 0;\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\n }\n rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n }\n };\n },\n constructInterpolated: function PDFFunction_constructInterpolated(str, dict) {\n var c0 = dict.getArray('C0') || [0];\n var c1 = dict.getArray('C1') || [1];\n var n = dict.get('N');\n if (!(0, _util.isArray)(c0) || !(0, _util.isArray)(c1)) {\n throw new _util.FormatError('Illegal dictionary for interpolated function');\n }\n var length = c0.length;\n var diff = [];\n for (var i = 0; i < length; ++i) {\n diff.push(c1[i] - c0[i]);\n }\n return [CONSTRUCT_INTERPOLATED, c0, diff, n];\n },\n constructInterpolatedFromIR: function PDFFunction_constructInterpolatedFromIR(IR) {\n var c0 = IR[1];\n var diff = IR[2];\n var n = IR[3];\n var length = diff.length;\n return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) {\n var x = n === 1 ? src[srcOffset] : Math.pow(src[srcOffset], n);\n for (var j = 0; j < length; ++j) {\n dest[destOffset + j] = c0[j] + x * diff[j];\n }\n };\n },\n constructStiched: function PDFFunction_constructStiched(fn, dict, xref) {\n var domain = dict.getArray('Domain');\n if (!domain) {\n throw new _util.FormatError('No domain');\n }\n var inputSize = domain.length / 2;\n if (inputSize !== 1) {\n throw new _util.FormatError('Bad domain for stiched function');\n }\n var fnRefs = dict.get('Functions');\n var fns = [];\n for (var i = 0, ii = fnRefs.length; i < ii; ++i) {\n fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i])));\n }\n var bounds = dict.getArray('Bounds');\n var encode = dict.getArray('Encode');\n return [CONSTRUCT_STICHED, domain, bounds, encode, fns];\n },\n constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) {\n var domain = IR[1];\n var bounds = IR[2];\n var encode = IR[3];\n var fnsIR = IR[4];\n var fns = [];\n var tmpBuf = new Float32Array(1);\n for (var i = 0, ii = fnsIR.length; i < ii; i++) {\n fns.push(PDFFunction.fromIR(fnsIR[i]));\n }\n return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) {\n var clip = function constructStichedFromIRClip(v, min, max) {\n if (v > max) {\n v = max;\n } else if (v < min) {\n v = min;\n }\n return v;\n };\n var v = clip(src[srcOffset], domain[0], domain[1]);\n for (var i = 0, ii = bounds.length; i < ii; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n var dmin = domain[0];\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n var dmax = domain[1];\n if (i < bounds.length) {\n dmax = bounds[i];\n }\n var rmin = encode[2 * i];\n var rmax = encode[2 * i + 1];\n tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n fns[i](tmpBuf, 0, dest, destOffset);\n };\n },\n constructPostScript: function PDFFunction_constructPostScript(fn, dict, xref) {\n var domain = dict.getArray('Domain');\n var range = dict.getArray('Range');\n if (!domain) {\n throw new _util.FormatError('No domain.');\n }\n if (!range) {\n throw new _util.FormatError('No range.');\n }\n var lexer = new _ps_parser.PostScriptLexer(fn);\n var parser = new _ps_parser.PostScriptParser(lexer);\n var code = parser.parse();\n return [CONSTRUCT_POSTSCRIPT, domain, range, code];\n },\n constructPostScriptFromIR: function PDFFunction_constructPostScriptFromIR(IR) {\n var domain = IR[1];\n var range = IR[2];\n var code = IR[3];\n var compiled = new PostScriptCompiler().compile(code, domain, range);\n if (compiled) {\n return new Function('src', 'srcOffset', 'dest', 'destOffset', compiled);\n }\n (0, _util.info)('Unable to compile PS function');\n var numOutputs = range.length >> 1;\n var numInputs = domain.length >> 1;\n var evaluator = new PostScriptEvaluator(code);\n var cache = Object.create(null);\n var MAX_CACHE_SIZE = 2048 * 4;\n var cache_available = MAX_CACHE_SIZE;\n var tmpBuf = new Float32Array(numInputs);\n return function constructPostScriptFromIRResult(src, srcOffset, dest, destOffset) {\n var i, value;\n var key = '';\n var input = tmpBuf;\n for (i = 0; i < numInputs; i++) {\n value = src[srcOffset + i];\n input[i] = value;\n key += value + '_';\n }\n var cachedValue = cache[key];\n if (cachedValue !== undefined) {\n dest.set(cachedValue, destOffset);\n return;\n }\n var output = new Float32Array(numOutputs);\n var stack = evaluator.execute(input);\n var stackIndex = stack.length - numOutputs;\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n var bound = range[i * 2];\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n if (value > bound) {\n value = bound;\n }\n }\n output[i] = value;\n }\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n dest.set(output, destOffset);\n };\n }\n };\n }();\n function isPDFFunction(v) {\n var fnDict;\n if ((typeof v === 'undefined' ? 'undefined' : _typeof(v)) !== 'object') {\n return false;\n } else if ((0, _primitives.isDict)(v)) {\n fnDict = v;\n } else if ((0, _primitives.isStream)(v)) {\n fnDict = v.dict;\n } else {\n return false;\n }\n return fnDict.has('FunctionType');\n }\n var PostScriptStack = function PostScriptStackClosure() {\n var MAX_STACK_SIZE = 100;\n function PostScriptStack(initialStack) {\n this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0);\n }\n PostScriptStack.prototype = {\n push: function PostScriptStack_push(value) {\n if (this.stack.length >= MAX_STACK_SIZE) {\n throw new Error('PostScript function stack overflow.');\n }\n this.stack.push(value);\n },\n pop: function PostScriptStack_pop() {\n if (this.stack.length <= 0) {\n throw new Error('PostScript function stack underflow.');\n }\n return this.stack.pop();\n },\n copy: function PostScriptStack_copy(n) {\n if (this.stack.length + n >= MAX_STACK_SIZE) {\n throw new Error('PostScript function stack overflow.');\n }\n var stack = this.stack;\n for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n stack.push(stack[i]);\n }\n },\n index: function PostScriptStack_index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n },\n roll: function PostScriptStack_roll(n, p) {\n var stack = this.stack;\n var l = stack.length - n;\n var r = stack.length - 1,\n c = l + (p - Math.floor(p / n) * n),\n i,\n j,\n t;\n for (i = l, j = r; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (i = l, j = c - 1; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (i = c, j = r; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n }\n };\n return PostScriptStack;\n }();\n var PostScriptEvaluator = function PostScriptEvaluatorClosure() {\n function PostScriptEvaluator(operators) {\n this.operators = operators;\n }\n PostScriptEvaluator.prototype = {\n execute: function PostScriptEvaluator_execute(initialStack) {\n var stack = new PostScriptStack(initialStack);\n var counter = 0;\n var operators = this.operators;\n var length = operators.length;\n var operator, a, b;\n while (counter < length) {\n operator = operators[counter++];\n if (typeof operator === 'number') {\n stack.push(operator);\n continue;\n }\n switch (operator) {\n case 'jz':\n b = stack.pop();\n a = stack.pop();\n if (!a) {\n counter = b;\n }\n break;\n case 'j':\n a = stack.pop();\n counter = a;\n break;\n case 'abs':\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case 'add':\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n case 'and':\n b = stack.pop();\n a = stack.pop();\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n break;\n case 'atan':\n a = stack.pop();\n stack.push(Math.atan(a));\n break;\n case 'bitshift':\n b = stack.pop();\n a = stack.pop();\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n break;\n case 'ceiling':\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n case 'copy':\n a = stack.pop();\n stack.copy(a);\n break;\n case 'cos':\n a = stack.pop();\n stack.push(Math.cos(a));\n break;\n case 'cvi':\n a = stack.pop() | 0;\n stack.push(a);\n break;\n case 'cvr':\n break;\n case 'div':\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n case 'dup':\n stack.copy(1);\n break;\n case 'eq':\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n case 'exch':\n stack.roll(2, 1);\n break;\n case 'exp':\n b = stack.pop();\n a = stack.pop();\n stack.push(Math.pow(a, b));\n break;\n case 'false':\n stack.push(false);\n break;\n case 'floor':\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n case 'ge':\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n case 'gt':\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n case 'idiv':\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b | 0);\n break;\n case 'index':\n a = stack.pop();\n stack.index(a);\n break;\n case 'le':\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n case 'ln':\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n case 'log':\n a = stack.pop();\n stack.push(Math.log(a) / Math.LN10);\n break;\n case 'lt':\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n case 'mod':\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n case 'mul':\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n case 'ne':\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n case 'neg':\n a = stack.pop();\n stack.push(-a);\n break;\n case 'not':\n a = stack.pop();\n if ((0, _util.isBool)(a)) {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n break;\n case 'or':\n b = stack.pop();\n a = stack.pop();\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n break;\n case 'pop':\n stack.pop();\n break;\n case 'roll':\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n case 'round':\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n case 'sin':\n a = stack.pop();\n stack.push(Math.sin(a));\n break;\n case 'sqrt':\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case 'sub':\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n case 'true':\n stack.push(true);\n break;\n case 'truncate':\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n case 'xor':\n b = stack.pop();\n a = stack.pop();\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n break;\n default:\n throw new _util.FormatError('Unknown operator ' + operator);\n }\n }\n return stack.stack;\n }\n };\n return PostScriptEvaluator;\n }();\n var PostScriptCompiler = function PostScriptCompilerClosure() {\n function AstNode(type) {\n this.type = type;\n }\n AstNode.prototype.visit = function (visitor) {\n throw new Error('abstract method');\n };\n function AstArgument(index, min, max) {\n AstNode.call(this, 'args');\n this.index = index;\n this.min = min;\n this.max = max;\n }\n AstArgument.prototype = Object.create(AstNode.prototype);\n AstArgument.prototype.visit = function (visitor) {\n visitor.visitArgument(this);\n };\n function AstLiteral(number) {\n AstNode.call(this, 'literal');\n this.number = number;\n this.min = number;\n this.max = number;\n }\n AstLiteral.prototype = Object.create(AstNode.prototype);\n AstLiteral.prototype.visit = function (visitor) {\n visitor.visitLiteral(this);\n };\n function AstBinaryOperation(op, arg1, arg2, min, max) {\n AstNode.call(this, 'binary');\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n AstBinaryOperation.prototype = Object.create(AstNode.prototype);\n AstBinaryOperation.prototype.visit = function (visitor) {\n visitor.visitBinaryOperation(this);\n };\n function AstMin(arg, max) {\n AstNode.call(this, 'max');\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n AstMin.prototype = Object.create(AstNode.prototype);\n AstMin.prototype.visit = function (visitor) {\n visitor.visitMin(this);\n };\n function AstVariable(index, min, max) {\n AstNode.call(this, 'var');\n this.index = index;\n this.min = min;\n this.max = max;\n }\n AstVariable.prototype = Object.create(AstNode.prototype);\n AstVariable.prototype.visit = function (visitor) {\n visitor.visitVariable(this);\n };\n function AstVariableDefinition(variable, arg) {\n AstNode.call(this, 'definition');\n this.variable = variable;\n this.arg = arg;\n }\n AstVariableDefinition.prototype = Object.create(AstNode.prototype);\n AstVariableDefinition.prototype.visit = function (visitor) {\n visitor.visitVariableDefinition(this);\n };\n function ExpressionBuilderVisitor() {\n this.parts = [];\n }\n ExpressionBuilderVisitor.prototype = {\n visitArgument: function visitArgument(arg) {\n this.parts.push('Math.max(', arg.min, ', Math.min(', arg.max, ', src[srcOffset + ', arg.index, ']))');\n },\n visitVariable: function visitVariable(variable) {\n this.parts.push('v', variable.index);\n },\n visitLiteral: function visitLiteral(literal) {\n this.parts.push(literal.number);\n },\n visitBinaryOperation: function visitBinaryOperation(operation) {\n this.parts.push('(');\n operation.arg1.visit(this);\n this.parts.push(' ', operation.op, ' ');\n operation.arg2.visit(this);\n this.parts.push(')');\n },\n visitVariableDefinition: function visitVariableDefinition(definition) {\n this.parts.push('var ');\n definition.variable.visit(this);\n this.parts.push(' = ');\n definition.arg.visit(this);\n this.parts.push(';');\n },\n visitMin: function visitMin(max) {\n this.parts.push('Math.min(');\n max.arg.visit(this);\n this.parts.push(', ', max.max, ')');\n },\n toString: function toString() {\n return this.parts.join('');\n }\n };\n function buildAddOperation(num1, num2) {\n if (num2.type === 'literal' && num2.number === 0) {\n return num1;\n }\n if (num1.type === 'literal' && num1.number === 0) {\n return num2;\n }\n if (num2.type === 'literal' && num1.type === 'literal') {\n return new AstLiteral(num1.number + num2.number);\n }\n return new AstBinaryOperation('+', num1, num2, num1.min + num2.min, num1.max + num2.max);\n }\n function buildMulOperation(num1, num2) {\n if (num2.type === 'literal') {\n if (num2.number === 0) {\n return new AstLiteral(0);\n } else if (num2.number === 1) {\n return num1;\n } else if (num1.type === 'literal') {\n return new AstLiteral(num1.number * num2.number);\n }\n }\n if (num1.type === 'literal') {\n if (num1.number === 0) {\n return new AstLiteral(0);\n } else if (num1.number === 1) {\n return num2;\n }\n }\n var min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n var max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n return new AstBinaryOperation('*', num1, num2, min, max);\n }\n function buildSubOperation(num1, num2) {\n if (num2.type === 'literal') {\n if (num2.number === 0) {\n return num1;\n } else if (num1.type === 'literal') {\n return new AstLiteral(num1.number - num2.number);\n }\n }\n if (num2.type === 'binary' && num2.op === '-' && num1.type === 'literal' && num1.number === 1 && num2.arg1.type === 'literal' && num2.arg1.number === 1) {\n return num2.arg2;\n }\n return new AstBinaryOperation('-', num1, num2, num1.min - num2.max, num1.max - num2.min);\n }\n function buildMinOperation(num1, max) {\n if (num1.min >= max) {\n return new AstLiteral(max);\n } else if (num1.max <= max) {\n return num1;\n }\n return new AstMin(num1, max);\n }\n function PostScriptCompiler() {}\n PostScriptCompiler.prototype = {\n compile: function PostScriptCompiler_compile(code, domain, range) {\n var stack = [];\n var i, ii;\n var instructions = [];\n var inputSize = domain.length >> 1,\n outputSize = range.length >> 1;\n var lastRegister = 0;\n var n, j;\n var num1, num2, ast1, ast2, tmpVar, item;\n for (i = 0; i < inputSize; i++) {\n stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n }\n for (i = 0, ii = code.length; i < ii; i++) {\n item = code[i];\n if (typeof item === 'number') {\n stack.push(new AstLiteral(item));\n continue;\n }\n switch (item) {\n case 'add':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n case 'cvr':\n if (stack.length < 1) {\n return null;\n }\n break;\n case 'mul':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n case 'sub':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n case 'exch':\n if (stack.length < 2) {\n return null;\n }\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n case 'pop':\n if (stack.length < 1) {\n return null;\n }\n stack.pop();\n break;\n case 'index':\n if (stack.length < 1) {\n return null;\n }\n num1 = stack.pop();\n if (num1.type !== 'literal') {\n return null;\n }\n n = num1.number;\n if (n < 0 || (n | 0) !== n || stack.length < n) {\n return null;\n }\n ast1 = stack[stack.length - n - 1];\n if (ast1.type === 'literal' || ast1.type === 'var') {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - n - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case 'dup':\n if (stack.length < 1) {\n return null;\n }\n if (typeof code[i + 1] === 'number' && code[i + 2] === 'gt' && code[i + 3] === i + 7 && code[i + 4] === 'jz' && code[i + 5] === 'pop' && code[i + 6] === code[i + 1]) {\n num1 = stack.pop();\n stack.push(buildMinOperation(num1, code[i + 1]));\n i += 6;\n break;\n }\n ast1 = stack[stack.length - 1];\n if (ast1.type === 'literal' || ast1.type === 'var') {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case 'roll':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n if (num2.type !== 'literal' || num1.type !== 'literal') {\n return null;\n }\n j = num2.number;\n n = num1.number;\n if (n <= 0 || (n | 0) !== n || (j | 0) !== j || stack.length < n) {\n return null;\n }\n j = (j % n + n) % n;\n if (j === 0) {\n break;\n }\n Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j));\n break;\n default:\n return null;\n }\n }\n if (stack.length !== outputSize) {\n return null;\n }\n var result = [];\n instructions.forEach(function (instruction) {\n var statementBuilder = new ExpressionBuilderVisitor();\n instruction.visit(statementBuilder);\n result.push(statementBuilder.toString());\n });\n stack.forEach(function (expr, i) {\n var statementBuilder = new ExpressionBuilderVisitor();\n expr.visit(statementBuilder);\n var min = range[i * 2],\n max = range[i * 2 + 1];\n var out = [statementBuilder.toString()];\n if (min > expr.min) {\n out.unshift('Math.max(', min, ', ');\n out.push(')');\n }\n if (max < expr.max) {\n out.unshift('Math.min(', max, ', ');\n out.push(')');\n }\n out.unshift('dest[destOffset + ', i, '] = ');\n out.push(';');\n result.push(out.join(''));\n });\n return result.join('\\n');\n }\n };\n return PostScriptCompiler;\n }();\n exports.isPDFFunction = isPDFFunction;\n exports.PDFFunction = PDFFunction;\n exports.PostScriptEvaluator = PostScriptEvaluator;\n exports.PostScriptCompiler = PostScriptCompiler;\n\n /***/\n }, /* 33 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var getLookupTableFactory = __w_pdfjs_require__(0).getLookupTableFactory;\n var getGlyphsUnicode = getLookupTableFactory(function (t) {\n t['A'] = 0x0041;\n t['AE'] = 0x00C6;\n t['AEacute'] = 0x01FC;\n t['AEmacron'] = 0x01E2;\n t['AEsmall'] = 0xF7E6;\n t['Aacute'] = 0x00C1;\n t['Aacutesmall'] = 0xF7E1;\n t['Abreve'] = 0x0102;\n t['Abreveacute'] = 0x1EAE;\n t['Abrevecyrillic'] = 0x04D0;\n t['Abrevedotbelow'] = 0x1EB6;\n t['Abrevegrave'] = 0x1EB0;\n t['Abrevehookabove'] = 0x1EB2;\n t['Abrevetilde'] = 0x1EB4;\n t['Acaron'] = 0x01CD;\n t['Acircle'] = 0x24B6;\n t['Acircumflex'] = 0x00C2;\n t['Acircumflexacute'] = 0x1EA4;\n t['Acircumflexdotbelow'] = 0x1EAC;\n t['Acircumflexgrave'] = 0x1EA6;\n t['Acircumflexhookabove'] = 0x1EA8;\n t['Acircumflexsmall'] = 0xF7E2;\n t['Acircumflextilde'] = 0x1EAA;\n t['Acute'] = 0xF6C9;\n t['Acutesmall'] = 0xF7B4;\n t['Acyrillic'] = 0x0410;\n t['Adblgrave'] = 0x0200;\n t['Adieresis'] = 0x00C4;\n t['Adieresiscyrillic'] = 0x04D2;\n t['Adieresismacron'] = 0x01DE;\n t['Adieresissmall'] = 0xF7E4;\n t['Adotbelow'] = 0x1EA0;\n t['Adotmacron'] = 0x01E0;\n t['Agrave'] = 0x00C0;\n t['Agravesmall'] = 0xF7E0;\n t['Ahookabove'] = 0x1EA2;\n t['Aiecyrillic'] = 0x04D4;\n t['Ainvertedbreve'] = 0x0202;\n t['Alpha'] = 0x0391;\n t['Alphatonos'] = 0x0386;\n t['Amacron'] = 0x0100;\n t['Amonospace'] = 0xFF21;\n t['Aogonek'] = 0x0104;\n t['Aring'] = 0x00C5;\n t['Aringacute'] = 0x01FA;\n t['Aringbelow'] = 0x1E00;\n t['Aringsmall'] = 0xF7E5;\n t['Asmall'] = 0xF761;\n t['Atilde'] = 0x00C3;\n t['Atildesmall'] = 0xF7E3;\n t['Aybarmenian'] = 0x0531;\n t['B'] = 0x0042;\n t['Bcircle'] = 0x24B7;\n t['Bdotaccent'] = 0x1E02;\n t['Bdotbelow'] = 0x1E04;\n t['Becyrillic'] = 0x0411;\n t['Benarmenian'] = 0x0532;\n t['Beta'] = 0x0392;\n t['Bhook'] = 0x0181;\n t['Blinebelow'] = 0x1E06;\n t['Bmonospace'] = 0xFF22;\n t['Brevesmall'] = 0xF6F4;\n t['Bsmall'] = 0xF762;\n t['Btopbar'] = 0x0182;\n t['C'] = 0x0043;\n t['Caarmenian'] = 0x053E;\n t['Cacute'] = 0x0106;\n t['Caron'] = 0xF6CA;\n t['Caronsmall'] = 0xF6F5;\n t['Ccaron'] = 0x010C;\n t['Ccedilla'] = 0x00C7;\n t['Ccedillaacute'] = 0x1E08;\n t['Ccedillasmall'] = 0xF7E7;\n t['Ccircle'] = 0x24B8;\n t['Ccircumflex'] = 0x0108;\n t['Cdot'] = 0x010A;\n t['Cdotaccent'] = 0x010A;\n t['Cedillasmall'] = 0xF7B8;\n t['Chaarmenian'] = 0x0549;\n t['Cheabkhasiancyrillic'] = 0x04BC;\n t['Checyrillic'] = 0x0427;\n t['Chedescenderabkhasiancyrillic'] = 0x04BE;\n t['Chedescendercyrillic'] = 0x04B6;\n t['Chedieresiscyrillic'] = 0x04F4;\n t['Cheharmenian'] = 0x0543;\n t['Chekhakassiancyrillic'] = 0x04CB;\n t['Cheverticalstrokecyrillic'] = 0x04B8;\n t['Chi'] = 0x03A7;\n t['Chook'] = 0x0187;\n t['Circumflexsmall'] = 0xF6F6;\n t['Cmonospace'] = 0xFF23;\n t['Coarmenian'] = 0x0551;\n t['Csmall'] = 0xF763;\n t['D'] = 0x0044;\n t['DZ'] = 0x01F1;\n t['DZcaron'] = 0x01C4;\n t['Daarmenian'] = 0x0534;\n t['Dafrican'] = 0x0189;\n t['Dcaron'] = 0x010E;\n t['Dcedilla'] = 0x1E10;\n t['Dcircle'] = 0x24B9;\n t['Dcircumflexbelow'] = 0x1E12;\n t['Dcroat'] = 0x0110;\n t['Ddotaccent'] = 0x1E0A;\n t['Ddotbelow'] = 0x1E0C;\n t['Decyrillic'] = 0x0414;\n t['Deicoptic'] = 0x03EE;\n t['Delta'] = 0x2206;\n t['Deltagreek'] = 0x0394;\n t['Dhook'] = 0x018A;\n t['Dieresis'] = 0xF6CB;\n t['DieresisAcute'] = 0xF6CC;\n t['DieresisGrave'] = 0xF6CD;\n t['Dieresissmall'] = 0xF7A8;\n t['Digammagreek'] = 0x03DC;\n t['Djecyrillic'] = 0x0402;\n t['Dlinebelow'] = 0x1E0E;\n t['Dmonospace'] = 0xFF24;\n t['Dotaccentsmall'] = 0xF6F7;\n t['Dslash'] = 0x0110;\n t['Dsmall'] = 0xF764;\n t['Dtopbar'] = 0x018B;\n t['Dz'] = 0x01F2;\n t['Dzcaron'] = 0x01C5;\n t['Dzeabkhasiancyrillic'] = 0x04E0;\n t['Dzecyrillic'] = 0x0405;\n t['Dzhecyrillic'] = 0x040F;\n t['E'] = 0x0045;\n t['Eacute'] = 0x00C9;\n t['Eacutesmall'] = 0xF7E9;\n t['Ebreve'] = 0x0114;\n t['Ecaron'] = 0x011A;\n t['Ecedillabreve'] = 0x1E1C;\n t['Echarmenian'] = 0x0535;\n t['Ecircle'] = 0x24BA;\n t['Ecircumflex'] = 0x00CA;\n t['Ecircumflexacute'] = 0x1EBE;\n t['Ecircumflexbelow'] = 0x1E18;\n t['Ecircumflexdotbelow'] = 0x1EC6;\n t['Ecircumflexgrave'] = 0x1EC0;\n t['Ecircumflexhookabove'] = 0x1EC2;\n t['Ecircumflexsmall'] = 0xF7EA;\n t['Ecircumflextilde'] = 0x1EC4;\n t['Ecyrillic'] = 0x0404;\n t['Edblgrave'] = 0x0204;\n t['Edieresis'] = 0x00CB;\n t['Edieresissmall'] = 0xF7EB;\n t['Edot'] = 0x0116;\n t['Edotaccent'] = 0x0116;\n t['Edotbelow'] = 0x1EB8;\n t['Efcyrillic'] = 0x0424;\n t['Egrave'] = 0x00C8;\n t['Egravesmall'] = 0xF7E8;\n t['Eharmenian'] = 0x0537;\n t['Ehookabove'] = 0x1EBA;\n t['Eightroman'] = 0x2167;\n t['Einvertedbreve'] = 0x0206;\n t['Eiotifiedcyrillic'] = 0x0464;\n t['Elcyrillic'] = 0x041B;\n t['Elevenroman'] = 0x216A;\n t['Emacron'] = 0x0112;\n t['Emacronacute'] = 0x1E16;\n t['Emacrongrave'] = 0x1E14;\n t['Emcyrillic'] = 0x041C;\n t['Emonospace'] = 0xFF25;\n t['Encyrillic'] = 0x041D;\n t['Endescendercyrillic'] = 0x04A2;\n t['Eng'] = 0x014A;\n t['Enghecyrillic'] = 0x04A4;\n t['Enhookcyrillic'] = 0x04C7;\n t['Eogonek'] = 0x0118;\n t['Eopen'] = 0x0190;\n t['Epsilon'] = 0x0395;\n t['Epsilontonos'] = 0x0388;\n t['Ercyrillic'] = 0x0420;\n t['Ereversed'] = 0x018E;\n t['Ereversedcyrillic'] = 0x042D;\n t['Escyrillic'] = 0x0421;\n t['Esdescendercyrillic'] = 0x04AA;\n t['Esh'] = 0x01A9;\n t['Esmall'] = 0xF765;\n t['Eta'] = 0x0397;\n t['Etarmenian'] = 0x0538;\n t['Etatonos'] = 0x0389;\n t['Eth'] = 0x00D0;\n t['Ethsmall'] = 0xF7F0;\n t['Etilde'] = 0x1EBC;\n t['Etildebelow'] = 0x1E1A;\n t['Euro'] = 0x20AC;\n t['Ezh'] = 0x01B7;\n t['Ezhcaron'] = 0x01EE;\n t['Ezhreversed'] = 0x01B8;\n t['F'] = 0x0046;\n t['Fcircle'] = 0x24BB;\n t['Fdotaccent'] = 0x1E1E;\n t['Feharmenian'] = 0x0556;\n t['Feicoptic'] = 0x03E4;\n t['Fhook'] = 0x0191;\n t['Fitacyrillic'] = 0x0472;\n t['Fiveroman'] = 0x2164;\n t['Fmonospace'] = 0xFF26;\n t['Fourroman'] = 0x2163;\n t['Fsmall'] = 0xF766;\n t['G'] = 0x0047;\n t['GBsquare'] = 0x3387;\n t['Gacute'] = 0x01F4;\n t['Gamma'] = 0x0393;\n t['Gammaafrican'] = 0x0194;\n t['Gangiacoptic'] = 0x03EA;\n t['Gbreve'] = 0x011E;\n t['Gcaron'] = 0x01E6;\n t['Gcedilla'] = 0x0122;\n t['Gcircle'] = 0x24BC;\n t['Gcircumflex'] = 0x011C;\n t['Gcommaaccent'] = 0x0122;\n t['Gdot'] = 0x0120;\n t['Gdotaccent'] = 0x0120;\n t['Gecyrillic'] = 0x0413;\n t['Ghadarmenian'] = 0x0542;\n t['Ghemiddlehookcyrillic'] = 0x0494;\n t['Ghestrokecyrillic'] = 0x0492;\n t['Gheupturncyrillic'] = 0x0490;\n t['Ghook'] = 0x0193;\n t['Gimarmenian'] = 0x0533;\n t['Gjecyrillic'] = 0x0403;\n t['Gmacron'] = 0x1E20;\n t['Gmonospace'] = 0xFF27;\n t['Grave'] = 0xF6CE;\n t['Gravesmall'] = 0xF760;\n t['Gsmall'] = 0xF767;\n t['Gsmallhook'] = 0x029B;\n t['Gstroke'] = 0x01E4;\n t['H'] = 0x0048;\n t['H18533'] = 0x25CF;\n t['H18543'] = 0x25AA;\n t['H18551'] = 0x25AB;\n t['H22073'] = 0x25A1;\n t['HPsquare'] = 0x33CB;\n t['Haabkhasiancyrillic'] = 0x04A8;\n t['Hadescendercyrillic'] = 0x04B2;\n t['Hardsigncyrillic'] = 0x042A;\n t['Hbar'] = 0x0126;\n t['Hbrevebelow'] = 0x1E2A;\n t['Hcedilla'] = 0x1E28;\n t['Hcircle'] = 0x24BD;\n t['Hcircumflex'] = 0x0124;\n t['Hdieresis'] = 0x1E26;\n t['Hdotaccent'] = 0x1E22;\n t['Hdotbelow'] = 0x1E24;\n t['Hmonospace'] = 0xFF28;\n t['Hoarmenian'] = 0x0540;\n t['Horicoptic'] = 0x03E8;\n t['Hsmall'] = 0xF768;\n t['Hungarumlaut'] = 0xF6CF;\n t['Hungarumlautsmall'] = 0xF6F8;\n t['Hzsquare'] = 0x3390;\n t['I'] = 0x0049;\n t['IAcyrillic'] = 0x042F;\n t['IJ'] = 0x0132;\n t['IUcyrillic'] = 0x042E;\n t['Iacute'] = 0x00CD;\n t['Iacutesmall'] = 0xF7ED;\n t['Ibreve'] = 0x012C;\n t['Icaron'] = 0x01CF;\n t['Icircle'] = 0x24BE;\n t['Icircumflex'] = 0x00CE;\n t['Icircumflexsmall'] = 0xF7EE;\n t['Icyrillic'] = 0x0406;\n t['Idblgrave'] = 0x0208;\n t['Idieresis'] = 0x00CF;\n t['Idieresisacute'] = 0x1E2E;\n t['Idieresiscyrillic'] = 0x04E4;\n t['Idieresissmall'] = 0xF7EF;\n t['Idot'] = 0x0130;\n t['Idotaccent'] = 0x0130;\n t['Idotbelow'] = 0x1ECA;\n t['Iebrevecyrillic'] = 0x04D6;\n t['Iecyrillic'] = 0x0415;\n t['Ifraktur'] = 0x2111;\n t['Igrave'] = 0x00CC;\n t['Igravesmall'] = 0xF7EC;\n t['Ihookabove'] = 0x1EC8;\n t['Iicyrillic'] = 0x0418;\n t['Iinvertedbreve'] = 0x020A;\n t['Iishortcyrillic'] = 0x0419;\n t['Imacron'] = 0x012A;\n t['Imacroncyrillic'] = 0x04E2;\n t['Imonospace'] = 0xFF29;\n t['Iniarmenian'] = 0x053B;\n t['Iocyrillic'] = 0x0401;\n t['Iogonek'] = 0x012E;\n t['Iota'] = 0x0399;\n t['Iotaafrican'] = 0x0196;\n t['Iotadieresis'] = 0x03AA;\n t['Iotatonos'] = 0x038A;\n t['Ismall'] = 0xF769;\n t['Istroke'] = 0x0197;\n t['Itilde'] = 0x0128;\n t['Itildebelow'] = 0x1E2C;\n t['Izhitsacyrillic'] = 0x0474;\n t['Izhitsadblgravecyrillic'] = 0x0476;\n t['J'] = 0x004A;\n t['Jaarmenian'] = 0x0541;\n t['Jcircle'] = 0x24BF;\n t['Jcircumflex'] = 0x0134;\n t['Jecyrillic'] = 0x0408;\n t['Jheharmenian'] = 0x054B;\n t['Jmonospace'] = 0xFF2A;\n t['Jsmall'] = 0xF76A;\n t['K'] = 0x004B;\n t['KBsquare'] = 0x3385;\n t['KKsquare'] = 0x33CD;\n t['Kabashkircyrillic'] = 0x04A0;\n t['Kacute'] = 0x1E30;\n t['Kacyrillic'] = 0x041A;\n t['Kadescendercyrillic'] = 0x049A;\n t['Kahookcyrillic'] = 0x04C3;\n t['Kappa'] = 0x039A;\n t['Kastrokecyrillic'] = 0x049E;\n t['Kaverticalstrokecyrillic'] = 0x049C;\n t['Kcaron'] = 0x01E8;\n t['Kcedilla'] = 0x0136;\n t['Kcircle'] = 0x24C0;\n t['Kcommaaccent'] = 0x0136;\n t['Kdotbelow'] = 0x1E32;\n t['Keharmenian'] = 0x0554;\n t['Kenarmenian'] = 0x053F;\n t['Khacyrillic'] = 0x0425;\n t['Kheicoptic'] = 0x03E6;\n t['Khook'] = 0x0198;\n t['Kjecyrillic'] = 0x040C;\n t['Klinebelow'] = 0x1E34;\n t['Kmonospace'] = 0xFF2B;\n t['Koppacyrillic'] = 0x0480;\n t['Koppagreek'] = 0x03DE;\n t['Ksicyrillic'] = 0x046E;\n t['Ksmall'] = 0xF76B;\n t['L'] = 0x004C;\n t['LJ'] = 0x01C7;\n t['LL'] = 0xF6BF;\n t['Lacute'] = 0x0139;\n t['Lambda'] = 0x039B;\n t['Lcaron'] = 0x013D;\n t['Lcedilla'] = 0x013B;\n t['Lcircle'] = 0x24C1;\n t['Lcircumflexbelow'] = 0x1E3C;\n t['Lcommaaccent'] = 0x013B;\n t['Ldot'] = 0x013F;\n t['Ldotaccent'] = 0x013F;\n t['Ldotbelow'] = 0x1E36;\n t['Ldotbelowmacron'] = 0x1E38;\n t['Liwnarmenian'] = 0x053C;\n t['Lj'] = 0x01C8;\n t['Ljecyrillic'] = 0x0409;\n t['Llinebelow'] = 0x1E3A;\n t['Lmonospace'] = 0xFF2C;\n t['Lslash'] = 0x0141;\n t['Lslashsmall'] = 0xF6F9;\n t['Lsmall'] = 0xF76C;\n t['M'] = 0x004D;\n t['MBsquare'] = 0x3386;\n t['Macron'] = 0xF6D0;\n t['Macronsmall'] = 0xF7AF;\n t['Macute'] = 0x1E3E;\n t['Mcircle'] = 0x24C2;\n t['Mdotaccent'] = 0x1E40;\n t['Mdotbelow'] = 0x1E42;\n t['Menarmenian'] = 0x0544;\n t['Mmonospace'] = 0xFF2D;\n t['Msmall'] = 0xF76D;\n t['Mturned'] = 0x019C;\n t['Mu'] = 0x039C;\n t['N'] = 0x004E;\n t['NJ'] = 0x01CA;\n t['Nacute'] = 0x0143;\n t['Ncaron'] = 0x0147;\n t['Ncedilla'] = 0x0145;\n t['Ncircle'] = 0x24C3;\n t['Ncircumflexbelow'] = 0x1E4A;\n t['Ncommaaccent'] = 0x0145;\n t['Ndotaccent'] = 0x1E44;\n t['Ndotbelow'] = 0x1E46;\n t['Nhookleft'] = 0x019D;\n t['Nineroman'] = 0x2168;\n t['Nj'] = 0x01CB;\n t['Njecyrillic'] = 0x040A;\n t['Nlinebelow'] = 0x1E48;\n t['Nmonospace'] = 0xFF2E;\n t['Nowarmenian'] = 0x0546;\n t['Nsmall'] = 0xF76E;\n t['Ntilde'] = 0x00D1;\n t['Ntildesmall'] = 0xF7F1;\n t['Nu'] = 0x039D;\n t['O'] = 0x004F;\n t['OE'] = 0x0152;\n t['OEsmall'] = 0xF6FA;\n t['Oacute'] = 0x00D3;\n t['Oacutesmall'] = 0xF7F3;\n t['Obarredcyrillic'] = 0x04E8;\n t['Obarreddieresiscyrillic'] = 0x04EA;\n t['Obreve'] = 0x014E;\n t['Ocaron'] = 0x01D1;\n t['Ocenteredtilde'] = 0x019F;\n t['Ocircle'] = 0x24C4;\n t['Ocircumflex'] = 0x00D4;\n t['Ocircumflexacute'] = 0x1ED0;\n t['Ocircumflexdotbelow'] = 0x1ED8;\n t['Ocircumflexgrave'] = 0x1ED2;\n t['Ocircumflexhookabove'] = 0x1ED4;\n t['Ocircumflexsmall'] = 0xF7F4;\n t['Ocircumflextilde'] = 0x1ED6;\n t['Ocyrillic'] = 0x041E;\n t['Odblacute'] = 0x0150;\n t['Odblgrave'] = 0x020C;\n t['Odieresis'] = 0x00D6;\n t['Odieresiscyrillic'] = 0x04E6;\n t['Odieresissmall'] = 0xF7F6;\n t['Odotbelow'] = 0x1ECC;\n t['Ogoneksmall'] = 0xF6FB;\n t['Ograve'] = 0x00D2;\n t['Ogravesmall'] = 0xF7F2;\n t['Oharmenian'] = 0x0555;\n t['Ohm'] = 0x2126;\n t['Ohookabove'] = 0x1ECE;\n t['Ohorn'] = 0x01A0;\n t['Ohornacute'] = 0x1EDA;\n t['Ohorndotbelow'] = 0x1EE2;\n t['Ohorngrave'] = 0x1EDC;\n t['Ohornhookabove'] = 0x1EDE;\n t['Ohorntilde'] = 0x1EE0;\n t['Ohungarumlaut'] = 0x0150;\n t['Oi'] = 0x01A2;\n t['Oinvertedbreve'] = 0x020E;\n t['Omacron'] = 0x014C;\n t['Omacronacute'] = 0x1E52;\n t['Omacrongrave'] = 0x1E50;\n t['Omega'] = 0x2126;\n t['Omegacyrillic'] = 0x0460;\n t['Omegagreek'] = 0x03A9;\n t['Omegaroundcyrillic'] = 0x047A;\n t['Omegatitlocyrillic'] = 0x047C;\n t['Omegatonos'] = 0x038F;\n t['Omicron'] = 0x039F;\n t['Omicrontonos'] = 0x038C;\n t['Omonospace'] = 0xFF2F;\n t['Oneroman'] = 0x2160;\n t['Oogonek'] = 0x01EA;\n t['Oogonekmacron'] = 0x01EC;\n t['Oopen'] = 0x0186;\n t['Oslash'] = 0x00D8;\n t['Oslashacute'] = 0x01FE;\n t['Oslashsmall'] = 0xF7F8;\n t['Osmall'] = 0xF76F;\n t['Ostrokeacute'] = 0x01FE;\n t['Otcyrillic'] = 0x047E;\n t['Otilde'] = 0x00D5;\n t['Otildeacute'] = 0x1E4C;\n t['Otildedieresis'] = 0x1E4E;\n t['Otildesmall'] = 0xF7F5;\n t['P'] = 0x0050;\n t['Pacute'] = 0x1E54;\n t['Pcircle'] = 0x24C5;\n t['Pdotaccent'] = 0x1E56;\n t['Pecyrillic'] = 0x041F;\n t['Peharmenian'] = 0x054A;\n t['Pemiddlehookcyrillic'] = 0x04A6;\n t['Phi'] = 0x03A6;\n t['Phook'] = 0x01A4;\n t['Pi'] = 0x03A0;\n t['Piwrarmenian'] = 0x0553;\n t['Pmonospace'] = 0xFF30;\n t['Psi'] = 0x03A8;\n t['Psicyrillic'] = 0x0470;\n t['Psmall'] = 0xF770;\n t['Q'] = 0x0051;\n t['Qcircle'] = 0x24C6;\n t['Qmonospace'] = 0xFF31;\n t['Qsmall'] = 0xF771;\n t['R'] = 0x0052;\n t['Raarmenian'] = 0x054C;\n t['Racute'] = 0x0154;\n t['Rcaron'] = 0x0158;\n t['Rcedilla'] = 0x0156;\n t['Rcircle'] = 0x24C7;\n t['Rcommaaccent'] = 0x0156;\n t['Rdblgrave'] = 0x0210;\n t['Rdotaccent'] = 0x1E58;\n t['Rdotbelow'] = 0x1E5A;\n t['Rdotbelowmacron'] = 0x1E5C;\n t['Reharmenian'] = 0x0550;\n t['Rfraktur'] = 0x211C;\n t['Rho'] = 0x03A1;\n t['Ringsmall'] = 0xF6FC;\n t['Rinvertedbreve'] = 0x0212;\n t['Rlinebelow'] = 0x1E5E;\n t['Rmonospace'] = 0xFF32;\n t['Rsmall'] = 0xF772;\n t['Rsmallinverted'] = 0x0281;\n t['Rsmallinvertedsuperior'] = 0x02B6;\n t['S'] = 0x0053;\n t['SF010000'] = 0x250C;\n t['SF020000'] = 0x2514;\n t['SF030000'] = 0x2510;\n t['SF040000'] = 0x2518;\n t['SF050000'] = 0x253C;\n t['SF060000'] = 0x252C;\n t['SF070000'] = 0x2534;\n t['SF080000'] = 0x251C;\n t['SF090000'] = 0x2524;\n t['SF100000'] = 0x2500;\n t['SF110000'] = 0x2502;\n t['SF190000'] = 0x2561;\n t['SF200000'] = 0x2562;\n t['SF210000'] = 0x2556;\n t['SF220000'] = 0x2555;\n t['SF230000'] = 0x2563;\n t['SF240000'] = 0x2551;\n t['SF250000'] = 0x2557;\n t['SF260000'] = 0x255D;\n t['SF270000'] = 0x255C;\n t['SF280000'] = 0x255B;\n t['SF360000'] = 0x255E;\n t['SF370000'] = 0x255F;\n t['SF380000'] = 0x255A;\n t['SF390000'] = 0x2554;\n t['SF400000'] = 0x2569;\n t['SF410000'] = 0x2566;\n t['SF420000'] = 0x2560;\n t['SF430000'] = 0x2550;\n t['SF440000'] = 0x256C;\n t['SF450000'] = 0x2567;\n t['SF460000'] = 0x2568;\n t['SF470000'] = 0x2564;\n t['SF480000'] = 0x2565;\n t['SF490000'] = 0x2559;\n t['SF500000'] = 0x2558;\n t['SF510000'] = 0x2552;\n t['SF520000'] = 0x2553;\n t['SF530000'] = 0x256B;\n t['SF540000'] = 0x256A;\n t['Sacute'] = 0x015A;\n t['Sacutedotaccent'] = 0x1E64;\n t['Sampigreek'] = 0x03E0;\n t['Scaron'] = 0x0160;\n t['Scarondotaccent'] = 0x1E66;\n t['Scaronsmall'] = 0xF6FD;\n t['Scedilla'] = 0x015E;\n t['Schwa'] = 0x018F;\n t['Schwacyrillic'] = 0x04D8;\n t['Schwadieresiscyrillic'] = 0x04DA;\n t['Scircle'] = 0x24C8;\n t['Scircumflex'] = 0x015C;\n t['Scommaaccent'] = 0x0218;\n t['Sdotaccent'] = 0x1E60;\n t['Sdotbelow'] = 0x1E62;\n t['Sdotbelowdotaccent'] = 0x1E68;\n t['Seharmenian'] = 0x054D;\n t['Sevenroman'] = 0x2166;\n t['Shaarmenian'] = 0x0547;\n t['Shacyrillic'] = 0x0428;\n t['Shchacyrillic'] = 0x0429;\n t['Sheicoptic'] = 0x03E2;\n t['Shhacyrillic'] = 0x04BA;\n t['Shimacoptic'] = 0x03EC;\n t['Sigma'] = 0x03A3;\n t['Sixroman'] = 0x2165;\n t['Smonospace'] = 0xFF33;\n t['Softsigncyrillic'] = 0x042C;\n t['Ssmall'] = 0xF773;\n t['Stigmagreek'] = 0x03DA;\n t['T'] = 0x0054;\n t['Tau'] = 0x03A4;\n t['Tbar'] = 0x0166;\n t['Tcaron'] = 0x0164;\n t['Tcedilla'] = 0x0162;\n t['Tcircle'] = 0x24C9;\n t['Tcircumflexbelow'] = 0x1E70;\n t['Tcommaaccent'] = 0x0162;\n t['Tdotaccent'] = 0x1E6A;\n t['Tdotbelow'] = 0x1E6C;\n t['Tecyrillic'] = 0x0422;\n t['Tedescendercyrillic'] = 0x04AC;\n t['Tenroman'] = 0x2169;\n t['Tetsecyrillic'] = 0x04B4;\n t['Theta'] = 0x0398;\n t['Thook'] = 0x01AC;\n t['Thorn'] = 0x00DE;\n t['Thornsmall'] = 0xF7FE;\n t['Threeroman'] = 0x2162;\n t['Tildesmall'] = 0xF6FE;\n t['Tiwnarmenian'] = 0x054F;\n t['Tlinebelow'] = 0x1E6E;\n t['Tmonospace'] = 0xFF34;\n t['Toarmenian'] = 0x0539;\n t['Tonefive'] = 0x01BC;\n t['Tonesix'] = 0x0184;\n t['Tonetwo'] = 0x01A7;\n t['Tretroflexhook'] = 0x01AE;\n t['Tsecyrillic'] = 0x0426;\n t['Tshecyrillic'] = 0x040B;\n t['Tsmall'] = 0xF774;\n t['Twelveroman'] = 0x216B;\n t['Tworoman'] = 0x2161;\n t['U'] = 0x0055;\n t['Uacute'] = 0x00DA;\n t['Uacutesmall'] = 0xF7FA;\n t['Ubreve'] = 0x016C;\n t['Ucaron'] = 0x01D3;\n t['Ucircle'] = 0x24CA;\n t['Ucircumflex'] = 0x00DB;\n t['Ucircumflexbelow'] = 0x1E76;\n t['Ucircumflexsmall'] = 0xF7FB;\n t['Ucyrillic'] = 0x0423;\n t['Udblacute'] = 0x0170;\n t['Udblgrave'] = 0x0214;\n t['Udieresis'] = 0x00DC;\n t['Udieresisacute'] = 0x01D7;\n t['Udieresisbelow'] = 0x1E72;\n t['Udieresiscaron'] = 0x01D9;\n t['Udieresiscyrillic'] = 0x04F0;\n t['Udieresisgrave'] = 0x01DB;\n t['Udieresismacron'] = 0x01D5;\n t['Udieresissmall'] = 0xF7FC;\n t['Udotbelow'] = 0x1EE4;\n t['Ugrave'] = 0x00D9;\n t['Ugravesmall'] = 0xF7F9;\n t['Uhookabove'] = 0x1EE6;\n t['Uhorn'] = 0x01AF;\n t['Uhornacute'] = 0x1EE8;\n t['Uhorndotbelow'] = 0x1EF0;\n t['Uhorngrave'] = 0x1EEA;\n t['Uhornhookabove'] = 0x1EEC;\n t['Uhorntilde'] = 0x1EEE;\n t['Uhungarumlaut'] = 0x0170;\n t['Uhungarumlautcyrillic'] = 0x04F2;\n t['Uinvertedbreve'] = 0x0216;\n t['Ukcyrillic'] = 0x0478;\n t['Umacron'] = 0x016A;\n t['Umacroncyrillic'] = 0x04EE;\n t['Umacrondieresis'] = 0x1E7A;\n t['Umonospace'] = 0xFF35;\n t['Uogonek'] = 0x0172;\n t['Upsilon'] = 0x03A5;\n t['Upsilon1'] = 0x03D2;\n t['Upsilonacutehooksymbolgreek'] = 0x03D3;\n t['Upsilonafrican'] = 0x01B1;\n t['Upsilondieresis'] = 0x03AB;\n t['Upsilondieresishooksymbolgreek'] = 0x03D4;\n t['Upsilonhooksymbol'] = 0x03D2;\n t['Upsilontonos'] = 0x038E;\n t['Uring'] = 0x016E;\n t['Ushortcyrillic'] = 0x040E;\n t['Usmall'] = 0xF775;\n t['Ustraightcyrillic'] = 0x04AE;\n t['Ustraightstrokecyrillic'] = 0x04B0;\n t['Utilde'] = 0x0168;\n t['Utildeacute'] = 0x1E78;\n t['Utildebelow'] = 0x1E74;\n t['V'] = 0x0056;\n t['Vcircle'] = 0x24CB;\n t['Vdotbelow'] = 0x1E7E;\n t['Vecyrillic'] = 0x0412;\n t['Vewarmenian'] = 0x054E;\n t['Vhook'] = 0x01B2;\n t['Vmonospace'] = 0xFF36;\n t['Voarmenian'] = 0x0548;\n t['Vsmall'] = 0xF776;\n t['Vtilde'] = 0x1E7C;\n t['W'] = 0x0057;\n t['Wacute'] = 0x1E82;\n t['Wcircle'] = 0x24CC;\n t['Wcircumflex'] = 0x0174;\n t['Wdieresis'] = 0x1E84;\n t['Wdotaccent'] = 0x1E86;\n t['Wdotbelow'] = 0x1E88;\n t['Wgrave'] = 0x1E80;\n t['Wmonospace'] = 0xFF37;\n t['Wsmall'] = 0xF777;\n t['X'] = 0x0058;\n t['Xcircle'] = 0x24CD;\n t['Xdieresis'] = 0x1E8C;\n t['Xdotaccent'] = 0x1E8A;\n t['Xeharmenian'] = 0x053D;\n t['Xi'] = 0x039E;\n t['Xmonospace'] = 0xFF38;\n t['Xsmall'] = 0xF778;\n t['Y'] = 0x0059;\n t['Yacute'] = 0x00DD;\n t['Yacutesmall'] = 0xF7FD;\n t['Yatcyrillic'] = 0x0462;\n t['Ycircle'] = 0x24CE;\n t['Ycircumflex'] = 0x0176;\n t['Ydieresis'] = 0x0178;\n t['Ydieresissmall'] = 0xF7FF;\n t['Ydotaccent'] = 0x1E8E;\n t['Ydotbelow'] = 0x1EF4;\n t['Yericyrillic'] = 0x042B;\n t['Yerudieresiscyrillic'] = 0x04F8;\n t['Ygrave'] = 0x1EF2;\n t['Yhook'] = 0x01B3;\n t['Yhookabove'] = 0x1EF6;\n t['Yiarmenian'] = 0x0545;\n t['Yicyrillic'] = 0x0407;\n t['Yiwnarmenian'] = 0x0552;\n t['Ymonospace'] = 0xFF39;\n t['Ysmall'] = 0xF779;\n t['Ytilde'] = 0x1EF8;\n t['Yusbigcyrillic'] = 0x046A;\n t['Yusbigiotifiedcyrillic'] = 0x046C;\n t['Yuslittlecyrillic'] = 0x0466;\n t['Yuslittleiotifiedcyrillic'] = 0x0468;\n t['Z'] = 0x005A;\n t['Zaarmenian'] = 0x0536;\n t['Zacute'] = 0x0179;\n t['Zcaron'] = 0x017D;\n t['Zcaronsmall'] = 0xF6FF;\n t['Zcircle'] = 0x24CF;\n t['Zcircumflex'] = 0x1E90;\n t['Zdot'] = 0x017B;\n t['Zdotaccent'] = 0x017B;\n t['Zdotbelow'] = 0x1E92;\n t['Zecyrillic'] = 0x0417;\n t['Zedescendercyrillic'] = 0x0498;\n t['Zedieresiscyrillic'] = 0x04DE;\n t['Zeta'] = 0x0396;\n t['Zhearmenian'] = 0x053A;\n t['Zhebrevecyrillic'] = 0x04C1;\n t['Zhecyrillic'] = 0x0416;\n t['Zhedescendercyrillic'] = 0x0496;\n t['Zhedieresiscyrillic'] = 0x04DC;\n t['Zlinebelow'] = 0x1E94;\n t['Zmonospace'] = 0xFF3A;\n t['Zsmall'] = 0xF77A;\n t['Zstroke'] = 0x01B5;\n t['a'] = 0x0061;\n t['aabengali'] = 0x0986;\n t['aacute'] = 0x00E1;\n t['aadeva'] = 0x0906;\n t['aagujarati'] = 0x0A86;\n t['aagurmukhi'] = 0x0A06;\n t['aamatragurmukhi'] = 0x0A3E;\n t['aarusquare'] = 0x3303;\n t['aavowelsignbengali'] = 0x09BE;\n t['aavowelsigndeva'] = 0x093E;\n t['aavowelsigngujarati'] = 0x0ABE;\n t['abbreviationmarkarmenian'] = 0x055F;\n t['abbreviationsigndeva'] = 0x0970;\n t['abengali'] = 0x0985;\n t['abopomofo'] = 0x311A;\n t['abreve'] = 0x0103;\n t['abreveacute'] = 0x1EAF;\n t['abrevecyrillic'] = 0x04D1;\n t['abrevedotbelow'] = 0x1EB7;\n t['abrevegrave'] = 0x1EB1;\n t['abrevehookabove'] = 0x1EB3;\n t['abrevetilde'] = 0x1EB5;\n t['acaron'] = 0x01CE;\n t['acircle'] = 0x24D0;\n t['acircumflex'] = 0x00E2;\n t['acircumflexacute'] = 0x1EA5;\n t['acircumflexdotbelow'] = 0x1EAD;\n t['acircumflexgrave'] = 0x1EA7;\n t['acircumflexhookabove'] = 0x1EA9;\n t['acircumflextilde'] = 0x1EAB;\n t['acute'] = 0x00B4;\n t['acutebelowcmb'] = 0x0317;\n t['acutecmb'] = 0x0301;\n t['acutecomb'] = 0x0301;\n t['acutedeva'] = 0x0954;\n t['acutelowmod'] = 0x02CF;\n t['acutetonecmb'] = 0x0341;\n t['acyrillic'] = 0x0430;\n t['adblgrave'] = 0x0201;\n t['addakgurmukhi'] = 0x0A71;\n t['adeva'] = 0x0905;\n t['adieresis'] = 0x00E4;\n t['adieresiscyrillic'] = 0x04D3;\n t['adieresismacron'] = 0x01DF;\n t['adotbelow'] = 0x1EA1;\n t['adotmacron'] = 0x01E1;\n t['ae'] = 0x00E6;\n t['aeacute'] = 0x01FD;\n t['aekorean'] = 0x3150;\n t['aemacron'] = 0x01E3;\n t['afii00208'] = 0x2015;\n t['afii08941'] = 0x20A4;\n t['afii10017'] = 0x0410;\n t['afii10018'] = 0x0411;\n t['afii10019'] = 0x0412;\n t['afii10020'] = 0x0413;\n t['afii10021'] = 0x0414;\n t['afii10022'] = 0x0415;\n t['afii10023'] = 0x0401;\n t['afii10024'] = 0x0416;\n t['afii10025'] = 0x0417;\n t['afii10026'] = 0x0418;\n t['afii10027'] = 0x0419;\n t['afii10028'] = 0x041A;\n t['afii10029'] = 0x041B;\n t['afii10030'] = 0x041C;\n t['afii10031'] = 0x041D;\n t['afii10032'] = 0x041E;\n t['afii10033'] = 0x041F;\n t['afii10034'] = 0x0420;\n t['afii10035'] = 0x0421;\n t['afii10036'] = 0x0422;\n t['afii10037'] = 0x0423;\n t['afii10038'] = 0x0424;\n t['afii10039'] = 0x0425;\n t['afii10040'] = 0x0426;\n t['afii10041'] = 0x0427;\n t['afii10042'] = 0x0428;\n t['afii10043'] = 0x0429;\n t['afii10044'] = 0x042A;\n t['afii10045'] = 0x042B;\n t['afii10046'] = 0x042C;\n t['afii10047'] = 0x042D;\n t['afii10048'] = 0x042E;\n t['afii10049'] = 0x042F;\n t['afii10050'] = 0x0490;\n t['afii10051'] = 0x0402;\n t['afii10052'] = 0x0403;\n t['afii10053'] = 0x0404;\n t['afii10054'] = 0x0405;\n t['afii10055'] = 0x0406;\n t['afii10056'] = 0x0407;\n t['afii10057'] = 0x0408;\n t['afii10058'] = 0x0409;\n t['afii10059'] = 0x040A;\n t['afii10060'] = 0x040B;\n t['afii10061'] = 0x040C;\n t['afii10062'] = 0x040E;\n t['afii10063'] = 0xF6C4;\n t['afii10064'] = 0xF6C5;\n t['afii10065'] = 0x0430;\n t['afii10066'] = 0x0431;\n t['afii10067'] = 0x0432;\n t['afii10068'] = 0x0433;\n t['afii10069'] = 0x0434;\n t['afii10070'] = 0x0435;\n t['afii10071'] = 0x0451;\n t['afii10072'] = 0x0436;\n t['afii10073'] = 0x0437;\n t['afii10074'] = 0x0438;\n t['afii10075'] = 0x0439;\n t['afii10076'] = 0x043A;\n t['afii10077'] = 0x043B;\n t['afii10078'] = 0x043C;\n t['afii10079'] = 0x043D;\n t['afii10080'] = 0x043E;\n t['afii10081'] = 0x043F;\n t['afii10082'] = 0x0440;\n t['afii10083'] = 0x0441;\n t['afii10084'] = 0x0442;\n t['afii10085'] = 0x0443;\n t['afii10086'] = 0x0444;\n t['afii10087'] = 0x0445;\n t['afii10088'] = 0x0446;\n t['afii10089'] = 0x0447;\n t['afii10090'] = 0x0448;\n t['afii10091'] = 0x0449;\n t['afii10092'] = 0x044A;\n t['afii10093'] = 0x044B;\n t['afii10094'] = 0x044C;\n t['afii10095'] = 0x044D;\n t['afii10096'] = 0x044E;\n t['afii10097'] = 0x044F;\n t['afii10098'] = 0x0491;\n t['afii10099'] = 0x0452;\n t['afii10100'] = 0x0453;\n t['afii10101'] = 0x0454;\n t['afii10102'] = 0x0455;\n t['afii10103'] = 0x0456;\n t['afii10104'] = 0x0457;\n t['afii10105'] = 0x0458;\n t['afii10106'] = 0x0459;\n t['afii10107'] = 0x045A;\n t['afii10108'] = 0x045B;\n t['afii10109'] = 0x045C;\n t['afii10110'] = 0x045E;\n t['afii10145'] = 0x040F;\n t['afii10146'] = 0x0462;\n t['afii10147'] = 0x0472;\n t['afii10148'] = 0x0474;\n t['afii10192'] = 0xF6C6;\n t['afii10193'] = 0x045F;\n t['afii10194'] = 0x0463;\n t['afii10195'] = 0x0473;\n t['afii10196'] = 0x0475;\n t['afii10831'] = 0xF6C7;\n t['afii10832'] = 0xF6C8;\n t['afii10846'] = 0x04D9;\n t['afii299'] = 0x200E;\n t['afii300'] = 0x200F;\n t['afii301'] = 0x200D;\n t['afii57381'] = 0x066A;\n t['afii57388'] = 0x060C;\n t['afii57392'] = 0x0660;\n t['afii57393'] = 0x0661;\n t['afii57394'] = 0x0662;\n t['afii57395'] = 0x0663;\n t['afii57396'] = 0x0664;\n t['afii57397'] = 0x0665;\n t['afii57398'] = 0x0666;\n t['afii57399'] = 0x0667;\n t['afii57400'] = 0x0668;\n t['afii57401'] = 0x0669;\n t['afii57403'] = 0x061B;\n t['afii57407'] = 0x061F;\n t['afii57409'] = 0x0621;\n t['afii57410'] = 0x0622;\n t['afii57411'] = 0x0623;\n t['afii57412'] = 0x0624;\n t['afii57413'] = 0x0625;\n t['afii57414'] = 0x0626;\n t['afii57415'] = 0x0627;\n t['afii57416'] = 0x0628;\n t['afii57417'] = 0x0629;\n t['afii57418'] = 0x062A;\n t['afii57419'] = 0x062B;\n t['afii57420'] = 0x062C;\n t['afii57421'] = 0x062D;\n t['afii57422'] = 0x062E;\n t['afii57423'] = 0x062F;\n t['afii57424'] = 0x0630;\n t['afii57425'] = 0x0631;\n t['afii57426'] = 0x0632;\n t['afii57427'] = 0x0633;\n t['afii57428'] = 0x0634;\n t['afii57429'] = 0x0635;\n t['afii57430'] = 0x0636;\n t['afii57431'] = 0x0637;\n t['afii57432'] = 0x0638;\n t['afii57433'] = 0x0639;\n t['afii57434'] = 0x063A;\n t['afii57440'] = 0x0640;\n t['afii57441'] = 0x0641;\n t['afii57442'] = 0x0642;\n t['afii57443'] = 0x0643;\n t['afii57444'] = 0x0644;\n t['afii57445'] = 0x0645;\n t['afii57446'] = 0x0646;\n t['afii57448'] = 0x0648;\n t['afii57449'] = 0x0649;\n t['afii57450'] = 0x064A;\n t['afii57451'] = 0x064B;\n t['afii57452'] = 0x064C;\n t['afii57453'] = 0x064D;\n t['afii57454'] = 0x064E;\n t['afii57455'] = 0x064F;\n t['afii57456'] = 0x0650;\n t['afii57457'] = 0x0651;\n t['afii57458'] = 0x0652;\n t['afii57470'] = 0x0647;\n t['afii57505'] = 0x06A4;\n t['afii57506'] = 0x067E;\n t['afii57507'] = 0x0686;\n t['afii57508'] = 0x0698;\n t['afii57509'] = 0x06AF;\n t['afii57511'] = 0x0679;\n t['afii57512'] = 0x0688;\n t['afii57513'] = 0x0691;\n t['afii57514'] = 0x06BA;\n t['afii57519'] = 0x06D2;\n t['afii57534'] = 0x06D5;\n t['afii57636'] = 0x20AA;\n t['afii57645'] = 0x05BE;\n t['afii57658'] = 0x05C3;\n t['afii57664'] = 0x05D0;\n t['afii57665'] = 0x05D1;\n t['afii57666'] = 0x05D2;\n t['afii57667'] = 0x05D3;\n t['afii57668'] = 0x05D4;\n t['afii57669'] = 0x05D5;\n t['afii57670'] = 0x05D6;\n t['afii57671'] = 0x05D7;\n t['afii57672'] = 0x05D8;\n t['afii57673'] = 0x05D9;\n t['afii57674'] = 0x05DA;\n t['afii57675'] = 0x05DB;\n t['afii57676'] = 0x05DC;\n t['afii57677'] = 0x05DD;\n t['afii57678'] = 0x05DE;\n t['afii57679'] = 0x05DF;\n t['afii57680'] = 0x05E0;\n t['afii57681'] = 0x05E1;\n t['afii57682'] = 0x05E2;\n t['afii57683'] = 0x05E3;\n t['afii57684'] = 0x05E4;\n t['afii57685'] = 0x05E5;\n t['afii57686'] = 0x05E6;\n t['afii57687'] = 0x05E7;\n t['afii57688'] = 0x05E8;\n t['afii57689'] = 0x05E9;\n t['afii57690'] = 0x05EA;\n t['afii57694'] = 0xFB2A;\n t['afii57695'] = 0xFB2B;\n t['afii57700'] = 0xFB4B;\n t['afii57705'] = 0xFB1F;\n t['afii57716'] = 0x05F0;\n t['afii57717'] = 0x05F1;\n t['afii57718'] = 0x05F2;\n t['afii57723'] = 0xFB35;\n t['afii57793'] = 0x05B4;\n t['afii57794'] = 0x05B5;\n t['afii57795'] = 0x05B6;\n t['afii57796'] = 0x05BB;\n t['afii57797'] = 0x05B8;\n t['afii57798'] = 0x05B7;\n t['afii57799'] = 0x05B0;\n t['afii57800'] = 0x05B2;\n t['afii57801'] = 0x05B1;\n t['afii57802'] = 0x05B3;\n t['afii57803'] = 0x05C2;\n t['afii57804'] = 0x05C1;\n t['afii57806'] = 0x05B9;\n t['afii57807'] = 0x05BC;\n t['afii57839'] = 0x05BD;\n t['afii57841'] = 0x05BF;\n t['afii57842'] = 0x05C0;\n t['afii57929'] = 0x02BC;\n t['afii61248'] = 0x2105;\n t['afii61289'] = 0x2113;\n t['afii61352'] = 0x2116;\n t['afii61573'] = 0x202C;\n t['afii61574'] = 0x202D;\n t['afii61575'] = 0x202E;\n t['afii61664'] = 0x200C;\n t['afii63167'] = 0x066D;\n t['afii64937'] = 0x02BD;\n t['agrave'] = 0x00E0;\n t['agujarati'] = 0x0A85;\n t['agurmukhi'] = 0x0A05;\n t['ahiragana'] = 0x3042;\n t['ahookabove'] = 0x1EA3;\n t['aibengali'] = 0x0990;\n t['aibopomofo'] = 0x311E;\n t['aideva'] = 0x0910;\n t['aiecyrillic'] = 0x04D5;\n t['aigujarati'] = 0x0A90;\n t['aigurmukhi'] = 0x0A10;\n t['aimatragurmukhi'] = 0x0A48;\n t['ainarabic'] = 0x0639;\n t['ainfinalarabic'] = 0xFECA;\n t['aininitialarabic'] = 0xFECB;\n t['ainmedialarabic'] = 0xFECC;\n t['ainvertedbreve'] = 0x0203;\n t['aivowelsignbengali'] = 0x09C8;\n t['aivowelsigndeva'] = 0x0948;\n t['aivowelsigngujarati'] = 0x0AC8;\n t['akatakana'] = 0x30A2;\n t['akatakanahalfwidth'] = 0xFF71;\n t['akorean'] = 0x314F;\n t['alef'] = 0x05D0;\n t['alefarabic'] = 0x0627;\n t['alefdageshhebrew'] = 0xFB30;\n t['aleffinalarabic'] = 0xFE8E;\n t['alefhamzaabovearabic'] = 0x0623;\n t['alefhamzaabovefinalarabic'] = 0xFE84;\n t['alefhamzabelowarabic'] = 0x0625;\n t['alefhamzabelowfinalarabic'] = 0xFE88;\n t['alefhebrew'] = 0x05D0;\n t['aleflamedhebrew'] = 0xFB4F;\n t['alefmaddaabovearabic'] = 0x0622;\n t['alefmaddaabovefinalarabic'] = 0xFE82;\n t['alefmaksuraarabic'] = 0x0649;\n t['alefmaksurafinalarabic'] = 0xFEF0;\n t['alefmaksurainitialarabic'] = 0xFEF3;\n t['alefmaksuramedialarabic'] = 0xFEF4;\n t['alefpatahhebrew'] = 0xFB2E;\n t['alefqamatshebrew'] = 0xFB2F;\n t['aleph'] = 0x2135;\n t['allequal'] = 0x224C;\n t['alpha'] = 0x03B1;\n t['alphatonos'] = 0x03AC;\n t['amacron'] = 0x0101;\n t['amonospace'] = 0xFF41;\n t['ampersand'] = 0x0026;\n t['ampersandmonospace'] = 0xFF06;\n t['ampersandsmall'] = 0xF726;\n t['amsquare'] = 0x33C2;\n t['anbopomofo'] = 0x3122;\n t['angbopomofo'] = 0x3124;\n t['angbracketleft'] = 0x3008;\n t['angbracketright'] = 0x3009;\n t['angkhankhuthai'] = 0x0E5A;\n t['angle'] = 0x2220;\n t['anglebracketleft'] = 0x3008;\n t['anglebracketleftvertical'] = 0xFE3F;\n t['anglebracketright'] = 0x3009;\n t['anglebracketrightvertical'] = 0xFE40;\n t['angleleft'] = 0x2329;\n t['angleright'] = 0x232A;\n t['angstrom'] = 0x212B;\n t['anoteleia'] = 0x0387;\n t['anudattadeva'] = 0x0952;\n t['anusvarabengali'] = 0x0982;\n t['anusvaradeva'] = 0x0902;\n t['anusvaragujarati'] = 0x0A82;\n t['aogonek'] = 0x0105;\n t['apaatosquare'] = 0x3300;\n t['aparen'] = 0x249C;\n t['apostrophearmenian'] = 0x055A;\n t['apostrophemod'] = 0x02BC;\n t['apple'] = 0xF8FF;\n t['approaches'] = 0x2250;\n t['approxequal'] = 0x2248;\n t['approxequalorimage'] = 0x2252;\n t['approximatelyequal'] = 0x2245;\n t['araeaekorean'] = 0x318E;\n t['araeakorean'] = 0x318D;\n t['arc'] = 0x2312;\n t['arighthalfring'] = 0x1E9A;\n t['aring'] = 0x00E5;\n t['aringacute'] = 0x01FB;\n t['aringbelow'] = 0x1E01;\n t['arrowboth'] = 0x2194;\n t['arrowdashdown'] = 0x21E3;\n t['arrowdashleft'] = 0x21E0;\n t['arrowdashright'] = 0x21E2;\n t['arrowdashup'] = 0x21E1;\n t['arrowdblboth'] = 0x21D4;\n t['arrowdbldown'] = 0x21D3;\n t['arrowdblleft'] = 0x21D0;\n t['arrowdblright'] = 0x21D2;\n t['arrowdblup'] = 0x21D1;\n t['arrowdown'] = 0x2193;\n t['arrowdownleft'] = 0x2199;\n t['arrowdownright'] = 0x2198;\n t['arrowdownwhite'] = 0x21E9;\n t['arrowheaddownmod'] = 0x02C5;\n t['arrowheadleftmod'] = 0x02C2;\n t['arrowheadrightmod'] = 0x02C3;\n t['arrowheadupmod'] = 0x02C4;\n t['arrowhorizex'] = 0xF8E7;\n t['arrowleft'] = 0x2190;\n t['arrowleftdbl'] = 0x21D0;\n t['arrowleftdblstroke'] = 0x21CD;\n t['arrowleftoverright'] = 0x21C6;\n t['arrowleftwhite'] = 0x21E6;\n t['arrowright'] = 0x2192;\n t['arrowrightdblstroke'] = 0x21CF;\n t['arrowrightheavy'] = 0x279E;\n t['arrowrightoverleft'] = 0x21C4;\n t['arrowrightwhite'] = 0x21E8;\n t['arrowtableft'] = 0x21E4;\n t['arrowtabright'] = 0x21E5;\n t['arrowup'] = 0x2191;\n t['arrowupdn'] = 0x2195;\n t['arrowupdnbse'] = 0x21A8;\n t['arrowupdownbase'] = 0x21A8;\n t['arrowupleft'] = 0x2196;\n t['arrowupleftofdown'] = 0x21C5;\n t['arrowupright'] = 0x2197;\n t['arrowupwhite'] = 0x21E7;\n t['arrowvertex'] = 0xF8E6;\n t['asciicircum'] = 0x005E;\n t['asciicircummonospace'] = 0xFF3E;\n t['asciitilde'] = 0x007E;\n t['asciitildemonospace'] = 0xFF5E;\n t['ascript'] = 0x0251;\n t['ascriptturned'] = 0x0252;\n t['asmallhiragana'] = 0x3041;\n t['asmallkatakana'] = 0x30A1;\n t['asmallkatakanahalfwidth'] = 0xFF67;\n t['asterisk'] = 0x002A;\n t['asteriskaltonearabic'] = 0x066D;\n t['asteriskarabic'] = 0x066D;\n t['asteriskmath'] = 0x2217;\n t['asteriskmonospace'] = 0xFF0A;\n t['asterisksmall'] = 0xFE61;\n t['asterism'] = 0x2042;\n t['asuperior'] = 0xF6E9;\n t['asymptoticallyequal'] = 0x2243;\n t['at'] = 0x0040;\n t['atilde'] = 0x00E3;\n t['atmonospace'] = 0xFF20;\n t['atsmall'] = 0xFE6B;\n t['aturned'] = 0x0250;\n t['aubengali'] = 0x0994;\n t['aubopomofo'] = 0x3120;\n t['audeva'] = 0x0914;\n t['augujarati'] = 0x0A94;\n t['augurmukhi'] = 0x0A14;\n t['aulengthmarkbengali'] = 0x09D7;\n t['aumatragurmukhi'] = 0x0A4C;\n t['auvowelsignbengali'] = 0x09CC;\n t['auvowelsigndeva'] = 0x094C;\n t['auvowelsigngujarati'] = 0x0ACC;\n t['avagrahadeva'] = 0x093D;\n t['aybarmenian'] = 0x0561;\n t['ayin'] = 0x05E2;\n t['ayinaltonehebrew'] = 0xFB20;\n t['ayinhebrew'] = 0x05E2;\n t['b'] = 0x0062;\n t['babengali'] = 0x09AC;\n t['backslash'] = 0x005C;\n t['backslashmonospace'] = 0xFF3C;\n t['badeva'] = 0x092C;\n t['bagujarati'] = 0x0AAC;\n t['bagurmukhi'] = 0x0A2C;\n t['bahiragana'] = 0x3070;\n t['bahtthai'] = 0x0E3F;\n t['bakatakana'] = 0x30D0;\n t['bar'] = 0x007C;\n t['barmonospace'] = 0xFF5C;\n t['bbopomofo'] = 0x3105;\n t['bcircle'] = 0x24D1;\n t['bdotaccent'] = 0x1E03;\n t['bdotbelow'] = 0x1E05;\n t['beamedsixteenthnotes'] = 0x266C;\n t['because'] = 0x2235;\n t['becyrillic'] = 0x0431;\n t['beharabic'] = 0x0628;\n t['behfinalarabic'] = 0xFE90;\n t['behinitialarabic'] = 0xFE91;\n t['behiragana'] = 0x3079;\n t['behmedialarabic'] = 0xFE92;\n t['behmeeminitialarabic'] = 0xFC9F;\n t['behmeemisolatedarabic'] = 0xFC08;\n t['behnoonfinalarabic'] = 0xFC6D;\n t['bekatakana'] = 0x30D9;\n t['benarmenian'] = 0x0562;\n t['bet'] = 0x05D1;\n t['beta'] = 0x03B2;\n t['betasymbolgreek'] = 0x03D0;\n t['betdagesh'] = 0xFB31;\n t['betdageshhebrew'] = 0xFB31;\n t['bethebrew'] = 0x05D1;\n t['betrafehebrew'] = 0xFB4C;\n t['bhabengali'] = 0x09AD;\n t['bhadeva'] = 0x092D;\n t['bhagujarati'] = 0x0AAD;\n t['bhagurmukhi'] = 0x0A2D;\n t['bhook'] = 0x0253;\n t['bihiragana'] = 0x3073;\n t['bikatakana'] = 0x30D3;\n t['bilabialclick'] = 0x0298;\n t['bindigurmukhi'] = 0x0A02;\n t['birusquare'] = 0x3331;\n t['blackcircle'] = 0x25CF;\n t['blackdiamond'] = 0x25C6;\n t['blackdownpointingtriangle'] = 0x25BC;\n t['blackleftpointingpointer'] = 0x25C4;\n t['blackleftpointingtriangle'] = 0x25C0;\n t['blacklenticularbracketleft'] = 0x3010;\n t['blacklenticularbracketleftvertical'] = 0xFE3B;\n t['blacklenticularbracketright'] = 0x3011;\n t['blacklenticularbracketrightvertical'] = 0xFE3C;\n t['blacklowerlefttriangle'] = 0x25E3;\n t['blacklowerrighttriangle'] = 0x25E2;\n t['blackrectangle'] = 0x25AC;\n t['blackrightpointingpointer'] = 0x25BA;\n t['blackrightpointingtriangle'] = 0x25B6;\n t['blacksmallsquare'] = 0x25AA;\n t['blacksmilingface'] = 0x263B;\n t['blacksquare'] = 0x25A0;\n t['blackstar'] = 0x2605;\n t['blackupperlefttriangle'] = 0x25E4;\n t['blackupperrighttriangle'] = 0x25E5;\n t['blackuppointingsmalltriangle'] = 0x25B4;\n t['blackuppointingtriangle'] = 0x25B2;\n t['blank'] = 0x2423;\n t['blinebelow'] = 0x1E07;\n t['block'] = 0x2588;\n t['bmonospace'] = 0xFF42;\n t['bobaimaithai'] = 0x0E1A;\n t['bohiragana'] = 0x307C;\n t['bokatakana'] = 0x30DC;\n t['bparen'] = 0x249D;\n t['bqsquare'] = 0x33C3;\n t['braceex'] = 0xF8F4;\n t['braceleft'] = 0x007B;\n t['braceleftbt'] = 0xF8F3;\n t['braceleftmid'] = 0xF8F2;\n t['braceleftmonospace'] = 0xFF5B;\n t['braceleftsmall'] = 0xFE5B;\n t['bracelefttp'] = 0xF8F1;\n t['braceleftvertical'] = 0xFE37;\n t['braceright'] = 0x007D;\n t['bracerightbt'] = 0xF8FE;\n t['bracerightmid'] = 0xF8FD;\n t['bracerightmonospace'] = 0xFF5D;\n t['bracerightsmall'] = 0xFE5C;\n t['bracerighttp'] = 0xF8FC;\n t['bracerightvertical'] = 0xFE38;\n t['bracketleft'] = 0x005B;\n t['bracketleftbt'] = 0xF8F0;\n t['bracketleftex'] = 0xF8EF;\n t['bracketleftmonospace'] = 0xFF3B;\n t['bracketlefttp'] = 0xF8EE;\n t['bracketright'] = 0x005D;\n t['bracketrightbt'] = 0xF8FB;\n t['bracketrightex'] = 0xF8FA;\n t['bracketrightmonospace'] = 0xFF3D;\n t['bracketrighttp'] = 0xF8F9;\n t['breve'] = 0x02D8;\n t['brevebelowcmb'] = 0x032E;\n t['brevecmb'] = 0x0306;\n t['breveinvertedbelowcmb'] = 0x032F;\n t['breveinvertedcmb'] = 0x0311;\n t['breveinverteddoublecmb'] = 0x0361;\n t['bridgebelowcmb'] = 0x032A;\n t['bridgeinvertedbelowcmb'] = 0x033A;\n t['brokenbar'] = 0x00A6;\n t['bstroke'] = 0x0180;\n t['bsuperior'] = 0xF6EA;\n t['btopbar'] = 0x0183;\n t['buhiragana'] = 0x3076;\n t['bukatakana'] = 0x30D6;\n t['bullet'] = 0x2022;\n t['bulletinverse'] = 0x25D8;\n t['bulletoperator'] = 0x2219;\n t['bullseye'] = 0x25CE;\n t['c'] = 0x0063;\n t['caarmenian'] = 0x056E;\n t['cabengali'] = 0x099A;\n t['cacute'] = 0x0107;\n t['cadeva'] = 0x091A;\n t['cagujarati'] = 0x0A9A;\n t['cagurmukhi'] = 0x0A1A;\n t['calsquare'] = 0x3388;\n t['candrabindubengali'] = 0x0981;\n t['candrabinducmb'] = 0x0310;\n t['candrabindudeva'] = 0x0901;\n t['candrabindugujarati'] = 0x0A81;\n t['capslock'] = 0x21EA;\n t['careof'] = 0x2105;\n t['caron'] = 0x02C7;\n t['caronbelowcmb'] = 0x032C;\n t['caroncmb'] = 0x030C;\n t['carriagereturn'] = 0x21B5;\n t['cbopomofo'] = 0x3118;\n t['ccaron'] = 0x010D;\n t['ccedilla'] = 0x00E7;\n t['ccedillaacute'] = 0x1E09;\n t['ccircle'] = 0x24D2;\n t['ccircumflex'] = 0x0109;\n t['ccurl'] = 0x0255;\n t['cdot'] = 0x010B;\n t['cdotaccent'] = 0x010B;\n t['cdsquare'] = 0x33C5;\n t['cedilla'] = 0x00B8;\n t['cedillacmb'] = 0x0327;\n t['cent'] = 0x00A2;\n t['centigrade'] = 0x2103;\n t['centinferior'] = 0xF6DF;\n t['centmonospace'] = 0xFFE0;\n t['centoldstyle'] = 0xF7A2;\n t['centsuperior'] = 0xF6E0;\n t['chaarmenian'] = 0x0579;\n t['chabengali'] = 0x099B;\n t['chadeva'] = 0x091B;\n t['chagujarati'] = 0x0A9B;\n t['chagurmukhi'] = 0x0A1B;\n t['chbopomofo'] = 0x3114;\n t['cheabkhasiancyrillic'] = 0x04BD;\n t['checkmark'] = 0x2713;\n t['checyrillic'] = 0x0447;\n t['chedescenderabkhasiancyrillic'] = 0x04BF;\n t['chedescendercyrillic'] = 0x04B7;\n t['chedieresiscyrillic'] = 0x04F5;\n t['cheharmenian'] = 0x0573;\n t['chekhakassiancyrillic'] = 0x04CC;\n t['cheverticalstrokecyrillic'] = 0x04B9;\n t['chi'] = 0x03C7;\n t['chieuchacirclekorean'] = 0x3277;\n t['chieuchaparenkorean'] = 0x3217;\n t['chieuchcirclekorean'] = 0x3269;\n t['chieuchkorean'] = 0x314A;\n t['chieuchparenkorean'] = 0x3209;\n t['chochangthai'] = 0x0E0A;\n t['chochanthai'] = 0x0E08;\n t['chochingthai'] = 0x0E09;\n t['chochoethai'] = 0x0E0C;\n t['chook'] = 0x0188;\n t['cieucacirclekorean'] = 0x3276;\n t['cieucaparenkorean'] = 0x3216;\n t['cieuccirclekorean'] = 0x3268;\n t['cieuckorean'] = 0x3148;\n t['cieucparenkorean'] = 0x3208;\n t['cieucuparenkorean'] = 0x321C;\n t['circle'] = 0x25CB;\n t['circlecopyrt'] = 0x00A9;\n t['circlemultiply'] = 0x2297;\n t['circleot'] = 0x2299;\n t['circleplus'] = 0x2295;\n t['circlepostalmark'] = 0x3036;\n t['circlewithlefthalfblack'] = 0x25D0;\n t['circlewithrighthalfblack'] = 0x25D1;\n t['circumflex'] = 0x02C6;\n t['circumflexbelowcmb'] = 0x032D;\n t['circumflexcmb'] = 0x0302;\n t['clear'] = 0x2327;\n t['clickalveolar'] = 0x01C2;\n t['clickdental'] = 0x01C0;\n t['clicklateral'] = 0x01C1;\n t['clickretroflex'] = 0x01C3;\n t['club'] = 0x2663;\n t['clubsuitblack'] = 0x2663;\n t['clubsuitwhite'] = 0x2667;\n t['cmcubedsquare'] = 0x33A4;\n t['cmonospace'] = 0xFF43;\n t['cmsquaredsquare'] = 0x33A0;\n t['coarmenian'] = 0x0581;\n t['colon'] = 0x003A;\n t['colonmonetary'] = 0x20A1;\n t['colonmonospace'] = 0xFF1A;\n t['colonsign'] = 0x20A1;\n t['colonsmall'] = 0xFE55;\n t['colontriangularhalfmod'] = 0x02D1;\n t['colontriangularmod'] = 0x02D0;\n t['comma'] = 0x002C;\n t['commaabovecmb'] = 0x0313;\n t['commaaboverightcmb'] = 0x0315;\n t['commaaccent'] = 0xF6C3;\n t['commaarabic'] = 0x060C;\n t['commaarmenian'] = 0x055D;\n t['commainferior'] = 0xF6E1;\n t['commamonospace'] = 0xFF0C;\n t['commareversedabovecmb'] = 0x0314;\n t['commareversedmod'] = 0x02BD;\n t['commasmall'] = 0xFE50;\n t['commasuperior'] = 0xF6E2;\n t['commaturnedabovecmb'] = 0x0312;\n t['commaturnedmod'] = 0x02BB;\n t['compass'] = 0x263C;\n t['congruent'] = 0x2245;\n t['contourintegral'] = 0x222E;\n t['control'] = 0x2303;\n t['controlACK'] = 0x0006;\n t['controlBEL'] = 0x0007;\n t['controlBS'] = 0x0008;\n t['controlCAN'] = 0x0018;\n t['controlCR'] = 0x000D;\n t['controlDC1'] = 0x0011;\n t['controlDC2'] = 0x0012;\n t['controlDC3'] = 0x0013;\n t['controlDC4'] = 0x0014;\n t['controlDEL'] = 0x007F;\n t['controlDLE'] = 0x0010;\n t['controlEM'] = 0x0019;\n t['controlENQ'] = 0x0005;\n t['controlEOT'] = 0x0004;\n t['controlESC'] = 0x001B;\n t['controlETB'] = 0x0017;\n t['controlETX'] = 0x0003;\n t['controlFF'] = 0x000C;\n t['controlFS'] = 0x001C;\n t['controlGS'] = 0x001D;\n t['controlHT'] = 0x0009;\n t['controlLF'] = 0x000A;\n t['controlNAK'] = 0x0015;\n t['controlNULL'] = 0x0000;\n t['controlRS'] = 0x001E;\n t['controlSI'] = 0x000F;\n t['controlSO'] = 0x000E;\n t['controlSOT'] = 0x0002;\n t['controlSTX'] = 0x0001;\n t['controlSUB'] = 0x001A;\n t['controlSYN'] = 0x0016;\n t['controlUS'] = 0x001F;\n t['controlVT'] = 0x000B;\n t['copyright'] = 0x00A9;\n t['copyrightsans'] = 0xF8E9;\n t['copyrightserif'] = 0xF6D9;\n t['cornerbracketleft'] = 0x300C;\n t['cornerbracketlefthalfwidth'] = 0xFF62;\n t['cornerbracketleftvertical'] = 0xFE41;\n t['cornerbracketright'] = 0x300D;\n t['cornerbracketrighthalfwidth'] = 0xFF63;\n t['cornerbracketrightvertical'] = 0xFE42;\n t['corporationsquare'] = 0x337F;\n t['cosquare'] = 0x33C7;\n t['coverkgsquare'] = 0x33C6;\n t['cparen'] = 0x249E;\n t['cruzeiro'] = 0x20A2;\n t['cstretched'] = 0x0297;\n t['curlyand'] = 0x22CF;\n t['curlyor'] = 0x22CE;\n t['currency'] = 0x00A4;\n t['cyrBreve'] = 0xF6D1;\n t['cyrFlex'] = 0xF6D2;\n t['cyrbreve'] = 0xF6D4;\n t['cyrflex'] = 0xF6D5;\n t['d'] = 0x0064;\n t['daarmenian'] = 0x0564;\n t['dabengali'] = 0x09A6;\n t['dadarabic'] = 0x0636;\n t['dadeva'] = 0x0926;\n t['dadfinalarabic'] = 0xFEBE;\n t['dadinitialarabic'] = 0xFEBF;\n t['dadmedialarabic'] = 0xFEC0;\n t['dagesh'] = 0x05BC;\n t['dageshhebrew'] = 0x05BC;\n t['dagger'] = 0x2020;\n t['daggerdbl'] = 0x2021;\n t['dagujarati'] = 0x0AA6;\n t['dagurmukhi'] = 0x0A26;\n t['dahiragana'] = 0x3060;\n t['dakatakana'] = 0x30C0;\n t['dalarabic'] = 0x062F;\n t['dalet'] = 0x05D3;\n t['daletdagesh'] = 0xFB33;\n t['daletdageshhebrew'] = 0xFB33;\n t['dalethebrew'] = 0x05D3;\n t['dalfinalarabic'] = 0xFEAA;\n t['dammaarabic'] = 0x064F;\n t['dammalowarabic'] = 0x064F;\n t['dammatanaltonearabic'] = 0x064C;\n t['dammatanarabic'] = 0x064C;\n t['danda'] = 0x0964;\n t['dargahebrew'] = 0x05A7;\n t['dargalefthebrew'] = 0x05A7;\n t['dasiapneumatacyrilliccmb'] = 0x0485;\n t['dblGrave'] = 0xF6D3;\n t['dblanglebracketleft'] = 0x300A;\n t['dblanglebracketleftvertical'] = 0xFE3D;\n t['dblanglebracketright'] = 0x300B;\n t['dblanglebracketrightvertical'] = 0xFE3E;\n t['dblarchinvertedbelowcmb'] = 0x032B;\n t['dblarrowleft'] = 0x21D4;\n t['dblarrowright'] = 0x21D2;\n t['dbldanda'] = 0x0965;\n t['dblgrave'] = 0xF6D6;\n t['dblgravecmb'] = 0x030F;\n t['dblintegral'] = 0x222C;\n t['dbllowline'] = 0x2017;\n t['dbllowlinecmb'] = 0x0333;\n t['dbloverlinecmb'] = 0x033F;\n t['dblprimemod'] = 0x02BA;\n t['dblverticalbar'] = 0x2016;\n t['dblverticallineabovecmb'] = 0x030E;\n t['dbopomofo'] = 0x3109;\n t['dbsquare'] = 0x33C8;\n t['dcaron'] = 0x010F;\n t['dcedilla'] = 0x1E11;\n t['dcircle'] = 0x24D3;\n t['dcircumflexbelow'] = 0x1E13;\n t['dcroat'] = 0x0111;\n t['ddabengali'] = 0x09A1;\n t['ddadeva'] = 0x0921;\n t['ddagujarati'] = 0x0AA1;\n t['ddagurmukhi'] = 0x0A21;\n t['ddalarabic'] = 0x0688;\n t['ddalfinalarabic'] = 0xFB89;\n t['dddhadeva'] = 0x095C;\n t['ddhabengali'] = 0x09A2;\n t['ddhadeva'] = 0x0922;\n t['ddhagujarati'] = 0x0AA2;\n t['ddhagurmukhi'] = 0x0A22;\n t['ddotaccent'] = 0x1E0B;\n t['ddotbelow'] = 0x1E0D;\n t['decimalseparatorarabic'] = 0x066B;\n t['decimalseparatorpersian'] = 0x066B;\n t['decyrillic'] = 0x0434;\n t['degree'] = 0x00B0;\n t['dehihebrew'] = 0x05AD;\n t['dehiragana'] = 0x3067;\n t['deicoptic'] = 0x03EF;\n t['dekatakana'] = 0x30C7;\n t['deleteleft'] = 0x232B;\n t['deleteright'] = 0x2326;\n t['delta'] = 0x03B4;\n t['deltaturned'] = 0x018D;\n t['denominatorminusonenumeratorbengali'] = 0x09F8;\n t['dezh'] = 0x02A4;\n t['dhabengali'] = 0x09A7;\n t['dhadeva'] = 0x0927;\n t['dhagujarati'] = 0x0AA7;\n t['dhagurmukhi'] = 0x0A27;\n t['dhook'] = 0x0257;\n t['dialytikatonos'] = 0x0385;\n t['dialytikatonoscmb'] = 0x0344;\n t['diamond'] = 0x2666;\n t['diamondsuitwhite'] = 0x2662;\n t['dieresis'] = 0x00A8;\n t['dieresisacute'] = 0xF6D7;\n t['dieresisbelowcmb'] = 0x0324;\n t['dieresiscmb'] = 0x0308;\n t['dieresisgrave'] = 0xF6D8;\n t['dieresistonos'] = 0x0385;\n t['dihiragana'] = 0x3062;\n t['dikatakana'] = 0x30C2;\n t['dittomark'] = 0x3003;\n t['divide'] = 0x00F7;\n t['divides'] = 0x2223;\n t['divisionslash'] = 0x2215;\n t['djecyrillic'] = 0x0452;\n t['dkshade'] = 0x2593;\n t['dlinebelow'] = 0x1E0F;\n t['dlsquare'] = 0x3397;\n t['dmacron'] = 0x0111;\n t['dmonospace'] = 0xFF44;\n t['dnblock'] = 0x2584;\n t['dochadathai'] = 0x0E0E;\n t['dodekthai'] = 0x0E14;\n t['dohiragana'] = 0x3069;\n t['dokatakana'] = 0x30C9;\n t['dollar'] = 0x0024;\n t['dollarinferior'] = 0xF6E3;\n t['dollarmonospace'] = 0xFF04;\n t['dollaroldstyle'] = 0xF724;\n t['dollarsmall'] = 0xFE69;\n t['dollarsuperior'] = 0xF6E4;\n t['dong'] = 0x20AB;\n t['dorusquare'] = 0x3326;\n t['dotaccent'] = 0x02D9;\n t['dotaccentcmb'] = 0x0307;\n t['dotbelowcmb'] = 0x0323;\n t['dotbelowcomb'] = 0x0323;\n t['dotkatakana'] = 0x30FB;\n t['dotlessi'] = 0x0131;\n t['dotlessj'] = 0xF6BE;\n t['dotlessjstrokehook'] = 0x0284;\n t['dotmath'] = 0x22C5;\n t['dottedcircle'] = 0x25CC;\n t['doubleyodpatah'] = 0xFB1F;\n t['doubleyodpatahhebrew'] = 0xFB1F;\n t['downtackbelowcmb'] = 0x031E;\n t['downtackmod'] = 0x02D5;\n t['dparen'] = 0x249F;\n t['dsuperior'] = 0xF6EB;\n t['dtail'] = 0x0256;\n t['dtopbar'] = 0x018C;\n t['duhiragana'] = 0x3065;\n t['dukatakana'] = 0x30C5;\n t['dz'] = 0x01F3;\n t['dzaltone'] = 0x02A3;\n t['dzcaron'] = 0x01C6;\n t['dzcurl'] = 0x02A5;\n t['dzeabkhasiancyrillic'] = 0x04E1;\n t['dzecyrillic'] = 0x0455;\n t['dzhecyrillic'] = 0x045F;\n t['e'] = 0x0065;\n t['eacute'] = 0x00E9;\n t['earth'] = 0x2641;\n t['ebengali'] = 0x098F;\n t['ebopomofo'] = 0x311C;\n t['ebreve'] = 0x0115;\n t['ecandradeva'] = 0x090D;\n t['ecandragujarati'] = 0x0A8D;\n t['ecandravowelsigndeva'] = 0x0945;\n t['ecandravowelsigngujarati'] = 0x0AC5;\n t['ecaron'] = 0x011B;\n t['ecedillabreve'] = 0x1E1D;\n t['echarmenian'] = 0x0565;\n t['echyiwnarmenian'] = 0x0587;\n t['ecircle'] = 0x24D4;\n t['ecircumflex'] = 0x00EA;\n t['ecircumflexacute'] = 0x1EBF;\n t['ecircumflexbelow'] = 0x1E19;\n t['ecircumflexdotbelow'] = 0x1EC7;\n t['ecircumflexgrave'] = 0x1EC1;\n t['ecircumflexhookabove'] = 0x1EC3;\n t['ecircumflextilde'] = 0x1EC5;\n t['ecyrillic'] = 0x0454;\n t['edblgrave'] = 0x0205;\n t['edeva'] = 0x090F;\n t['edieresis'] = 0x00EB;\n t['edot'] = 0x0117;\n t['edotaccent'] = 0x0117;\n t['edotbelow'] = 0x1EB9;\n t['eegurmukhi'] = 0x0A0F;\n t['eematragurmukhi'] = 0x0A47;\n t['efcyrillic'] = 0x0444;\n t['egrave'] = 0x00E8;\n t['egujarati'] = 0x0A8F;\n t['eharmenian'] = 0x0567;\n t['ehbopomofo'] = 0x311D;\n t['ehiragana'] = 0x3048;\n t['ehookabove'] = 0x1EBB;\n t['eibopomofo'] = 0x311F;\n t['eight'] = 0x0038;\n t['eightarabic'] = 0x0668;\n t['eightbengali'] = 0x09EE;\n t['eightcircle'] = 0x2467;\n t['eightcircleinversesansserif'] = 0x2791;\n t['eightdeva'] = 0x096E;\n t['eighteencircle'] = 0x2471;\n t['eighteenparen'] = 0x2485;\n t['eighteenperiod'] = 0x2499;\n t['eightgujarati'] = 0x0AEE;\n t['eightgurmukhi'] = 0x0A6E;\n t['eighthackarabic'] = 0x0668;\n t['eighthangzhou'] = 0x3028;\n t['eighthnotebeamed'] = 0x266B;\n t['eightideographicparen'] = 0x3227;\n t['eightinferior'] = 0x2088;\n t['eightmonospace'] = 0xFF18;\n t['eightoldstyle'] = 0xF738;\n t['eightparen'] = 0x247B;\n t['eightperiod'] = 0x248F;\n t['eightpersian'] = 0x06F8;\n t['eightroman'] = 0x2177;\n t['eightsuperior'] = 0x2078;\n t['eightthai'] = 0x0E58;\n t['einvertedbreve'] = 0x0207;\n t['eiotifiedcyrillic'] = 0x0465;\n t['ekatakana'] = 0x30A8;\n t['ekatakanahalfwidth'] = 0xFF74;\n t['ekonkargurmukhi'] = 0x0A74;\n t['ekorean'] = 0x3154;\n t['elcyrillic'] = 0x043B;\n t['element'] = 0x2208;\n t['elevencircle'] = 0x246A;\n t['elevenparen'] = 0x247E;\n t['elevenperiod'] = 0x2492;\n t['elevenroman'] = 0x217A;\n t['ellipsis'] = 0x2026;\n t['ellipsisvertical'] = 0x22EE;\n t['emacron'] = 0x0113;\n t['emacronacute'] = 0x1E17;\n t['emacrongrave'] = 0x1E15;\n t['emcyrillic'] = 0x043C;\n t['emdash'] = 0x2014;\n t['emdashvertical'] = 0xFE31;\n t['emonospace'] = 0xFF45;\n t['emphasismarkarmenian'] = 0x055B;\n t['emptyset'] = 0x2205;\n t['enbopomofo'] = 0x3123;\n t['encyrillic'] = 0x043D;\n t['endash'] = 0x2013;\n t['endashvertical'] = 0xFE32;\n t['endescendercyrillic'] = 0x04A3;\n t['eng'] = 0x014B;\n t['engbopomofo'] = 0x3125;\n t['enghecyrillic'] = 0x04A5;\n t['enhookcyrillic'] = 0x04C8;\n t['enspace'] = 0x2002;\n t['eogonek'] = 0x0119;\n t['eokorean'] = 0x3153;\n t['eopen'] = 0x025B;\n t['eopenclosed'] = 0x029A;\n t['eopenreversed'] = 0x025C;\n t['eopenreversedclosed'] = 0x025E;\n t['eopenreversedhook'] = 0x025D;\n t['eparen'] = 0x24A0;\n t['epsilon'] = 0x03B5;\n t['epsilontonos'] = 0x03AD;\n t['equal'] = 0x003D;\n t['equalmonospace'] = 0xFF1D;\n t['equalsmall'] = 0xFE66;\n t['equalsuperior'] = 0x207C;\n t['equivalence'] = 0x2261;\n t['erbopomofo'] = 0x3126;\n t['ercyrillic'] = 0x0440;\n t['ereversed'] = 0x0258;\n t['ereversedcyrillic'] = 0x044D;\n t['escyrillic'] = 0x0441;\n t['esdescendercyrillic'] = 0x04AB;\n t['esh'] = 0x0283;\n t['eshcurl'] = 0x0286;\n t['eshortdeva'] = 0x090E;\n t['eshortvowelsigndeva'] = 0x0946;\n t['eshreversedloop'] = 0x01AA;\n t['eshsquatreversed'] = 0x0285;\n t['esmallhiragana'] = 0x3047;\n t['esmallkatakana'] = 0x30A7;\n t['esmallkatakanahalfwidth'] = 0xFF6A;\n t['estimated'] = 0x212E;\n t['esuperior'] = 0xF6EC;\n t['eta'] = 0x03B7;\n t['etarmenian'] = 0x0568;\n t['etatonos'] = 0x03AE;\n t['eth'] = 0x00F0;\n t['etilde'] = 0x1EBD;\n t['etildebelow'] = 0x1E1B;\n t['etnahtafoukhhebrew'] = 0x0591;\n t['etnahtafoukhlefthebrew'] = 0x0591;\n t['etnahtahebrew'] = 0x0591;\n t['etnahtalefthebrew'] = 0x0591;\n t['eturned'] = 0x01DD;\n t['eukorean'] = 0x3161;\n t['euro'] = 0x20AC;\n t['evowelsignbengali'] = 0x09C7;\n t['evowelsigndeva'] = 0x0947;\n t['evowelsigngujarati'] = 0x0AC7;\n t['exclam'] = 0x0021;\n t['exclamarmenian'] = 0x055C;\n t['exclamdbl'] = 0x203C;\n t['exclamdown'] = 0x00A1;\n t['exclamdownsmall'] = 0xF7A1;\n t['exclammonospace'] = 0xFF01;\n t['exclamsmall'] = 0xF721;\n t['existential'] = 0x2203;\n t['ezh'] = 0x0292;\n t['ezhcaron'] = 0x01EF;\n t['ezhcurl'] = 0x0293;\n t['ezhreversed'] = 0x01B9;\n t['ezhtail'] = 0x01BA;\n t['f'] = 0x0066;\n t['fadeva'] = 0x095E;\n t['fagurmukhi'] = 0x0A5E;\n t['fahrenheit'] = 0x2109;\n t['fathaarabic'] = 0x064E;\n t['fathalowarabic'] = 0x064E;\n t['fathatanarabic'] = 0x064B;\n t['fbopomofo'] = 0x3108;\n t['fcircle'] = 0x24D5;\n t['fdotaccent'] = 0x1E1F;\n t['feharabic'] = 0x0641;\n t['feharmenian'] = 0x0586;\n t['fehfinalarabic'] = 0xFED2;\n t['fehinitialarabic'] = 0xFED3;\n t['fehmedialarabic'] = 0xFED4;\n t['feicoptic'] = 0x03E5;\n t['female'] = 0x2640;\n t['ff'] = 0xFB00;\n t['ffi'] = 0xFB03;\n t['ffl'] = 0xFB04;\n t['fi'] = 0xFB01;\n t['fifteencircle'] = 0x246E;\n t['fifteenparen'] = 0x2482;\n t['fifteenperiod'] = 0x2496;\n t['figuredash'] = 0x2012;\n t['filledbox'] = 0x25A0;\n t['filledrect'] = 0x25AC;\n t['finalkaf'] = 0x05DA;\n t['finalkafdagesh'] = 0xFB3A;\n t['finalkafdageshhebrew'] = 0xFB3A;\n t['finalkafhebrew'] = 0x05DA;\n t['finalmem'] = 0x05DD;\n t['finalmemhebrew'] = 0x05DD;\n t['finalnun'] = 0x05DF;\n t['finalnunhebrew'] = 0x05DF;\n t['finalpe'] = 0x05E3;\n t['finalpehebrew'] = 0x05E3;\n t['finaltsadi'] = 0x05E5;\n t['finaltsadihebrew'] = 0x05E5;\n t['firsttonechinese'] = 0x02C9;\n t['fisheye'] = 0x25C9;\n t['fitacyrillic'] = 0x0473;\n t['five'] = 0x0035;\n t['fivearabic'] = 0x0665;\n t['fivebengali'] = 0x09EB;\n t['fivecircle'] = 0x2464;\n t['fivecircleinversesansserif'] = 0x278E;\n t['fivedeva'] = 0x096B;\n t['fiveeighths'] = 0x215D;\n t['fivegujarati'] = 0x0AEB;\n t['fivegurmukhi'] = 0x0A6B;\n t['fivehackarabic'] = 0x0665;\n t['fivehangzhou'] = 0x3025;\n t['fiveideographicparen'] = 0x3224;\n t['fiveinferior'] = 0x2085;\n t['fivemonospace'] = 0xFF15;\n t['fiveoldstyle'] = 0xF735;\n t['fiveparen'] = 0x2478;\n t['fiveperiod'] = 0x248C;\n t['fivepersian'] = 0x06F5;\n t['fiveroman'] = 0x2174;\n t['fivesuperior'] = 0x2075;\n t['fivethai'] = 0x0E55;\n t['fl'] = 0xFB02;\n t['florin'] = 0x0192;\n t['fmonospace'] = 0xFF46;\n t['fmsquare'] = 0x3399;\n t['fofanthai'] = 0x0E1F;\n t['fofathai'] = 0x0E1D;\n t['fongmanthai'] = 0x0E4F;\n t['forall'] = 0x2200;\n t['four'] = 0x0034;\n t['fourarabic'] = 0x0664;\n t['fourbengali'] = 0x09EA;\n t['fourcircle'] = 0x2463;\n t['fourcircleinversesansserif'] = 0x278D;\n t['fourdeva'] = 0x096A;\n t['fourgujarati'] = 0x0AEA;\n t['fourgurmukhi'] = 0x0A6A;\n t['fourhackarabic'] = 0x0664;\n t['fourhangzhou'] = 0x3024;\n t['fourideographicparen'] = 0x3223;\n t['fourinferior'] = 0x2084;\n t['fourmonospace'] = 0xFF14;\n t['fournumeratorbengali'] = 0x09F7;\n t['fouroldstyle'] = 0xF734;\n t['fourparen'] = 0x2477;\n t['fourperiod'] = 0x248B;\n t['fourpersian'] = 0x06F4;\n t['fourroman'] = 0x2173;\n t['foursuperior'] = 0x2074;\n t['fourteencircle'] = 0x246D;\n t['fourteenparen'] = 0x2481;\n t['fourteenperiod'] = 0x2495;\n t['fourthai'] = 0x0E54;\n t['fourthtonechinese'] = 0x02CB;\n t['fparen'] = 0x24A1;\n t['fraction'] = 0x2044;\n t['franc'] = 0x20A3;\n t['g'] = 0x0067;\n t['gabengali'] = 0x0997;\n t['gacute'] = 0x01F5;\n t['gadeva'] = 0x0917;\n t['gafarabic'] = 0x06AF;\n t['gaffinalarabic'] = 0xFB93;\n t['gafinitialarabic'] = 0xFB94;\n t['gafmedialarabic'] = 0xFB95;\n t['gagujarati'] = 0x0A97;\n t['gagurmukhi'] = 0x0A17;\n t['gahiragana'] = 0x304C;\n t['gakatakana'] = 0x30AC;\n t['gamma'] = 0x03B3;\n t['gammalatinsmall'] = 0x0263;\n t['gammasuperior'] = 0x02E0;\n t['gangiacoptic'] = 0x03EB;\n t['gbopomofo'] = 0x310D;\n t['gbreve'] = 0x011F;\n t['gcaron'] = 0x01E7;\n t['gcedilla'] = 0x0123;\n t['gcircle'] = 0x24D6;\n t['gcircumflex'] = 0x011D;\n t['gcommaaccent'] = 0x0123;\n t['gdot'] = 0x0121;\n t['gdotaccent'] = 0x0121;\n t['gecyrillic'] = 0x0433;\n t['gehiragana'] = 0x3052;\n t['gekatakana'] = 0x30B2;\n t['geometricallyequal'] = 0x2251;\n t['gereshaccenthebrew'] = 0x059C;\n t['gereshhebrew'] = 0x05F3;\n t['gereshmuqdamhebrew'] = 0x059D;\n t['germandbls'] = 0x00DF;\n t['gershayimaccenthebrew'] = 0x059E;\n t['gershayimhebrew'] = 0x05F4;\n t['getamark'] = 0x3013;\n t['ghabengali'] = 0x0998;\n t['ghadarmenian'] = 0x0572;\n t['ghadeva'] = 0x0918;\n t['ghagujarati'] = 0x0A98;\n t['ghagurmukhi'] = 0x0A18;\n t['ghainarabic'] = 0x063A;\n t['ghainfinalarabic'] = 0xFECE;\n t['ghaininitialarabic'] = 0xFECF;\n t['ghainmedialarabic'] = 0xFED0;\n t['ghemiddlehookcyrillic'] = 0x0495;\n t['ghestrokecyrillic'] = 0x0493;\n t['gheupturncyrillic'] = 0x0491;\n t['ghhadeva'] = 0x095A;\n t['ghhagurmukhi'] = 0x0A5A;\n t['ghook'] = 0x0260;\n t['ghzsquare'] = 0x3393;\n t['gihiragana'] = 0x304E;\n t['gikatakana'] = 0x30AE;\n t['gimarmenian'] = 0x0563;\n t['gimel'] = 0x05D2;\n t['gimeldagesh'] = 0xFB32;\n t['gimeldageshhebrew'] = 0xFB32;\n t['gimelhebrew'] = 0x05D2;\n t['gjecyrillic'] = 0x0453;\n t['glottalinvertedstroke'] = 0x01BE;\n t['glottalstop'] = 0x0294;\n t['glottalstopinverted'] = 0x0296;\n t['glottalstopmod'] = 0x02C0;\n t['glottalstopreversed'] = 0x0295;\n t['glottalstopreversedmod'] = 0x02C1;\n t['glottalstopreversedsuperior'] = 0x02E4;\n t['glottalstopstroke'] = 0x02A1;\n t['glottalstopstrokereversed'] = 0x02A2;\n t['gmacron'] = 0x1E21;\n t['gmonospace'] = 0xFF47;\n t['gohiragana'] = 0x3054;\n t['gokatakana'] = 0x30B4;\n t['gparen'] = 0x24A2;\n t['gpasquare'] = 0x33AC;\n t['gradient'] = 0x2207;\n t['grave'] = 0x0060;\n t['gravebelowcmb'] = 0x0316;\n t['gravecmb'] = 0x0300;\n t['gravecomb'] = 0x0300;\n t['gravedeva'] = 0x0953;\n t['gravelowmod'] = 0x02CE;\n t['gravemonospace'] = 0xFF40;\n t['gravetonecmb'] = 0x0340;\n t['greater'] = 0x003E;\n t['greaterequal'] = 0x2265;\n t['greaterequalorless'] = 0x22DB;\n t['greatermonospace'] = 0xFF1E;\n t['greaterorequivalent'] = 0x2273;\n t['greaterorless'] = 0x2277;\n t['greateroverequal'] = 0x2267;\n t['greatersmall'] = 0xFE65;\n t['gscript'] = 0x0261;\n t['gstroke'] = 0x01E5;\n t['guhiragana'] = 0x3050;\n t['guillemotleft'] = 0x00AB;\n t['guillemotright'] = 0x00BB;\n t['guilsinglleft'] = 0x2039;\n t['guilsinglright'] = 0x203A;\n t['gukatakana'] = 0x30B0;\n t['guramusquare'] = 0x3318;\n t['gysquare'] = 0x33C9;\n t['h'] = 0x0068;\n t['haabkhasiancyrillic'] = 0x04A9;\n t['haaltonearabic'] = 0x06C1;\n t['habengali'] = 0x09B9;\n t['hadescendercyrillic'] = 0x04B3;\n t['hadeva'] = 0x0939;\n t['hagujarati'] = 0x0AB9;\n t['hagurmukhi'] = 0x0A39;\n t['haharabic'] = 0x062D;\n t['hahfinalarabic'] = 0xFEA2;\n t['hahinitialarabic'] = 0xFEA3;\n t['hahiragana'] = 0x306F;\n t['hahmedialarabic'] = 0xFEA4;\n t['haitusquare'] = 0x332A;\n t['hakatakana'] = 0x30CF;\n t['hakatakanahalfwidth'] = 0xFF8A;\n t['halantgurmukhi'] = 0x0A4D;\n t['hamzaarabic'] = 0x0621;\n t['hamzalowarabic'] = 0x0621;\n t['hangulfiller'] = 0x3164;\n t['hardsigncyrillic'] = 0x044A;\n t['harpoonleftbarbup'] = 0x21BC;\n t['harpoonrightbarbup'] = 0x21C0;\n t['hasquare'] = 0x33CA;\n t['hatafpatah'] = 0x05B2;\n t['hatafpatah16'] = 0x05B2;\n t['hatafpatah23'] = 0x05B2;\n t['hatafpatah2f'] = 0x05B2;\n t['hatafpatahhebrew'] = 0x05B2;\n t['hatafpatahnarrowhebrew'] = 0x05B2;\n t['hatafpatahquarterhebrew'] = 0x05B2;\n t['hatafpatahwidehebrew'] = 0x05B2;\n t['hatafqamats'] = 0x05B3;\n t['hatafqamats1b'] = 0x05B3;\n t['hatafqamats28'] = 0x05B3;\n t['hatafqamats34'] = 0x05B3;\n t['hatafqamatshebrew'] = 0x05B3;\n t['hatafqamatsnarrowhebrew'] = 0x05B3;\n t['hatafqamatsquarterhebrew'] = 0x05B3;\n t['hatafqamatswidehebrew'] = 0x05B3;\n t['hatafsegol'] = 0x05B1;\n t['hatafsegol17'] = 0x05B1;\n t['hatafsegol24'] = 0x05B1;\n t['hatafsegol30'] = 0x05B1;\n t['hatafsegolhebrew'] = 0x05B1;\n t['hatafsegolnarrowhebrew'] = 0x05B1;\n t['hatafsegolquarterhebrew'] = 0x05B1;\n t['hatafsegolwidehebrew'] = 0x05B1;\n t['hbar'] = 0x0127;\n t['hbopomofo'] = 0x310F;\n t['hbrevebelow'] = 0x1E2B;\n t['hcedilla'] = 0x1E29;\n t['hcircle'] = 0x24D7;\n t['hcircumflex'] = 0x0125;\n t['hdieresis'] = 0x1E27;\n t['hdotaccent'] = 0x1E23;\n t['hdotbelow'] = 0x1E25;\n t['he'] = 0x05D4;\n t['heart'] = 0x2665;\n t['heartsuitblack'] = 0x2665;\n t['heartsuitwhite'] = 0x2661;\n t['hedagesh'] = 0xFB34;\n t['hedageshhebrew'] = 0xFB34;\n t['hehaltonearabic'] = 0x06C1;\n t['heharabic'] = 0x0647;\n t['hehebrew'] = 0x05D4;\n t['hehfinalaltonearabic'] = 0xFBA7;\n t['hehfinalalttwoarabic'] = 0xFEEA;\n t['hehfinalarabic'] = 0xFEEA;\n t['hehhamzaabovefinalarabic'] = 0xFBA5;\n t['hehhamzaaboveisolatedarabic'] = 0xFBA4;\n t['hehinitialaltonearabic'] = 0xFBA8;\n t['hehinitialarabic'] = 0xFEEB;\n t['hehiragana'] = 0x3078;\n t['hehmedialaltonearabic'] = 0xFBA9;\n t['hehmedialarabic'] = 0xFEEC;\n t['heiseierasquare'] = 0x337B;\n t['hekatakana'] = 0x30D8;\n t['hekatakanahalfwidth'] = 0xFF8D;\n t['hekutaarusquare'] = 0x3336;\n t['henghook'] = 0x0267;\n t['herutusquare'] = 0x3339;\n t['het'] = 0x05D7;\n t['hethebrew'] = 0x05D7;\n t['hhook'] = 0x0266;\n t['hhooksuperior'] = 0x02B1;\n t['hieuhacirclekorean'] = 0x327B;\n t['hieuhaparenkorean'] = 0x321B;\n t['hieuhcirclekorean'] = 0x326D;\n t['hieuhkorean'] = 0x314E;\n t['hieuhparenkorean'] = 0x320D;\n t['hihiragana'] = 0x3072;\n t['hikatakana'] = 0x30D2;\n t['hikatakanahalfwidth'] = 0xFF8B;\n t['hiriq'] = 0x05B4;\n t['hiriq14'] = 0x05B4;\n t['hiriq21'] = 0x05B4;\n t['hiriq2d'] = 0x05B4;\n t['hiriqhebrew'] = 0x05B4;\n t['hiriqnarrowhebrew'] = 0x05B4;\n t['hiriqquarterhebrew'] = 0x05B4;\n t['hiriqwidehebrew'] = 0x05B4;\n t['hlinebelow'] = 0x1E96;\n t['hmonospace'] = 0xFF48;\n t['hoarmenian'] = 0x0570;\n t['hohipthai'] = 0x0E2B;\n t['hohiragana'] = 0x307B;\n t['hokatakana'] = 0x30DB;\n t['hokatakanahalfwidth'] = 0xFF8E;\n t['holam'] = 0x05B9;\n t['holam19'] = 0x05B9;\n t['holam26'] = 0x05B9;\n t['holam32'] = 0x05B9;\n t['holamhebrew'] = 0x05B9;\n t['holamnarrowhebrew'] = 0x05B9;\n t['holamquarterhebrew'] = 0x05B9;\n t['holamwidehebrew'] = 0x05B9;\n t['honokhukthai'] = 0x0E2E;\n t['hookabovecomb'] = 0x0309;\n t['hookcmb'] = 0x0309;\n t['hookpalatalizedbelowcmb'] = 0x0321;\n t['hookretroflexbelowcmb'] = 0x0322;\n t['hoonsquare'] = 0x3342;\n t['horicoptic'] = 0x03E9;\n t['horizontalbar'] = 0x2015;\n t['horncmb'] = 0x031B;\n t['hotsprings'] = 0x2668;\n t['house'] = 0x2302;\n t['hparen'] = 0x24A3;\n t['hsuperior'] = 0x02B0;\n t['hturned'] = 0x0265;\n t['huhiragana'] = 0x3075;\n t['huiitosquare'] = 0x3333;\n t['hukatakana'] = 0x30D5;\n t['hukatakanahalfwidth'] = 0xFF8C;\n t['hungarumlaut'] = 0x02DD;\n t['hungarumlautcmb'] = 0x030B;\n t['hv'] = 0x0195;\n t['hyphen'] = 0x002D;\n t['hypheninferior'] = 0xF6E5;\n t['hyphenmonospace'] = 0xFF0D;\n t['hyphensmall'] = 0xFE63;\n t['hyphensuperior'] = 0xF6E6;\n t['hyphentwo'] = 0x2010;\n t['i'] = 0x0069;\n t['iacute'] = 0x00ED;\n t['iacyrillic'] = 0x044F;\n t['ibengali'] = 0x0987;\n t['ibopomofo'] = 0x3127;\n t['ibreve'] = 0x012D;\n t['icaron'] = 0x01D0;\n t['icircle'] = 0x24D8;\n t['icircumflex'] = 0x00EE;\n t['icyrillic'] = 0x0456;\n t['idblgrave'] = 0x0209;\n t['ideographearthcircle'] = 0x328F;\n t['ideographfirecircle'] = 0x328B;\n t['ideographicallianceparen'] = 0x323F;\n t['ideographiccallparen'] = 0x323A;\n t['ideographiccentrecircle'] = 0x32A5;\n t['ideographicclose'] = 0x3006;\n t['ideographiccomma'] = 0x3001;\n t['ideographiccommaleft'] = 0xFF64;\n t['ideographiccongratulationparen'] = 0x3237;\n t['ideographiccorrectcircle'] = 0x32A3;\n t['ideographicearthparen'] = 0x322F;\n t['ideographicenterpriseparen'] = 0x323D;\n t['ideographicexcellentcircle'] = 0x329D;\n t['ideographicfestivalparen'] = 0x3240;\n t['ideographicfinancialcircle'] = 0x3296;\n t['ideographicfinancialparen'] = 0x3236;\n t['ideographicfireparen'] = 0x322B;\n t['ideographichaveparen'] = 0x3232;\n t['ideographichighcircle'] = 0x32A4;\n t['ideographiciterationmark'] = 0x3005;\n t['ideographiclaborcircle'] = 0x3298;\n t['ideographiclaborparen'] = 0x3238;\n t['ideographicleftcircle'] = 0x32A7;\n t['ideographiclowcircle'] = 0x32A6;\n t['ideographicmedicinecircle'] = 0x32A9;\n t['ideographicmetalparen'] = 0x322E;\n t['ideographicmoonparen'] = 0x322A;\n t['ideographicnameparen'] = 0x3234;\n t['ideographicperiod'] = 0x3002;\n t['ideographicprintcircle'] = 0x329E;\n t['ideographicreachparen'] = 0x3243;\n t['ideographicrepresentparen'] = 0x3239;\n t['ideographicresourceparen'] = 0x323E;\n t['ideographicrightcircle'] = 0x32A8;\n t['ideographicsecretcircle'] = 0x3299;\n t['ideographicselfparen'] = 0x3242;\n t['ideographicsocietyparen'] = 0x3233;\n t['ideographicspace'] = 0x3000;\n t['ideographicspecialparen'] = 0x3235;\n t['ideographicstockparen'] = 0x3231;\n t['ideographicstudyparen'] = 0x323B;\n t['ideographicsunparen'] = 0x3230;\n t['ideographicsuperviseparen'] = 0x323C;\n t['ideographicwaterparen'] = 0x322C;\n t['ideographicwoodparen'] = 0x322D;\n t['ideographiczero'] = 0x3007;\n t['ideographmetalcircle'] = 0x328E;\n t['ideographmooncircle'] = 0x328A;\n t['ideographnamecircle'] = 0x3294;\n t['ideographsuncircle'] = 0x3290;\n t['ideographwatercircle'] = 0x328C;\n t['ideographwoodcircle'] = 0x328D;\n t['ideva'] = 0x0907;\n t['idieresis'] = 0x00EF;\n t['idieresisacute'] = 0x1E2F;\n t['idieresiscyrillic'] = 0x04E5;\n t['idotbelow'] = 0x1ECB;\n t['iebrevecyrillic'] = 0x04D7;\n t['iecyrillic'] = 0x0435;\n t['ieungacirclekorean'] = 0x3275;\n t['ieungaparenkorean'] = 0x3215;\n t['ieungcirclekorean'] = 0x3267;\n t['ieungkorean'] = 0x3147;\n t['ieungparenkorean'] = 0x3207;\n t['igrave'] = 0x00EC;\n t['igujarati'] = 0x0A87;\n t['igurmukhi'] = 0x0A07;\n t['ihiragana'] = 0x3044;\n t['ihookabove'] = 0x1EC9;\n t['iibengali'] = 0x0988;\n t['iicyrillic'] = 0x0438;\n t['iideva'] = 0x0908;\n t['iigujarati'] = 0x0A88;\n t['iigurmukhi'] = 0x0A08;\n t['iimatragurmukhi'] = 0x0A40;\n t['iinvertedbreve'] = 0x020B;\n t['iishortcyrillic'] = 0x0439;\n t['iivowelsignbengali'] = 0x09C0;\n t['iivowelsigndeva'] = 0x0940;\n t['iivowelsigngujarati'] = 0x0AC0;\n t['ij'] = 0x0133;\n t['ikatakana'] = 0x30A4;\n t['ikatakanahalfwidth'] = 0xFF72;\n t['ikorean'] = 0x3163;\n t['ilde'] = 0x02DC;\n t['iluyhebrew'] = 0x05AC;\n t['imacron'] = 0x012B;\n t['imacroncyrillic'] = 0x04E3;\n t['imageorapproximatelyequal'] = 0x2253;\n t['imatragurmukhi'] = 0x0A3F;\n t['imonospace'] = 0xFF49;\n t['increment'] = 0x2206;\n t['infinity'] = 0x221E;\n t['iniarmenian'] = 0x056B;\n t['integral'] = 0x222B;\n t['integralbottom'] = 0x2321;\n t['integralbt'] = 0x2321;\n t['integralex'] = 0xF8F5;\n t['integraltop'] = 0x2320;\n t['integraltp'] = 0x2320;\n t['intersection'] = 0x2229;\n t['intisquare'] = 0x3305;\n t['invbullet'] = 0x25D8;\n t['invcircle'] = 0x25D9;\n t['invsmileface'] = 0x263B;\n t['iocyrillic'] = 0x0451;\n t['iogonek'] = 0x012F;\n t['iota'] = 0x03B9;\n t['iotadieresis'] = 0x03CA;\n t['iotadieresistonos'] = 0x0390;\n t['iotalatin'] = 0x0269;\n t['iotatonos'] = 0x03AF;\n t['iparen'] = 0x24A4;\n t['irigurmukhi'] = 0x0A72;\n t['ismallhiragana'] = 0x3043;\n t['ismallkatakana'] = 0x30A3;\n t['ismallkatakanahalfwidth'] = 0xFF68;\n t['issharbengali'] = 0x09FA;\n t['istroke'] = 0x0268;\n t['isuperior'] = 0xF6ED;\n t['iterationhiragana'] = 0x309D;\n t['iterationkatakana'] = 0x30FD;\n t['itilde'] = 0x0129;\n t['itildebelow'] = 0x1E2D;\n t['iubopomofo'] = 0x3129;\n t['iucyrillic'] = 0x044E;\n t['ivowelsignbengali'] = 0x09BF;\n t['ivowelsigndeva'] = 0x093F;\n t['ivowelsigngujarati'] = 0x0ABF;\n t['izhitsacyrillic'] = 0x0475;\n t['izhitsadblgravecyrillic'] = 0x0477;\n t['j'] = 0x006A;\n t['jaarmenian'] = 0x0571;\n t['jabengali'] = 0x099C;\n t['jadeva'] = 0x091C;\n t['jagujarati'] = 0x0A9C;\n t['jagurmukhi'] = 0x0A1C;\n t['jbopomofo'] = 0x3110;\n t['jcaron'] = 0x01F0;\n t['jcircle'] = 0x24D9;\n t['jcircumflex'] = 0x0135;\n t['jcrossedtail'] = 0x029D;\n t['jdotlessstroke'] = 0x025F;\n t['jecyrillic'] = 0x0458;\n t['jeemarabic'] = 0x062C;\n t['jeemfinalarabic'] = 0xFE9E;\n t['jeeminitialarabic'] = 0xFE9F;\n t['jeemmedialarabic'] = 0xFEA0;\n t['jeharabic'] = 0x0698;\n t['jehfinalarabic'] = 0xFB8B;\n t['jhabengali'] = 0x099D;\n t['jhadeva'] = 0x091D;\n t['jhagujarati'] = 0x0A9D;\n t['jhagurmukhi'] = 0x0A1D;\n t['jheharmenian'] = 0x057B;\n t['jis'] = 0x3004;\n t['jmonospace'] = 0xFF4A;\n t['jparen'] = 0x24A5;\n t['jsuperior'] = 0x02B2;\n t['k'] = 0x006B;\n t['kabashkircyrillic'] = 0x04A1;\n t['kabengali'] = 0x0995;\n t['kacute'] = 0x1E31;\n t['kacyrillic'] = 0x043A;\n t['kadescendercyrillic'] = 0x049B;\n t['kadeva'] = 0x0915;\n t['kaf'] = 0x05DB;\n t['kafarabic'] = 0x0643;\n t['kafdagesh'] = 0xFB3B;\n t['kafdageshhebrew'] = 0xFB3B;\n t['kaffinalarabic'] = 0xFEDA;\n t['kafhebrew'] = 0x05DB;\n t['kafinitialarabic'] = 0xFEDB;\n t['kafmedialarabic'] = 0xFEDC;\n t['kafrafehebrew'] = 0xFB4D;\n t['kagujarati'] = 0x0A95;\n t['kagurmukhi'] = 0x0A15;\n t['kahiragana'] = 0x304B;\n t['kahookcyrillic'] = 0x04C4;\n t['kakatakana'] = 0x30AB;\n t['kakatakanahalfwidth'] = 0xFF76;\n t['kappa'] = 0x03BA;\n t['kappasymbolgreek'] = 0x03F0;\n t['kapyeounmieumkorean'] = 0x3171;\n t['kapyeounphieuphkorean'] = 0x3184;\n t['kapyeounpieupkorean'] = 0x3178;\n t['kapyeounssangpieupkorean'] = 0x3179;\n t['karoriisquare'] = 0x330D;\n t['kashidaautoarabic'] = 0x0640;\n t['kashidaautonosidebearingarabic'] = 0x0640;\n t['kasmallkatakana'] = 0x30F5;\n t['kasquare'] = 0x3384;\n t['kasraarabic'] = 0x0650;\n t['kasratanarabic'] = 0x064D;\n t['kastrokecyrillic'] = 0x049F;\n t['katahiraprolongmarkhalfwidth'] = 0xFF70;\n t['kaverticalstrokecyrillic'] = 0x049D;\n t['kbopomofo'] = 0x310E;\n t['kcalsquare'] = 0x3389;\n t['kcaron'] = 0x01E9;\n t['kcedilla'] = 0x0137;\n t['kcircle'] = 0x24DA;\n t['kcommaaccent'] = 0x0137;\n t['kdotbelow'] = 0x1E33;\n t['keharmenian'] = 0x0584;\n t['kehiragana'] = 0x3051;\n t['kekatakana'] = 0x30B1;\n t['kekatakanahalfwidth'] = 0xFF79;\n t['kenarmenian'] = 0x056F;\n t['kesmallkatakana'] = 0x30F6;\n t['kgreenlandic'] = 0x0138;\n t['khabengali'] = 0x0996;\n t['khacyrillic'] = 0x0445;\n t['khadeva'] = 0x0916;\n t['khagujarati'] = 0x0A96;\n t['khagurmukhi'] = 0x0A16;\n t['khaharabic'] = 0x062E;\n t['khahfinalarabic'] = 0xFEA6;\n t['khahinitialarabic'] = 0xFEA7;\n t['khahmedialarabic'] = 0xFEA8;\n t['kheicoptic'] = 0x03E7;\n t['khhadeva'] = 0x0959;\n t['khhagurmukhi'] = 0x0A59;\n t['khieukhacirclekorean'] = 0x3278;\n t['khieukhaparenkorean'] = 0x3218;\n t['khieukhcirclekorean'] = 0x326A;\n t['khieukhkorean'] = 0x314B;\n t['khieukhparenkorean'] = 0x320A;\n t['khokhaithai'] = 0x0E02;\n t['khokhonthai'] = 0x0E05;\n t['khokhuatthai'] = 0x0E03;\n t['khokhwaithai'] = 0x0E04;\n t['khomutthai'] = 0x0E5B;\n t['khook'] = 0x0199;\n t['khorakhangthai'] = 0x0E06;\n t['khzsquare'] = 0x3391;\n t['kihiragana'] = 0x304D;\n t['kikatakana'] = 0x30AD;\n t['kikatakanahalfwidth'] = 0xFF77;\n t['kiroguramusquare'] = 0x3315;\n t['kiromeetorusquare'] = 0x3316;\n t['kirosquare'] = 0x3314;\n t['kiyeokacirclekorean'] = 0x326E;\n t['kiyeokaparenkorean'] = 0x320E;\n t['kiyeokcirclekorean'] = 0x3260;\n t['kiyeokkorean'] = 0x3131;\n t['kiyeokparenkorean'] = 0x3200;\n t['kiyeoksioskorean'] = 0x3133;\n t['kjecyrillic'] = 0x045C;\n t['klinebelow'] = 0x1E35;\n t['klsquare'] = 0x3398;\n t['kmcubedsquare'] = 0x33A6;\n t['kmonospace'] = 0xFF4B;\n t['kmsquaredsquare'] = 0x33A2;\n t['kohiragana'] = 0x3053;\n t['kohmsquare'] = 0x33C0;\n t['kokaithai'] = 0x0E01;\n t['kokatakana'] = 0x30B3;\n t['kokatakanahalfwidth'] = 0xFF7A;\n t['kooposquare'] = 0x331E;\n t['koppacyrillic'] = 0x0481;\n t['koreanstandardsymbol'] = 0x327F;\n t['koroniscmb'] = 0x0343;\n t['kparen'] = 0x24A6;\n t['kpasquare'] = 0x33AA;\n t['ksicyrillic'] = 0x046F;\n t['ktsquare'] = 0x33CF;\n t['kturned'] = 0x029E;\n t['kuhiragana'] = 0x304F;\n t['kukatakana'] = 0x30AF;\n t['kukatakanahalfwidth'] = 0xFF78;\n t['kvsquare'] = 0x33B8;\n t['kwsquare'] = 0x33BE;\n t['l'] = 0x006C;\n t['labengali'] = 0x09B2;\n t['lacute'] = 0x013A;\n t['ladeva'] = 0x0932;\n t['lagujarati'] = 0x0AB2;\n t['lagurmukhi'] = 0x0A32;\n t['lakkhangyaothai'] = 0x0E45;\n t['lamaleffinalarabic'] = 0xFEFC;\n t['lamalefhamzaabovefinalarabic'] = 0xFEF8;\n t['lamalefhamzaaboveisolatedarabic'] = 0xFEF7;\n t['lamalefhamzabelowfinalarabic'] = 0xFEFA;\n t['lamalefhamzabelowisolatedarabic'] = 0xFEF9;\n t['lamalefisolatedarabic'] = 0xFEFB;\n t['lamalefmaddaabovefinalarabic'] = 0xFEF6;\n t['lamalefmaddaaboveisolatedarabic'] = 0xFEF5;\n t['lamarabic'] = 0x0644;\n t['lambda'] = 0x03BB;\n t['lambdastroke'] = 0x019B;\n t['lamed'] = 0x05DC;\n t['lameddagesh'] = 0xFB3C;\n t['lameddageshhebrew'] = 0xFB3C;\n t['lamedhebrew'] = 0x05DC;\n t['lamfinalarabic'] = 0xFEDE;\n t['lamhahinitialarabic'] = 0xFCCA;\n t['laminitialarabic'] = 0xFEDF;\n t['lamjeeminitialarabic'] = 0xFCC9;\n t['lamkhahinitialarabic'] = 0xFCCB;\n t['lamlamhehisolatedarabic'] = 0xFDF2;\n t['lammedialarabic'] = 0xFEE0;\n t['lammeemhahinitialarabic'] = 0xFD88;\n t['lammeeminitialarabic'] = 0xFCCC;\n t['largecircle'] = 0x25EF;\n t['lbar'] = 0x019A;\n t['lbelt'] = 0x026C;\n t['lbopomofo'] = 0x310C;\n t['lcaron'] = 0x013E;\n t['lcedilla'] = 0x013C;\n t['lcircle'] = 0x24DB;\n t['lcircumflexbelow'] = 0x1E3D;\n t['lcommaaccent'] = 0x013C;\n t['ldot'] = 0x0140;\n t['ldotaccent'] = 0x0140;\n t['ldotbelow'] = 0x1E37;\n t['ldotbelowmacron'] = 0x1E39;\n t['leftangleabovecmb'] = 0x031A;\n t['lefttackbelowcmb'] = 0x0318;\n t['less'] = 0x003C;\n t['lessequal'] = 0x2264;\n t['lessequalorgreater'] = 0x22DA;\n t['lessmonospace'] = 0xFF1C;\n t['lessorequivalent'] = 0x2272;\n t['lessorgreater'] = 0x2276;\n t['lessoverequal'] = 0x2266;\n t['lesssmall'] = 0xFE64;\n t['lezh'] = 0x026E;\n t['lfblock'] = 0x258C;\n t['lhookretroflex'] = 0x026D;\n t['lira'] = 0x20A4;\n t['liwnarmenian'] = 0x056C;\n t['lj'] = 0x01C9;\n t['ljecyrillic'] = 0x0459;\n t['ll'] = 0xF6C0;\n t['lladeva'] = 0x0933;\n t['llagujarati'] = 0x0AB3;\n t['llinebelow'] = 0x1E3B;\n t['llladeva'] = 0x0934;\n t['llvocalicbengali'] = 0x09E1;\n t['llvocalicdeva'] = 0x0961;\n t['llvocalicvowelsignbengali'] = 0x09E3;\n t['llvocalicvowelsigndeva'] = 0x0963;\n t['lmiddletilde'] = 0x026B;\n t['lmonospace'] = 0xFF4C;\n t['lmsquare'] = 0x33D0;\n t['lochulathai'] = 0x0E2C;\n t['logicaland'] = 0x2227;\n t['logicalnot'] = 0x00AC;\n t['logicalnotreversed'] = 0x2310;\n t['logicalor'] = 0x2228;\n t['lolingthai'] = 0x0E25;\n t['longs'] = 0x017F;\n t['lowlinecenterline'] = 0xFE4E;\n t['lowlinecmb'] = 0x0332;\n t['lowlinedashed'] = 0xFE4D;\n t['lozenge'] = 0x25CA;\n t['lparen'] = 0x24A7;\n t['lslash'] = 0x0142;\n t['lsquare'] = 0x2113;\n t['lsuperior'] = 0xF6EE;\n t['ltshade'] = 0x2591;\n t['luthai'] = 0x0E26;\n t['lvocalicbengali'] = 0x098C;\n t['lvocalicdeva'] = 0x090C;\n t['lvocalicvowelsignbengali'] = 0x09E2;\n t['lvocalicvowelsigndeva'] = 0x0962;\n t['lxsquare'] = 0x33D3;\n t['m'] = 0x006D;\n t['mabengali'] = 0x09AE;\n t['macron'] = 0x00AF;\n t['macronbelowcmb'] = 0x0331;\n t['macroncmb'] = 0x0304;\n t['macronlowmod'] = 0x02CD;\n t['macronmonospace'] = 0xFFE3;\n t['macute'] = 0x1E3F;\n t['madeva'] = 0x092E;\n t['magujarati'] = 0x0AAE;\n t['magurmukhi'] = 0x0A2E;\n t['mahapakhhebrew'] = 0x05A4;\n t['mahapakhlefthebrew'] = 0x05A4;\n t['mahiragana'] = 0x307E;\n t['maichattawalowleftthai'] = 0xF895;\n t['maichattawalowrightthai'] = 0xF894;\n t['maichattawathai'] = 0x0E4B;\n t['maichattawaupperleftthai'] = 0xF893;\n t['maieklowleftthai'] = 0xF88C;\n t['maieklowrightthai'] = 0xF88B;\n t['maiekthai'] = 0x0E48;\n t['maiekupperleftthai'] = 0xF88A;\n t['maihanakatleftthai'] = 0xF884;\n t['maihanakatthai'] = 0x0E31;\n t['maitaikhuleftthai'] = 0xF889;\n t['maitaikhuthai'] = 0x0E47;\n t['maitholowleftthai'] = 0xF88F;\n t['maitholowrightthai'] = 0xF88E;\n t['maithothai'] = 0x0E49;\n t['maithoupperleftthai'] = 0xF88D;\n t['maitrilowleftthai'] = 0xF892;\n t['maitrilowrightthai'] = 0xF891;\n t['maitrithai'] = 0x0E4A;\n t['maitriupperleftthai'] = 0xF890;\n t['maiyamokthai'] = 0x0E46;\n t['makatakana'] = 0x30DE;\n t['makatakanahalfwidth'] = 0xFF8F;\n t['male'] = 0x2642;\n t['mansyonsquare'] = 0x3347;\n t['maqafhebrew'] = 0x05BE;\n t['mars'] = 0x2642;\n t['masoracirclehebrew'] = 0x05AF;\n t['masquare'] = 0x3383;\n t['mbopomofo'] = 0x3107;\n t['mbsquare'] = 0x33D4;\n t['mcircle'] = 0x24DC;\n t['mcubedsquare'] = 0x33A5;\n t['mdotaccent'] = 0x1E41;\n t['mdotbelow'] = 0x1E43;\n t['meemarabic'] = 0x0645;\n t['meemfinalarabic'] = 0xFEE2;\n t['meeminitialarabic'] = 0xFEE3;\n t['meemmedialarabic'] = 0xFEE4;\n t['meemmeeminitialarabic'] = 0xFCD1;\n t['meemmeemisolatedarabic'] = 0xFC48;\n t['meetorusquare'] = 0x334D;\n t['mehiragana'] = 0x3081;\n t['meizierasquare'] = 0x337E;\n t['mekatakana'] = 0x30E1;\n t['mekatakanahalfwidth'] = 0xFF92;\n t['mem'] = 0x05DE;\n t['memdagesh'] = 0xFB3E;\n t['memdageshhebrew'] = 0xFB3E;\n t['memhebrew'] = 0x05DE;\n t['menarmenian'] = 0x0574;\n t['merkhahebrew'] = 0x05A5;\n t['merkhakefulahebrew'] = 0x05A6;\n t['merkhakefulalefthebrew'] = 0x05A6;\n t['merkhalefthebrew'] = 0x05A5;\n t['mhook'] = 0x0271;\n t['mhzsquare'] = 0x3392;\n t['middledotkatakanahalfwidth'] = 0xFF65;\n t['middot'] = 0x00B7;\n t['mieumacirclekorean'] = 0x3272;\n t['mieumaparenkorean'] = 0x3212;\n t['mieumcirclekorean'] = 0x3264;\n t['mieumkorean'] = 0x3141;\n t['mieumpansioskorean'] = 0x3170;\n t['mieumparenkorean'] = 0x3204;\n t['mieumpieupkorean'] = 0x316E;\n t['mieumsioskorean'] = 0x316F;\n t['mihiragana'] = 0x307F;\n t['mikatakana'] = 0x30DF;\n t['mikatakanahalfwidth'] = 0xFF90;\n t['minus'] = 0x2212;\n t['minusbelowcmb'] = 0x0320;\n t['minuscircle'] = 0x2296;\n t['minusmod'] = 0x02D7;\n t['minusplus'] = 0x2213;\n t['minute'] = 0x2032;\n t['miribaarusquare'] = 0x334A;\n t['mirisquare'] = 0x3349;\n t['mlonglegturned'] = 0x0270;\n t['mlsquare'] = 0x3396;\n t['mmcubedsquare'] = 0x33A3;\n t['mmonospace'] = 0xFF4D;\n t['mmsquaredsquare'] = 0x339F;\n t['mohiragana'] = 0x3082;\n t['mohmsquare'] = 0x33C1;\n t['mokatakana'] = 0x30E2;\n t['mokatakanahalfwidth'] = 0xFF93;\n t['molsquare'] = 0x33D6;\n t['momathai'] = 0x0E21;\n t['moverssquare'] = 0x33A7;\n t['moverssquaredsquare'] = 0x33A8;\n t['mparen'] = 0x24A8;\n t['mpasquare'] = 0x33AB;\n t['mssquare'] = 0x33B3;\n t['msuperior'] = 0xF6EF;\n t['mturned'] = 0x026F;\n t['mu'] = 0x00B5;\n t['mu1'] = 0x00B5;\n t['muasquare'] = 0x3382;\n t['muchgreater'] = 0x226B;\n t['muchless'] = 0x226A;\n t['mufsquare'] = 0x338C;\n t['mugreek'] = 0x03BC;\n t['mugsquare'] = 0x338D;\n t['muhiragana'] = 0x3080;\n t['mukatakana'] = 0x30E0;\n t['mukatakanahalfwidth'] = 0xFF91;\n t['mulsquare'] = 0x3395;\n t['multiply'] = 0x00D7;\n t['mumsquare'] = 0x339B;\n t['munahhebrew'] = 0x05A3;\n t['munahlefthebrew'] = 0x05A3;\n t['musicalnote'] = 0x266A;\n t['musicalnotedbl'] = 0x266B;\n t['musicflatsign'] = 0x266D;\n t['musicsharpsign'] = 0x266F;\n t['mussquare'] = 0x33B2;\n t['muvsquare'] = 0x33B6;\n t['muwsquare'] = 0x33BC;\n t['mvmegasquare'] = 0x33B9;\n t['mvsquare'] = 0x33B7;\n t['mwmegasquare'] = 0x33BF;\n t['mwsquare'] = 0x33BD;\n t['n'] = 0x006E;\n t['nabengali'] = 0x09A8;\n t['nabla'] = 0x2207;\n t['nacute'] = 0x0144;\n t['nadeva'] = 0x0928;\n t['nagujarati'] = 0x0AA8;\n t['nagurmukhi'] = 0x0A28;\n t['nahiragana'] = 0x306A;\n t['nakatakana'] = 0x30CA;\n t['nakatakanahalfwidth'] = 0xFF85;\n t['napostrophe'] = 0x0149;\n t['nasquare'] = 0x3381;\n t['nbopomofo'] = 0x310B;\n t['nbspace'] = 0x00A0;\n t['ncaron'] = 0x0148;\n t['ncedilla'] = 0x0146;\n t['ncircle'] = 0x24DD;\n t['ncircumflexbelow'] = 0x1E4B;\n t['ncommaaccent'] = 0x0146;\n t['ndotaccent'] = 0x1E45;\n t['ndotbelow'] = 0x1E47;\n t['nehiragana'] = 0x306D;\n t['nekatakana'] = 0x30CD;\n t['nekatakanahalfwidth'] = 0xFF88;\n t['newsheqelsign'] = 0x20AA;\n t['nfsquare'] = 0x338B;\n t['ngabengali'] = 0x0999;\n t['ngadeva'] = 0x0919;\n t['ngagujarati'] = 0x0A99;\n t['ngagurmukhi'] = 0x0A19;\n t['ngonguthai'] = 0x0E07;\n t['nhiragana'] = 0x3093;\n t['nhookleft'] = 0x0272;\n t['nhookretroflex'] = 0x0273;\n t['nieunacirclekorean'] = 0x326F;\n t['nieunaparenkorean'] = 0x320F;\n t['nieuncieuckorean'] = 0x3135;\n t['nieuncirclekorean'] = 0x3261;\n t['nieunhieuhkorean'] = 0x3136;\n t['nieunkorean'] = 0x3134;\n t['nieunpansioskorean'] = 0x3168;\n t['nieunparenkorean'] = 0x3201;\n t['nieunsioskorean'] = 0x3167;\n t['nieuntikeutkorean'] = 0x3166;\n t['nihiragana'] = 0x306B;\n t['nikatakana'] = 0x30CB;\n t['nikatakanahalfwidth'] = 0xFF86;\n t['nikhahitleftthai'] = 0xF899;\n t['nikhahitthai'] = 0x0E4D;\n t['nine'] = 0x0039;\n t['ninearabic'] = 0x0669;\n t['ninebengali'] = 0x09EF;\n t['ninecircle'] = 0x2468;\n t['ninecircleinversesansserif'] = 0x2792;\n t['ninedeva'] = 0x096F;\n t['ninegujarati'] = 0x0AEF;\n t['ninegurmukhi'] = 0x0A6F;\n t['ninehackarabic'] = 0x0669;\n t['ninehangzhou'] = 0x3029;\n t['nineideographicparen'] = 0x3228;\n t['nineinferior'] = 0x2089;\n t['ninemonospace'] = 0xFF19;\n t['nineoldstyle'] = 0xF739;\n t['nineparen'] = 0x247C;\n t['nineperiod'] = 0x2490;\n t['ninepersian'] = 0x06F9;\n t['nineroman'] = 0x2178;\n t['ninesuperior'] = 0x2079;\n t['nineteencircle'] = 0x2472;\n t['nineteenparen'] = 0x2486;\n t['nineteenperiod'] = 0x249A;\n t['ninethai'] = 0x0E59;\n t['nj'] = 0x01CC;\n t['njecyrillic'] = 0x045A;\n t['nkatakana'] = 0x30F3;\n t['nkatakanahalfwidth'] = 0xFF9D;\n t['nlegrightlong'] = 0x019E;\n t['nlinebelow'] = 0x1E49;\n t['nmonospace'] = 0xFF4E;\n t['nmsquare'] = 0x339A;\n t['nnabengali'] = 0x09A3;\n t['nnadeva'] = 0x0923;\n t['nnagujarati'] = 0x0AA3;\n t['nnagurmukhi'] = 0x0A23;\n t['nnnadeva'] = 0x0929;\n t['nohiragana'] = 0x306E;\n t['nokatakana'] = 0x30CE;\n t['nokatakanahalfwidth'] = 0xFF89;\n t['nonbreakingspace'] = 0x00A0;\n t['nonenthai'] = 0x0E13;\n t['nonuthai'] = 0x0E19;\n t['noonarabic'] = 0x0646;\n t['noonfinalarabic'] = 0xFEE6;\n t['noonghunnaarabic'] = 0x06BA;\n t['noonghunnafinalarabic'] = 0xFB9F;\n t['nooninitialarabic'] = 0xFEE7;\n t['noonjeeminitialarabic'] = 0xFCD2;\n t['noonjeemisolatedarabic'] = 0xFC4B;\n t['noonmedialarabic'] = 0xFEE8;\n t['noonmeeminitialarabic'] = 0xFCD5;\n t['noonmeemisolatedarabic'] = 0xFC4E;\n t['noonnoonfinalarabic'] = 0xFC8D;\n t['notcontains'] = 0x220C;\n t['notelement'] = 0x2209;\n t['notelementof'] = 0x2209;\n t['notequal'] = 0x2260;\n t['notgreater'] = 0x226F;\n t['notgreaternorequal'] = 0x2271;\n t['notgreaternorless'] = 0x2279;\n t['notidentical'] = 0x2262;\n t['notless'] = 0x226E;\n t['notlessnorequal'] = 0x2270;\n t['notparallel'] = 0x2226;\n t['notprecedes'] = 0x2280;\n t['notsubset'] = 0x2284;\n t['notsucceeds'] = 0x2281;\n t['notsuperset'] = 0x2285;\n t['nowarmenian'] = 0x0576;\n t['nparen'] = 0x24A9;\n t['nssquare'] = 0x33B1;\n t['nsuperior'] = 0x207F;\n t['ntilde'] = 0x00F1;\n t['nu'] = 0x03BD;\n t['nuhiragana'] = 0x306C;\n t['nukatakana'] = 0x30CC;\n t['nukatakanahalfwidth'] = 0xFF87;\n t['nuktabengali'] = 0x09BC;\n t['nuktadeva'] = 0x093C;\n t['nuktagujarati'] = 0x0ABC;\n t['nuktagurmukhi'] = 0x0A3C;\n t['numbersign'] = 0x0023;\n t['numbersignmonospace'] = 0xFF03;\n t['numbersignsmall'] = 0xFE5F;\n t['numeralsigngreek'] = 0x0374;\n t['numeralsignlowergreek'] = 0x0375;\n t['numero'] = 0x2116;\n t['nun'] = 0x05E0;\n t['nundagesh'] = 0xFB40;\n t['nundageshhebrew'] = 0xFB40;\n t['nunhebrew'] = 0x05E0;\n t['nvsquare'] = 0x33B5;\n t['nwsquare'] = 0x33BB;\n t['nyabengali'] = 0x099E;\n t['nyadeva'] = 0x091E;\n t['nyagujarati'] = 0x0A9E;\n t['nyagurmukhi'] = 0x0A1E;\n t['o'] = 0x006F;\n t['oacute'] = 0x00F3;\n t['oangthai'] = 0x0E2D;\n t['obarred'] = 0x0275;\n t['obarredcyrillic'] = 0x04E9;\n t['obarreddieresiscyrillic'] = 0x04EB;\n t['obengali'] = 0x0993;\n t['obopomofo'] = 0x311B;\n t['obreve'] = 0x014F;\n t['ocandradeva'] = 0x0911;\n t['ocandragujarati'] = 0x0A91;\n t['ocandravowelsigndeva'] = 0x0949;\n t['ocandravowelsigngujarati'] = 0x0AC9;\n t['ocaron'] = 0x01D2;\n t['ocircle'] = 0x24DE;\n t['ocircumflex'] = 0x00F4;\n t['ocircumflexacute'] = 0x1ED1;\n t['ocircumflexdotbelow'] = 0x1ED9;\n t['ocircumflexgrave'] = 0x1ED3;\n t['ocircumflexhookabove'] = 0x1ED5;\n t['ocircumflextilde'] = 0x1ED7;\n t['ocyrillic'] = 0x043E;\n t['odblacute'] = 0x0151;\n t['odblgrave'] = 0x020D;\n t['odeva'] = 0x0913;\n t['odieresis'] = 0x00F6;\n t['odieresiscyrillic'] = 0x04E7;\n t['odotbelow'] = 0x1ECD;\n t['oe'] = 0x0153;\n t['oekorean'] = 0x315A;\n t['ogonek'] = 0x02DB;\n t['ogonekcmb'] = 0x0328;\n t['ograve'] = 0x00F2;\n t['ogujarati'] = 0x0A93;\n t['oharmenian'] = 0x0585;\n t['ohiragana'] = 0x304A;\n t['ohookabove'] = 0x1ECF;\n t['ohorn'] = 0x01A1;\n t['ohornacute'] = 0x1EDB;\n t['ohorndotbelow'] = 0x1EE3;\n t['ohorngrave'] = 0x1EDD;\n t['ohornhookabove'] = 0x1EDF;\n t['ohorntilde'] = 0x1EE1;\n t['ohungarumlaut'] = 0x0151;\n t['oi'] = 0x01A3;\n t['oinvertedbreve'] = 0x020F;\n t['okatakana'] = 0x30AA;\n t['okatakanahalfwidth'] = 0xFF75;\n t['okorean'] = 0x3157;\n t['olehebrew'] = 0x05AB;\n t['omacron'] = 0x014D;\n t['omacronacute'] = 0x1E53;\n t['omacrongrave'] = 0x1E51;\n t['omdeva'] = 0x0950;\n t['omega'] = 0x03C9;\n t['omega1'] = 0x03D6;\n t['omegacyrillic'] = 0x0461;\n t['omegalatinclosed'] = 0x0277;\n t['omegaroundcyrillic'] = 0x047B;\n t['omegatitlocyrillic'] = 0x047D;\n t['omegatonos'] = 0x03CE;\n t['omgujarati'] = 0x0AD0;\n t['omicron'] = 0x03BF;\n t['omicrontonos'] = 0x03CC;\n t['omonospace'] = 0xFF4F;\n t['one'] = 0x0031;\n t['onearabic'] = 0x0661;\n t['onebengali'] = 0x09E7;\n t['onecircle'] = 0x2460;\n t['onecircleinversesansserif'] = 0x278A;\n t['onedeva'] = 0x0967;\n t['onedotenleader'] = 0x2024;\n t['oneeighth'] = 0x215B;\n t['onefitted'] = 0xF6DC;\n t['onegujarati'] = 0x0AE7;\n t['onegurmukhi'] = 0x0A67;\n t['onehackarabic'] = 0x0661;\n t['onehalf'] = 0x00BD;\n t['onehangzhou'] = 0x3021;\n t['oneideographicparen'] = 0x3220;\n t['oneinferior'] = 0x2081;\n t['onemonospace'] = 0xFF11;\n t['onenumeratorbengali'] = 0x09F4;\n t['oneoldstyle'] = 0xF731;\n t['oneparen'] = 0x2474;\n t['oneperiod'] = 0x2488;\n t['onepersian'] = 0x06F1;\n t['onequarter'] = 0x00BC;\n t['oneroman'] = 0x2170;\n t['onesuperior'] = 0x00B9;\n t['onethai'] = 0x0E51;\n t['onethird'] = 0x2153;\n t['oogonek'] = 0x01EB;\n t['oogonekmacron'] = 0x01ED;\n t['oogurmukhi'] = 0x0A13;\n t['oomatragurmukhi'] = 0x0A4B;\n t['oopen'] = 0x0254;\n t['oparen'] = 0x24AA;\n t['openbullet'] = 0x25E6;\n t['option'] = 0x2325;\n t['ordfeminine'] = 0x00AA;\n t['ordmasculine'] = 0x00BA;\n t['orthogonal'] = 0x221F;\n t['oshortdeva'] = 0x0912;\n t['oshortvowelsigndeva'] = 0x094A;\n t['oslash'] = 0x00F8;\n t['oslashacute'] = 0x01FF;\n t['osmallhiragana'] = 0x3049;\n t['osmallkatakana'] = 0x30A9;\n t['osmallkatakanahalfwidth'] = 0xFF6B;\n t['ostrokeacute'] = 0x01FF;\n t['osuperior'] = 0xF6F0;\n t['otcyrillic'] = 0x047F;\n t['otilde'] = 0x00F5;\n t['otildeacute'] = 0x1E4D;\n t['otildedieresis'] = 0x1E4F;\n t['oubopomofo'] = 0x3121;\n t['overline'] = 0x203E;\n t['overlinecenterline'] = 0xFE4A;\n t['overlinecmb'] = 0x0305;\n t['overlinedashed'] = 0xFE49;\n t['overlinedblwavy'] = 0xFE4C;\n t['overlinewavy'] = 0xFE4B;\n t['overscore'] = 0x00AF;\n t['ovowelsignbengali'] = 0x09CB;\n t['ovowelsigndeva'] = 0x094B;\n t['ovowelsigngujarati'] = 0x0ACB;\n t['p'] = 0x0070;\n t['paampssquare'] = 0x3380;\n t['paasentosquare'] = 0x332B;\n t['pabengali'] = 0x09AA;\n t['pacute'] = 0x1E55;\n t['padeva'] = 0x092A;\n t['pagedown'] = 0x21DF;\n t['pageup'] = 0x21DE;\n t['pagujarati'] = 0x0AAA;\n t['pagurmukhi'] = 0x0A2A;\n t['pahiragana'] = 0x3071;\n t['paiyannoithai'] = 0x0E2F;\n t['pakatakana'] = 0x30D1;\n t['palatalizationcyrilliccmb'] = 0x0484;\n t['palochkacyrillic'] = 0x04C0;\n t['pansioskorean'] = 0x317F;\n t['paragraph'] = 0x00B6;\n t['parallel'] = 0x2225;\n t['parenleft'] = 0x0028;\n t['parenleftaltonearabic'] = 0xFD3E;\n t['parenleftbt'] = 0xF8ED;\n t['parenleftex'] = 0xF8EC;\n t['parenleftinferior'] = 0x208D;\n t['parenleftmonospace'] = 0xFF08;\n t['parenleftsmall'] = 0xFE59;\n t['parenleftsuperior'] = 0x207D;\n t['parenlefttp'] = 0xF8EB;\n t['parenleftvertical'] = 0xFE35;\n t['parenright'] = 0x0029;\n t['parenrightaltonearabic'] = 0xFD3F;\n t['parenrightbt'] = 0xF8F8;\n t['parenrightex'] = 0xF8F7;\n t['parenrightinferior'] = 0x208E;\n t['parenrightmonospace'] = 0xFF09;\n t['parenrightsmall'] = 0xFE5A;\n t['parenrightsuperior'] = 0x207E;\n t['parenrighttp'] = 0xF8F6;\n t['parenrightvertical'] = 0xFE36;\n t['partialdiff'] = 0x2202;\n t['paseqhebrew'] = 0x05C0;\n t['pashtahebrew'] = 0x0599;\n t['pasquare'] = 0x33A9;\n t['patah'] = 0x05B7;\n t['patah11'] = 0x05B7;\n t['patah1d'] = 0x05B7;\n t['patah2a'] = 0x05B7;\n t['patahhebrew'] = 0x05B7;\n t['patahnarrowhebrew'] = 0x05B7;\n t['patahquarterhebrew'] = 0x05B7;\n t['patahwidehebrew'] = 0x05B7;\n t['pazerhebrew'] = 0x05A1;\n t['pbopomofo'] = 0x3106;\n t['pcircle'] = 0x24DF;\n t['pdotaccent'] = 0x1E57;\n t['pe'] = 0x05E4;\n t['pecyrillic'] = 0x043F;\n t['pedagesh'] = 0xFB44;\n t['pedageshhebrew'] = 0xFB44;\n t['peezisquare'] = 0x333B;\n t['pefinaldageshhebrew'] = 0xFB43;\n t['peharabic'] = 0x067E;\n t['peharmenian'] = 0x057A;\n t['pehebrew'] = 0x05E4;\n t['pehfinalarabic'] = 0xFB57;\n t['pehinitialarabic'] = 0xFB58;\n t['pehiragana'] = 0x307A;\n t['pehmedialarabic'] = 0xFB59;\n t['pekatakana'] = 0x30DA;\n t['pemiddlehookcyrillic'] = 0x04A7;\n t['perafehebrew'] = 0xFB4E;\n t['percent'] = 0x0025;\n t['percentarabic'] = 0x066A;\n t['percentmonospace'] = 0xFF05;\n t['percentsmall'] = 0xFE6A;\n t['period'] = 0x002E;\n t['periodarmenian'] = 0x0589;\n t['periodcentered'] = 0x00B7;\n t['periodhalfwidth'] = 0xFF61;\n t['periodinferior'] = 0xF6E7;\n t['periodmonospace'] = 0xFF0E;\n t['periodsmall'] = 0xFE52;\n t['periodsuperior'] = 0xF6E8;\n t['perispomenigreekcmb'] = 0x0342;\n t['perpendicular'] = 0x22A5;\n t['perthousand'] = 0x2030;\n t['peseta'] = 0x20A7;\n t['pfsquare'] = 0x338A;\n t['phabengali'] = 0x09AB;\n t['phadeva'] = 0x092B;\n t['phagujarati'] = 0x0AAB;\n t['phagurmukhi'] = 0x0A2B;\n t['phi'] = 0x03C6;\n t['phi1'] = 0x03D5;\n t['phieuphacirclekorean'] = 0x327A;\n t['phieuphaparenkorean'] = 0x321A;\n t['phieuphcirclekorean'] = 0x326C;\n t['phieuphkorean'] = 0x314D;\n t['phieuphparenkorean'] = 0x320C;\n t['philatin'] = 0x0278;\n t['phinthuthai'] = 0x0E3A;\n t['phisymbolgreek'] = 0x03D5;\n t['phook'] = 0x01A5;\n t['phophanthai'] = 0x0E1E;\n t['phophungthai'] = 0x0E1C;\n t['phosamphaothai'] = 0x0E20;\n t['pi'] = 0x03C0;\n t['pieupacirclekorean'] = 0x3273;\n t['pieupaparenkorean'] = 0x3213;\n t['pieupcieuckorean'] = 0x3176;\n t['pieupcirclekorean'] = 0x3265;\n t['pieupkiyeokkorean'] = 0x3172;\n t['pieupkorean'] = 0x3142;\n t['pieupparenkorean'] = 0x3205;\n t['pieupsioskiyeokkorean'] = 0x3174;\n t['pieupsioskorean'] = 0x3144;\n t['pieupsiostikeutkorean'] = 0x3175;\n t['pieupthieuthkorean'] = 0x3177;\n t['pieuptikeutkorean'] = 0x3173;\n t['pihiragana'] = 0x3074;\n t['pikatakana'] = 0x30D4;\n t['pisymbolgreek'] = 0x03D6;\n t['piwrarmenian'] = 0x0583;\n t['plus'] = 0x002B;\n t['plusbelowcmb'] = 0x031F;\n t['pluscircle'] = 0x2295;\n t['plusminus'] = 0x00B1;\n t['plusmod'] = 0x02D6;\n t['plusmonospace'] = 0xFF0B;\n t['plussmall'] = 0xFE62;\n t['plussuperior'] = 0x207A;\n t['pmonospace'] = 0xFF50;\n t['pmsquare'] = 0x33D8;\n t['pohiragana'] = 0x307D;\n t['pointingindexdownwhite'] = 0x261F;\n t['pointingindexleftwhite'] = 0x261C;\n t['pointingindexrightwhite'] = 0x261E;\n t['pointingindexupwhite'] = 0x261D;\n t['pokatakana'] = 0x30DD;\n t['poplathai'] = 0x0E1B;\n t['postalmark'] = 0x3012;\n t['postalmarkface'] = 0x3020;\n t['pparen'] = 0x24AB;\n t['precedes'] = 0x227A;\n t['prescription'] = 0x211E;\n t['primemod'] = 0x02B9;\n t['primereversed'] = 0x2035;\n t['product'] = 0x220F;\n t['projective'] = 0x2305;\n t['prolongedkana'] = 0x30FC;\n t['propellor'] = 0x2318;\n t['propersubset'] = 0x2282;\n t['propersuperset'] = 0x2283;\n t['proportion'] = 0x2237;\n t['proportional'] = 0x221D;\n t['psi'] = 0x03C8;\n t['psicyrillic'] = 0x0471;\n t['psilipneumatacyrilliccmb'] = 0x0486;\n t['pssquare'] = 0x33B0;\n t['puhiragana'] = 0x3077;\n t['pukatakana'] = 0x30D7;\n t['pvsquare'] = 0x33B4;\n t['pwsquare'] = 0x33BA;\n t['q'] = 0x0071;\n t['qadeva'] = 0x0958;\n t['qadmahebrew'] = 0x05A8;\n t['qafarabic'] = 0x0642;\n t['qaffinalarabic'] = 0xFED6;\n t['qafinitialarabic'] = 0xFED7;\n t['qafmedialarabic'] = 0xFED8;\n t['qamats'] = 0x05B8;\n t['qamats10'] = 0x05B8;\n t['qamats1a'] = 0x05B8;\n t['qamats1c'] = 0x05B8;\n t['qamats27'] = 0x05B8;\n t['qamats29'] = 0x05B8;\n t['qamats33'] = 0x05B8;\n t['qamatsde'] = 0x05B8;\n t['qamatshebrew'] = 0x05B8;\n t['qamatsnarrowhebrew'] = 0x05B8;\n t['qamatsqatanhebrew'] = 0x05B8;\n t['qamatsqatannarrowhebrew'] = 0x05B8;\n t['qamatsqatanquarterhebrew'] = 0x05B8;\n t['qamatsqatanwidehebrew'] = 0x05B8;\n t['qamatsquarterhebrew'] = 0x05B8;\n t['qamatswidehebrew'] = 0x05B8;\n t['qarneyparahebrew'] = 0x059F;\n t['qbopomofo'] = 0x3111;\n t['qcircle'] = 0x24E0;\n t['qhook'] = 0x02A0;\n t['qmonospace'] = 0xFF51;\n t['qof'] = 0x05E7;\n t['qofdagesh'] = 0xFB47;\n t['qofdageshhebrew'] = 0xFB47;\n t['qofhebrew'] = 0x05E7;\n t['qparen'] = 0x24AC;\n t['quarternote'] = 0x2669;\n t['qubuts'] = 0x05BB;\n t['qubuts18'] = 0x05BB;\n t['qubuts25'] = 0x05BB;\n t['qubuts31'] = 0x05BB;\n t['qubutshebrew'] = 0x05BB;\n t['qubutsnarrowhebrew'] = 0x05BB;\n t['qubutsquarterhebrew'] = 0x05BB;\n t['qubutswidehebrew'] = 0x05BB;\n t['question'] = 0x003F;\n t['questionarabic'] = 0x061F;\n t['questionarmenian'] = 0x055E;\n t['questiondown'] = 0x00BF;\n t['questiondownsmall'] = 0xF7BF;\n t['questiongreek'] = 0x037E;\n t['questionmonospace'] = 0xFF1F;\n t['questionsmall'] = 0xF73F;\n t['quotedbl'] = 0x0022;\n t['quotedblbase'] = 0x201E;\n t['quotedblleft'] = 0x201C;\n t['quotedblmonospace'] = 0xFF02;\n t['quotedblprime'] = 0x301E;\n t['quotedblprimereversed'] = 0x301D;\n t['quotedblright'] = 0x201D;\n t['quoteleft'] = 0x2018;\n t['quoteleftreversed'] = 0x201B;\n t['quotereversed'] = 0x201B;\n t['quoteright'] = 0x2019;\n t['quoterightn'] = 0x0149;\n t['quotesinglbase'] = 0x201A;\n t['quotesingle'] = 0x0027;\n t['quotesinglemonospace'] = 0xFF07;\n t['r'] = 0x0072;\n t['raarmenian'] = 0x057C;\n t['rabengali'] = 0x09B0;\n t['racute'] = 0x0155;\n t['radeva'] = 0x0930;\n t['radical'] = 0x221A;\n t['radicalex'] = 0xF8E5;\n t['radoverssquare'] = 0x33AE;\n t['radoverssquaredsquare'] = 0x33AF;\n t['radsquare'] = 0x33AD;\n t['rafe'] = 0x05BF;\n t['rafehebrew'] = 0x05BF;\n t['ragujarati'] = 0x0AB0;\n t['ragurmukhi'] = 0x0A30;\n t['rahiragana'] = 0x3089;\n t['rakatakana'] = 0x30E9;\n t['rakatakanahalfwidth'] = 0xFF97;\n t['ralowerdiagonalbengali'] = 0x09F1;\n t['ramiddlediagonalbengali'] = 0x09F0;\n t['ramshorn'] = 0x0264;\n t['ratio'] = 0x2236;\n t['rbopomofo'] = 0x3116;\n t['rcaron'] = 0x0159;\n t['rcedilla'] = 0x0157;\n t['rcircle'] = 0x24E1;\n t['rcommaaccent'] = 0x0157;\n t['rdblgrave'] = 0x0211;\n t['rdotaccent'] = 0x1E59;\n t['rdotbelow'] = 0x1E5B;\n t['rdotbelowmacron'] = 0x1E5D;\n t['referencemark'] = 0x203B;\n t['reflexsubset'] = 0x2286;\n t['reflexsuperset'] = 0x2287;\n t['registered'] = 0x00AE;\n t['registersans'] = 0xF8E8;\n t['registerserif'] = 0xF6DA;\n t['reharabic'] = 0x0631;\n t['reharmenian'] = 0x0580;\n t['rehfinalarabic'] = 0xFEAE;\n t['rehiragana'] = 0x308C;\n t['rekatakana'] = 0x30EC;\n t['rekatakanahalfwidth'] = 0xFF9A;\n t['resh'] = 0x05E8;\n t['reshdageshhebrew'] = 0xFB48;\n t['reshhebrew'] = 0x05E8;\n t['reversedtilde'] = 0x223D;\n t['reviahebrew'] = 0x0597;\n t['reviamugrashhebrew'] = 0x0597;\n t['revlogicalnot'] = 0x2310;\n t['rfishhook'] = 0x027E;\n t['rfishhookreversed'] = 0x027F;\n t['rhabengali'] = 0x09DD;\n t['rhadeva'] = 0x095D;\n t['rho'] = 0x03C1;\n t['rhook'] = 0x027D;\n t['rhookturned'] = 0x027B;\n t['rhookturnedsuperior'] = 0x02B5;\n t['rhosymbolgreek'] = 0x03F1;\n t['rhotichookmod'] = 0x02DE;\n t['rieulacirclekorean'] = 0x3271;\n t['rieulaparenkorean'] = 0x3211;\n t['rieulcirclekorean'] = 0x3263;\n t['rieulhieuhkorean'] = 0x3140;\n t['rieulkiyeokkorean'] = 0x313A;\n t['rieulkiyeoksioskorean'] = 0x3169;\n t['rieulkorean'] = 0x3139;\n t['rieulmieumkorean'] = 0x313B;\n t['rieulpansioskorean'] = 0x316C;\n t['rieulparenkorean'] = 0x3203;\n t['rieulphieuphkorean'] = 0x313F;\n t['rieulpieupkorean'] = 0x313C;\n t['rieulpieupsioskorean'] = 0x316B;\n t['rieulsioskorean'] = 0x313D;\n t['rieulthieuthkorean'] = 0x313E;\n t['rieultikeutkorean'] = 0x316A;\n t['rieulyeorinhieuhkorean'] = 0x316D;\n t['rightangle'] = 0x221F;\n t['righttackbelowcmb'] = 0x0319;\n t['righttriangle'] = 0x22BF;\n t['rihiragana'] = 0x308A;\n t['rikatakana'] = 0x30EA;\n t['rikatakanahalfwidth'] = 0xFF98;\n t['ring'] = 0x02DA;\n t['ringbelowcmb'] = 0x0325;\n t['ringcmb'] = 0x030A;\n t['ringhalfleft'] = 0x02BF;\n t['ringhalfleftarmenian'] = 0x0559;\n t['ringhalfleftbelowcmb'] = 0x031C;\n t['ringhalfleftcentered'] = 0x02D3;\n t['ringhalfright'] = 0x02BE;\n t['ringhalfrightbelowcmb'] = 0x0339;\n t['ringhalfrightcentered'] = 0x02D2;\n t['rinvertedbreve'] = 0x0213;\n t['rittorusquare'] = 0x3351;\n t['rlinebelow'] = 0x1E5F;\n t['rlongleg'] = 0x027C;\n t['rlonglegturned'] = 0x027A;\n t['rmonospace'] = 0xFF52;\n t['rohiragana'] = 0x308D;\n t['rokatakana'] = 0x30ED;\n t['rokatakanahalfwidth'] = 0xFF9B;\n t['roruathai'] = 0x0E23;\n t['rparen'] = 0x24AD;\n t['rrabengali'] = 0x09DC;\n t['rradeva'] = 0x0931;\n t['rragurmukhi'] = 0x0A5C;\n t['rreharabic'] = 0x0691;\n t['rrehfinalarabic'] = 0xFB8D;\n t['rrvocalicbengali'] = 0x09E0;\n t['rrvocalicdeva'] = 0x0960;\n t['rrvocalicgujarati'] = 0x0AE0;\n t['rrvocalicvowelsignbengali'] = 0x09C4;\n t['rrvocalicvowelsigndeva'] = 0x0944;\n t['rrvocalicvowelsigngujarati'] = 0x0AC4;\n t['rsuperior'] = 0xF6F1;\n t['rtblock'] = 0x2590;\n t['rturned'] = 0x0279;\n t['rturnedsuperior'] = 0x02B4;\n t['ruhiragana'] = 0x308B;\n t['rukatakana'] = 0x30EB;\n t['rukatakanahalfwidth'] = 0xFF99;\n t['rupeemarkbengali'] = 0x09F2;\n t['rupeesignbengali'] = 0x09F3;\n t['rupiah'] = 0xF6DD;\n t['ruthai'] = 0x0E24;\n t['rvocalicbengali'] = 0x098B;\n t['rvocalicdeva'] = 0x090B;\n t['rvocalicgujarati'] = 0x0A8B;\n t['rvocalicvowelsignbengali'] = 0x09C3;\n t['rvocalicvowelsigndeva'] = 0x0943;\n t['rvocalicvowelsigngujarati'] = 0x0AC3;\n t['s'] = 0x0073;\n t['sabengali'] = 0x09B8;\n t['sacute'] = 0x015B;\n t['sacutedotaccent'] = 0x1E65;\n t['sadarabic'] = 0x0635;\n t['sadeva'] = 0x0938;\n t['sadfinalarabic'] = 0xFEBA;\n t['sadinitialarabic'] = 0xFEBB;\n t['sadmedialarabic'] = 0xFEBC;\n t['sagujarati'] = 0x0AB8;\n t['sagurmukhi'] = 0x0A38;\n t['sahiragana'] = 0x3055;\n t['sakatakana'] = 0x30B5;\n t['sakatakanahalfwidth'] = 0xFF7B;\n t['sallallahoualayhewasallamarabic'] = 0xFDFA;\n t['samekh'] = 0x05E1;\n t['samekhdagesh'] = 0xFB41;\n t['samekhdageshhebrew'] = 0xFB41;\n t['samekhhebrew'] = 0x05E1;\n t['saraaathai'] = 0x0E32;\n t['saraaethai'] = 0x0E41;\n t['saraaimaimalaithai'] = 0x0E44;\n t['saraaimaimuanthai'] = 0x0E43;\n t['saraamthai'] = 0x0E33;\n t['saraathai'] = 0x0E30;\n t['saraethai'] = 0x0E40;\n t['saraiileftthai'] = 0xF886;\n t['saraiithai'] = 0x0E35;\n t['saraileftthai'] = 0xF885;\n t['saraithai'] = 0x0E34;\n t['saraothai'] = 0x0E42;\n t['saraueeleftthai'] = 0xF888;\n t['saraueethai'] = 0x0E37;\n t['saraueleftthai'] = 0xF887;\n t['sarauethai'] = 0x0E36;\n t['sarauthai'] = 0x0E38;\n t['sarauuthai'] = 0x0E39;\n t['sbopomofo'] = 0x3119;\n t['scaron'] = 0x0161;\n t['scarondotaccent'] = 0x1E67;\n t['scedilla'] = 0x015F;\n t['schwa'] = 0x0259;\n t['schwacyrillic'] = 0x04D9;\n t['schwadieresiscyrillic'] = 0x04DB;\n t['schwahook'] = 0x025A;\n t['scircle'] = 0x24E2;\n t['scircumflex'] = 0x015D;\n t['scommaaccent'] = 0x0219;\n t['sdotaccent'] = 0x1E61;\n t['sdotbelow'] = 0x1E63;\n t['sdotbelowdotaccent'] = 0x1E69;\n t['seagullbelowcmb'] = 0x033C;\n t['second'] = 0x2033;\n t['secondtonechinese'] = 0x02CA;\n t['section'] = 0x00A7;\n t['seenarabic'] = 0x0633;\n t['seenfinalarabic'] = 0xFEB2;\n t['seeninitialarabic'] = 0xFEB3;\n t['seenmedialarabic'] = 0xFEB4;\n t['segol'] = 0x05B6;\n t['segol13'] = 0x05B6;\n t['segol1f'] = 0x05B6;\n t['segol2c'] = 0x05B6;\n t['segolhebrew'] = 0x05B6;\n t['segolnarrowhebrew'] = 0x05B6;\n t['segolquarterhebrew'] = 0x05B6;\n t['segoltahebrew'] = 0x0592;\n t['segolwidehebrew'] = 0x05B6;\n t['seharmenian'] = 0x057D;\n t['sehiragana'] = 0x305B;\n t['sekatakana'] = 0x30BB;\n t['sekatakanahalfwidth'] = 0xFF7E;\n t['semicolon'] = 0x003B;\n t['semicolonarabic'] = 0x061B;\n t['semicolonmonospace'] = 0xFF1B;\n t['semicolonsmall'] = 0xFE54;\n t['semivoicedmarkkana'] = 0x309C;\n t['semivoicedmarkkanahalfwidth'] = 0xFF9F;\n t['sentisquare'] = 0x3322;\n t['sentosquare'] = 0x3323;\n t['seven'] = 0x0037;\n t['sevenarabic'] = 0x0667;\n t['sevenbengali'] = 0x09ED;\n t['sevencircle'] = 0x2466;\n t['sevencircleinversesansserif'] = 0x2790;\n t['sevendeva'] = 0x096D;\n t['seveneighths'] = 0x215E;\n t['sevengujarati'] = 0x0AED;\n t['sevengurmukhi'] = 0x0A6D;\n t['sevenhackarabic'] = 0x0667;\n t['sevenhangzhou'] = 0x3027;\n t['sevenideographicparen'] = 0x3226;\n t['seveninferior'] = 0x2087;\n t['sevenmonospace'] = 0xFF17;\n t['sevenoldstyle'] = 0xF737;\n t['sevenparen'] = 0x247A;\n t['sevenperiod'] = 0x248E;\n t['sevenpersian'] = 0x06F7;\n t['sevenroman'] = 0x2176;\n t['sevensuperior'] = 0x2077;\n t['seventeencircle'] = 0x2470;\n t['seventeenparen'] = 0x2484;\n t['seventeenperiod'] = 0x2498;\n t['seventhai'] = 0x0E57;\n t['sfthyphen'] = 0x00AD;\n t['shaarmenian'] = 0x0577;\n t['shabengali'] = 0x09B6;\n t['shacyrillic'] = 0x0448;\n t['shaddaarabic'] = 0x0651;\n t['shaddadammaarabic'] = 0xFC61;\n t['shaddadammatanarabic'] = 0xFC5E;\n t['shaddafathaarabic'] = 0xFC60;\n t['shaddakasraarabic'] = 0xFC62;\n t['shaddakasratanarabic'] = 0xFC5F;\n t['shade'] = 0x2592;\n t['shadedark'] = 0x2593;\n t['shadelight'] = 0x2591;\n t['shademedium'] = 0x2592;\n t['shadeva'] = 0x0936;\n t['shagujarati'] = 0x0AB6;\n t['shagurmukhi'] = 0x0A36;\n t['shalshelethebrew'] = 0x0593;\n t['shbopomofo'] = 0x3115;\n t['shchacyrillic'] = 0x0449;\n t['sheenarabic'] = 0x0634;\n t['sheenfinalarabic'] = 0xFEB6;\n t['sheeninitialarabic'] = 0xFEB7;\n t['sheenmedialarabic'] = 0xFEB8;\n t['sheicoptic'] = 0x03E3;\n t['sheqel'] = 0x20AA;\n t['sheqelhebrew'] = 0x20AA;\n t['sheva'] = 0x05B0;\n t['sheva115'] = 0x05B0;\n t['sheva15'] = 0x05B0;\n t['sheva22'] = 0x05B0;\n t['sheva2e'] = 0x05B0;\n t['shevahebrew'] = 0x05B0;\n t['shevanarrowhebrew'] = 0x05B0;\n t['shevaquarterhebrew'] = 0x05B0;\n t['shevawidehebrew'] = 0x05B0;\n t['shhacyrillic'] = 0x04BB;\n t['shimacoptic'] = 0x03ED;\n t['shin'] = 0x05E9;\n t['shindagesh'] = 0xFB49;\n t['shindageshhebrew'] = 0xFB49;\n t['shindageshshindot'] = 0xFB2C;\n t['shindageshshindothebrew'] = 0xFB2C;\n t['shindageshsindot'] = 0xFB2D;\n t['shindageshsindothebrew'] = 0xFB2D;\n t['shindothebrew'] = 0x05C1;\n t['shinhebrew'] = 0x05E9;\n t['shinshindot'] = 0xFB2A;\n t['shinshindothebrew'] = 0xFB2A;\n t['shinsindot'] = 0xFB2B;\n t['shinsindothebrew'] = 0xFB2B;\n t['shook'] = 0x0282;\n t['sigma'] = 0x03C3;\n t['sigma1'] = 0x03C2;\n t['sigmafinal'] = 0x03C2;\n t['sigmalunatesymbolgreek'] = 0x03F2;\n t['sihiragana'] = 0x3057;\n t['sikatakana'] = 0x30B7;\n t['sikatakanahalfwidth'] = 0xFF7C;\n t['siluqhebrew'] = 0x05BD;\n t['siluqlefthebrew'] = 0x05BD;\n t['similar'] = 0x223C;\n t['sindothebrew'] = 0x05C2;\n t['siosacirclekorean'] = 0x3274;\n t['siosaparenkorean'] = 0x3214;\n t['sioscieuckorean'] = 0x317E;\n t['sioscirclekorean'] = 0x3266;\n t['sioskiyeokkorean'] = 0x317A;\n t['sioskorean'] = 0x3145;\n t['siosnieunkorean'] = 0x317B;\n t['siosparenkorean'] = 0x3206;\n t['siospieupkorean'] = 0x317D;\n t['siostikeutkorean'] = 0x317C;\n t['six'] = 0x0036;\n t['sixarabic'] = 0x0666;\n t['sixbengali'] = 0x09EC;\n t['sixcircle'] = 0x2465;\n t['sixcircleinversesansserif'] = 0x278F;\n t['sixdeva'] = 0x096C;\n t['sixgujarati'] = 0x0AEC;\n t['sixgurmukhi'] = 0x0A6C;\n t['sixhackarabic'] = 0x0666;\n t['sixhangzhou'] = 0x3026;\n t['sixideographicparen'] = 0x3225;\n t['sixinferior'] = 0x2086;\n t['sixmonospace'] = 0xFF16;\n t['sixoldstyle'] = 0xF736;\n t['sixparen'] = 0x2479;\n t['sixperiod'] = 0x248D;\n t['sixpersian'] = 0x06F6;\n t['sixroman'] = 0x2175;\n t['sixsuperior'] = 0x2076;\n t['sixteencircle'] = 0x246F;\n t['sixteencurrencydenominatorbengali'] = 0x09F9;\n t['sixteenparen'] = 0x2483;\n t['sixteenperiod'] = 0x2497;\n t['sixthai'] = 0x0E56;\n t['slash'] = 0x002F;\n t['slashmonospace'] = 0xFF0F;\n t['slong'] = 0x017F;\n t['slongdotaccent'] = 0x1E9B;\n t['smileface'] = 0x263A;\n t['smonospace'] = 0xFF53;\n t['sofpasuqhebrew'] = 0x05C3;\n t['softhyphen'] = 0x00AD;\n t['softsigncyrillic'] = 0x044C;\n t['sohiragana'] = 0x305D;\n t['sokatakana'] = 0x30BD;\n t['sokatakanahalfwidth'] = 0xFF7F;\n t['soliduslongoverlaycmb'] = 0x0338;\n t['solidusshortoverlaycmb'] = 0x0337;\n t['sorusithai'] = 0x0E29;\n t['sosalathai'] = 0x0E28;\n t['sosothai'] = 0x0E0B;\n t['sosuathai'] = 0x0E2A;\n t['space'] = 0x0020;\n t['spacehackarabic'] = 0x0020;\n t['spade'] = 0x2660;\n t['spadesuitblack'] = 0x2660;\n t['spadesuitwhite'] = 0x2664;\n t['sparen'] = 0x24AE;\n t['squarebelowcmb'] = 0x033B;\n t['squarecc'] = 0x33C4;\n t['squarecm'] = 0x339D;\n t['squarediagonalcrosshatchfill'] = 0x25A9;\n t['squarehorizontalfill'] = 0x25A4;\n t['squarekg'] = 0x338F;\n t['squarekm'] = 0x339E;\n t['squarekmcapital'] = 0x33CE;\n t['squareln'] = 0x33D1;\n t['squarelog'] = 0x33D2;\n t['squaremg'] = 0x338E;\n t['squaremil'] = 0x33D5;\n t['squaremm'] = 0x339C;\n t['squaremsquared'] = 0x33A1;\n t['squareorthogonalcrosshatchfill'] = 0x25A6;\n t['squareupperlefttolowerrightfill'] = 0x25A7;\n t['squareupperrighttolowerleftfill'] = 0x25A8;\n t['squareverticalfill'] = 0x25A5;\n t['squarewhitewithsmallblack'] = 0x25A3;\n t['srsquare'] = 0x33DB;\n t['ssabengali'] = 0x09B7;\n t['ssadeva'] = 0x0937;\n t['ssagujarati'] = 0x0AB7;\n t['ssangcieuckorean'] = 0x3149;\n t['ssanghieuhkorean'] = 0x3185;\n t['ssangieungkorean'] = 0x3180;\n t['ssangkiyeokkorean'] = 0x3132;\n t['ssangnieunkorean'] = 0x3165;\n t['ssangpieupkorean'] = 0x3143;\n t['ssangsioskorean'] = 0x3146;\n t['ssangtikeutkorean'] = 0x3138;\n t['ssuperior'] = 0xF6F2;\n t['sterling'] = 0x00A3;\n t['sterlingmonospace'] = 0xFFE1;\n t['strokelongoverlaycmb'] = 0x0336;\n t['strokeshortoverlaycmb'] = 0x0335;\n t['subset'] = 0x2282;\n t['subsetnotequal'] = 0x228A;\n t['subsetorequal'] = 0x2286;\n t['succeeds'] = 0x227B;\n t['suchthat'] = 0x220B;\n t['suhiragana'] = 0x3059;\n t['sukatakana'] = 0x30B9;\n t['sukatakanahalfwidth'] = 0xFF7D;\n t['sukunarabic'] = 0x0652;\n t['summation'] = 0x2211;\n t['sun'] = 0x263C;\n t['superset'] = 0x2283;\n t['supersetnotequal'] = 0x228B;\n t['supersetorequal'] = 0x2287;\n t['svsquare'] = 0x33DC;\n t['syouwaerasquare'] = 0x337C;\n t['t'] = 0x0074;\n t['tabengali'] = 0x09A4;\n t['tackdown'] = 0x22A4;\n t['tackleft'] = 0x22A3;\n t['tadeva'] = 0x0924;\n t['tagujarati'] = 0x0AA4;\n t['tagurmukhi'] = 0x0A24;\n t['taharabic'] = 0x0637;\n t['tahfinalarabic'] = 0xFEC2;\n t['tahinitialarabic'] = 0xFEC3;\n t['tahiragana'] = 0x305F;\n t['tahmedialarabic'] = 0xFEC4;\n t['taisyouerasquare'] = 0x337D;\n t['takatakana'] = 0x30BF;\n t['takatakanahalfwidth'] = 0xFF80;\n t['tatweelarabic'] = 0x0640;\n t['tau'] = 0x03C4;\n t['tav'] = 0x05EA;\n t['tavdages'] = 0xFB4A;\n t['tavdagesh'] = 0xFB4A;\n t['tavdageshhebrew'] = 0xFB4A;\n t['tavhebrew'] = 0x05EA;\n t['tbar'] = 0x0167;\n t['tbopomofo'] = 0x310A;\n t['tcaron'] = 0x0165;\n t['tccurl'] = 0x02A8;\n t['tcedilla'] = 0x0163;\n t['tcheharabic'] = 0x0686;\n t['tchehfinalarabic'] = 0xFB7B;\n t['tchehinitialarabic'] = 0xFB7C;\n t['tchehmedialarabic'] = 0xFB7D;\n t['tcircle'] = 0x24E3;\n t['tcircumflexbelow'] = 0x1E71;\n t['tcommaaccent'] = 0x0163;\n t['tdieresis'] = 0x1E97;\n t['tdotaccent'] = 0x1E6B;\n t['tdotbelow'] = 0x1E6D;\n t['tecyrillic'] = 0x0442;\n t['tedescendercyrillic'] = 0x04AD;\n t['teharabic'] = 0x062A;\n t['tehfinalarabic'] = 0xFE96;\n t['tehhahinitialarabic'] = 0xFCA2;\n t['tehhahisolatedarabic'] = 0xFC0C;\n t['tehinitialarabic'] = 0xFE97;\n t['tehiragana'] = 0x3066;\n t['tehjeeminitialarabic'] = 0xFCA1;\n t['tehjeemisolatedarabic'] = 0xFC0B;\n t['tehmarbutaarabic'] = 0x0629;\n t['tehmarbutafinalarabic'] = 0xFE94;\n t['tehmedialarabic'] = 0xFE98;\n t['tehmeeminitialarabic'] = 0xFCA4;\n t['tehmeemisolatedarabic'] = 0xFC0E;\n t['tehnoonfinalarabic'] = 0xFC73;\n t['tekatakana'] = 0x30C6;\n t['tekatakanahalfwidth'] = 0xFF83;\n t['telephone'] = 0x2121;\n t['telephoneblack'] = 0x260E;\n t['telishagedolahebrew'] = 0x05A0;\n t['telishaqetanahebrew'] = 0x05A9;\n t['tencircle'] = 0x2469;\n t['tenideographicparen'] = 0x3229;\n t['tenparen'] = 0x247D;\n t['tenperiod'] = 0x2491;\n t['tenroman'] = 0x2179;\n t['tesh'] = 0x02A7;\n t['tet'] = 0x05D8;\n t['tetdagesh'] = 0xFB38;\n t['tetdageshhebrew'] = 0xFB38;\n t['tethebrew'] = 0x05D8;\n t['tetsecyrillic'] = 0x04B5;\n t['tevirhebrew'] = 0x059B;\n t['tevirlefthebrew'] = 0x059B;\n t['thabengali'] = 0x09A5;\n t['thadeva'] = 0x0925;\n t['thagujarati'] = 0x0AA5;\n t['thagurmukhi'] = 0x0A25;\n t['thalarabic'] = 0x0630;\n t['thalfinalarabic'] = 0xFEAC;\n t['thanthakhatlowleftthai'] = 0xF898;\n t['thanthakhatlowrightthai'] = 0xF897;\n t['thanthakhatthai'] = 0x0E4C;\n t['thanthakhatupperleftthai'] = 0xF896;\n t['theharabic'] = 0x062B;\n t['thehfinalarabic'] = 0xFE9A;\n t['thehinitialarabic'] = 0xFE9B;\n t['thehmedialarabic'] = 0xFE9C;\n t['thereexists'] = 0x2203;\n t['therefore'] = 0x2234;\n t['theta'] = 0x03B8;\n t['theta1'] = 0x03D1;\n t['thetasymbolgreek'] = 0x03D1;\n t['thieuthacirclekorean'] = 0x3279;\n t['thieuthaparenkorean'] = 0x3219;\n t['thieuthcirclekorean'] = 0x326B;\n t['thieuthkorean'] = 0x314C;\n t['thieuthparenkorean'] = 0x320B;\n t['thirteencircle'] = 0x246C;\n t['thirteenparen'] = 0x2480;\n t['thirteenperiod'] = 0x2494;\n t['thonangmonthothai'] = 0x0E11;\n t['thook'] = 0x01AD;\n t['thophuthaothai'] = 0x0E12;\n t['thorn'] = 0x00FE;\n t['thothahanthai'] = 0x0E17;\n t['thothanthai'] = 0x0E10;\n t['thothongthai'] = 0x0E18;\n t['thothungthai'] = 0x0E16;\n t['thousandcyrillic'] = 0x0482;\n t['thousandsseparatorarabic'] = 0x066C;\n t['thousandsseparatorpersian'] = 0x066C;\n t['three'] = 0x0033;\n t['threearabic'] = 0x0663;\n t['threebengali'] = 0x09E9;\n t['threecircle'] = 0x2462;\n t['threecircleinversesansserif'] = 0x278C;\n t['threedeva'] = 0x0969;\n t['threeeighths'] = 0x215C;\n t['threegujarati'] = 0x0AE9;\n t['threegurmukhi'] = 0x0A69;\n t['threehackarabic'] = 0x0663;\n t['threehangzhou'] = 0x3023;\n t['threeideographicparen'] = 0x3222;\n t['threeinferior'] = 0x2083;\n t['threemonospace'] = 0xFF13;\n t['threenumeratorbengali'] = 0x09F6;\n t['threeoldstyle'] = 0xF733;\n t['threeparen'] = 0x2476;\n t['threeperiod'] = 0x248A;\n t['threepersian'] = 0x06F3;\n t['threequarters'] = 0x00BE;\n t['threequartersemdash'] = 0xF6DE;\n t['threeroman'] = 0x2172;\n t['threesuperior'] = 0x00B3;\n t['threethai'] = 0x0E53;\n t['thzsquare'] = 0x3394;\n t['tihiragana'] = 0x3061;\n t['tikatakana'] = 0x30C1;\n t['tikatakanahalfwidth'] = 0xFF81;\n t['tikeutacirclekorean'] = 0x3270;\n t['tikeutaparenkorean'] = 0x3210;\n t['tikeutcirclekorean'] = 0x3262;\n t['tikeutkorean'] = 0x3137;\n t['tikeutparenkorean'] = 0x3202;\n t['tilde'] = 0x02DC;\n t['tildebelowcmb'] = 0x0330;\n t['tildecmb'] = 0x0303;\n t['tildecomb'] = 0x0303;\n t['tildedoublecmb'] = 0x0360;\n t['tildeoperator'] = 0x223C;\n t['tildeoverlaycmb'] = 0x0334;\n t['tildeverticalcmb'] = 0x033E;\n t['timescircle'] = 0x2297;\n t['tipehahebrew'] = 0x0596;\n t['tipehalefthebrew'] = 0x0596;\n t['tippigurmukhi'] = 0x0A70;\n t['titlocyrilliccmb'] = 0x0483;\n t['tiwnarmenian'] = 0x057F;\n t['tlinebelow'] = 0x1E6F;\n t['tmonospace'] = 0xFF54;\n t['toarmenian'] = 0x0569;\n t['tohiragana'] = 0x3068;\n t['tokatakana'] = 0x30C8;\n t['tokatakanahalfwidth'] = 0xFF84;\n t['tonebarextrahighmod'] = 0x02E5;\n t['tonebarextralowmod'] = 0x02E9;\n t['tonebarhighmod'] = 0x02E6;\n t['tonebarlowmod'] = 0x02E8;\n t['tonebarmidmod'] = 0x02E7;\n t['tonefive'] = 0x01BD;\n t['tonesix'] = 0x0185;\n t['tonetwo'] = 0x01A8;\n t['tonos'] = 0x0384;\n t['tonsquare'] = 0x3327;\n t['topatakthai'] = 0x0E0F;\n t['tortoiseshellbracketleft'] = 0x3014;\n t['tortoiseshellbracketleftsmall'] = 0xFE5D;\n t['tortoiseshellbracketleftvertical'] = 0xFE39;\n t['tortoiseshellbracketright'] = 0x3015;\n t['tortoiseshellbracketrightsmall'] = 0xFE5E;\n t['tortoiseshellbracketrightvertical'] = 0xFE3A;\n t['totaothai'] = 0x0E15;\n t['tpalatalhook'] = 0x01AB;\n t['tparen'] = 0x24AF;\n t['trademark'] = 0x2122;\n t['trademarksans'] = 0xF8EA;\n t['trademarkserif'] = 0xF6DB;\n t['tretroflexhook'] = 0x0288;\n t['triagdn'] = 0x25BC;\n t['triaglf'] = 0x25C4;\n t['triagrt'] = 0x25BA;\n t['triagup'] = 0x25B2;\n t['ts'] = 0x02A6;\n t['tsadi'] = 0x05E6;\n t['tsadidagesh'] = 0xFB46;\n t['tsadidageshhebrew'] = 0xFB46;\n t['tsadihebrew'] = 0x05E6;\n t['tsecyrillic'] = 0x0446;\n t['tsere'] = 0x05B5;\n t['tsere12'] = 0x05B5;\n t['tsere1e'] = 0x05B5;\n t['tsere2b'] = 0x05B5;\n t['tserehebrew'] = 0x05B5;\n t['tserenarrowhebrew'] = 0x05B5;\n t['tserequarterhebrew'] = 0x05B5;\n t['tserewidehebrew'] = 0x05B5;\n t['tshecyrillic'] = 0x045B;\n t['tsuperior'] = 0xF6F3;\n t['ttabengali'] = 0x099F;\n t['ttadeva'] = 0x091F;\n t['ttagujarati'] = 0x0A9F;\n t['ttagurmukhi'] = 0x0A1F;\n t['tteharabic'] = 0x0679;\n t['ttehfinalarabic'] = 0xFB67;\n t['ttehinitialarabic'] = 0xFB68;\n t['ttehmedialarabic'] = 0xFB69;\n t['tthabengali'] = 0x09A0;\n t['tthadeva'] = 0x0920;\n t['tthagujarati'] = 0x0AA0;\n t['tthagurmukhi'] = 0x0A20;\n t['tturned'] = 0x0287;\n t['tuhiragana'] = 0x3064;\n t['tukatakana'] = 0x30C4;\n t['tukatakanahalfwidth'] = 0xFF82;\n t['tusmallhiragana'] = 0x3063;\n t['tusmallkatakana'] = 0x30C3;\n t['tusmallkatakanahalfwidth'] = 0xFF6F;\n t['twelvecircle'] = 0x246B;\n t['twelveparen'] = 0x247F;\n t['twelveperiod'] = 0x2493;\n t['twelveroman'] = 0x217B;\n t['twentycircle'] = 0x2473;\n t['twentyhangzhou'] = 0x5344;\n t['twentyparen'] = 0x2487;\n t['twentyperiod'] = 0x249B;\n t['two'] = 0x0032;\n t['twoarabic'] = 0x0662;\n t['twobengali'] = 0x09E8;\n t['twocircle'] = 0x2461;\n t['twocircleinversesansserif'] = 0x278B;\n t['twodeva'] = 0x0968;\n t['twodotenleader'] = 0x2025;\n t['twodotleader'] = 0x2025;\n t['twodotleadervertical'] = 0xFE30;\n t['twogujarati'] = 0x0AE8;\n t['twogurmukhi'] = 0x0A68;\n t['twohackarabic'] = 0x0662;\n t['twohangzhou'] = 0x3022;\n t['twoideographicparen'] = 0x3221;\n t['twoinferior'] = 0x2082;\n t['twomonospace'] = 0xFF12;\n t['twonumeratorbengali'] = 0x09F5;\n t['twooldstyle'] = 0xF732;\n t['twoparen'] = 0x2475;\n t['twoperiod'] = 0x2489;\n t['twopersian'] = 0x06F2;\n t['tworoman'] = 0x2171;\n t['twostroke'] = 0x01BB;\n t['twosuperior'] = 0x00B2;\n t['twothai'] = 0x0E52;\n t['twothirds'] = 0x2154;\n t['u'] = 0x0075;\n t['uacute'] = 0x00FA;\n t['ubar'] = 0x0289;\n t['ubengali'] = 0x0989;\n t['ubopomofo'] = 0x3128;\n t['ubreve'] = 0x016D;\n t['ucaron'] = 0x01D4;\n t['ucircle'] = 0x24E4;\n t['ucircumflex'] = 0x00FB;\n t['ucircumflexbelow'] = 0x1E77;\n t['ucyrillic'] = 0x0443;\n t['udattadeva'] = 0x0951;\n t['udblacute'] = 0x0171;\n t['udblgrave'] = 0x0215;\n t['udeva'] = 0x0909;\n t['udieresis'] = 0x00FC;\n t['udieresisacute'] = 0x01D8;\n t['udieresisbelow'] = 0x1E73;\n t['udieresiscaron'] = 0x01DA;\n t['udieresiscyrillic'] = 0x04F1;\n t['udieresisgrave'] = 0x01DC;\n t['udieresismacron'] = 0x01D6;\n t['udotbelow'] = 0x1EE5;\n t['ugrave'] = 0x00F9;\n t['ugujarati'] = 0x0A89;\n t['ugurmukhi'] = 0x0A09;\n t['uhiragana'] = 0x3046;\n t['uhookabove'] = 0x1EE7;\n t['uhorn'] = 0x01B0;\n t['uhornacute'] = 0x1EE9;\n t['uhorndotbelow'] = 0x1EF1;\n t['uhorngrave'] = 0x1EEB;\n t['uhornhookabove'] = 0x1EED;\n t['uhorntilde'] = 0x1EEF;\n t['uhungarumlaut'] = 0x0171;\n t['uhungarumlautcyrillic'] = 0x04F3;\n t['uinvertedbreve'] = 0x0217;\n t['ukatakana'] = 0x30A6;\n t['ukatakanahalfwidth'] = 0xFF73;\n t['ukcyrillic'] = 0x0479;\n t['ukorean'] = 0x315C;\n t['umacron'] = 0x016B;\n t['umacroncyrillic'] = 0x04EF;\n t['umacrondieresis'] = 0x1E7B;\n t['umatragurmukhi'] = 0x0A41;\n t['umonospace'] = 0xFF55;\n t['underscore'] = 0x005F;\n t['underscoredbl'] = 0x2017;\n t['underscoremonospace'] = 0xFF3F;\n t['underscorevertical'] = 0xFE33;\n t['underscorewavy'] = 0xFE4F;\n t['union'] = 0x222A;\n t['universal'] = 0x2200;\n t['uogonek'] = 0x0173;\n t['uparen'] = 0x24B0;\n t['upblock'] = 0x2580;\n t['upperdothebrew'] = 0x05C4;\n t['upsilon'] = 0x03C5;\n t['upsilondieresis'] = 0x03CB;\n t['upsilondieresistonos'] = 0x03B0;\n t['upsilonlatin'] = 0x028A;\n t['upsilontonos'] = 0x03CD;\n t['uptackbelowcmb'] = 0x031D;\n t['uptackmod'] = 0x02D4;\n t['uragurmukhi'] = 0x0A73;\n t['uring'] = 0x016F;\n t['ushortcyrillic'] = 0x045E;\n t['usmallhiragana'] = 0x3045;\n t['usmallkatakana'] = 0x30A5;\n t['usmallkatakanahalfwidth'] = 0xFF69;\n t['ustraightcyrillic'] = 0x04AF;\n t['ustraightstrokecyrillic'] = 0x04B1;\n t['utilde'] = 0x0169;\n t['utildeacute'] = 0x1E79;\n t['utildebelow'] = 0x1E75;\n t['uubengali'] = 0x098A;\n t['uudeva'] = 0x090A;\n t['uugujarati'] = 0x0A8A;\n t['uugurmukhi'] = 0x0A0A;\n t['uumatragurmukhi'] = 0x0A42;\n t['uuvowelsignbengali'] = 0x09C2;\n t['uuvowelsigndeva'] = 0x0942;\n t['uuvowelsigngujarati'] = 0x0AC2;\n t['uvowelsignbengali'] = 0x09C1;\n t['uvowelsigndeva'] = 0x0941;\n t['uvowelsigngujarati'] = 0x0AC1;\n t['v'] = 0x0076;\n t['vadeva'] = 0x0935;\n t['vagujarati'] = 0x0AB5;\n t['vagurmukhi'] = 0x0A35;\n t['vakatakana'] = 0x30F7;\n t['vav'] = 0x05D5;\n t['vavdagesh'] = 0xFB35;\n t['vavdagesh65'] = 0xFB35;\n t['vavdageshhebrew'] = 0xFB35;\n t['vavhebrew'] = 0x05D5;\n t['vavholam'] = 0xFB4B;\n t['vavholamhebrew'] = 0xFB4B;\n t['vavvavhebrew'] = 0x05F0;\n t['vavyodhebrew'] = 0x05F1;\n t['vcircle'] = 0x24E5;\n t['vdotbelow'] = 0x1E7F;\n t['vecyrillic'] = 0x0432;\n t['veharabic'] = 0x06A4;\n t['vehfinalarabic'] = 0xFB6B;\n t['vehinitialarabic'] = 0xFB6C;\n t['vehmedialarabic'] = 0xFB6D;\n t['vekatakana'] = 0x30F9;\n t['venus'] = 0x2640;\n t['verticalbar'] = 0x007C;\n t['verticallineabovecmb'] = 0x030D;\n t['verticallinebelowcmb'] = 0x0329;\n t['verticallinelowmod'] = 0x02CC;\n t['verticallinemod'] = 0x02C8;\n t['vewarmenian'] = 0x057E;\n t['vhook'] = 0x028B;\n t['vikatakana'] = 0x30F8;\n t['viramabengali'] = 0x09CD;\n t['viramadeva'] = 0x094D;\n t['viramagujarati'] = 0x0ACD;\n t['visargabengali'] = 0x0983;\n t['visargadeva'] = 0x0903;\n t['visargagujarati'] = 0x0A83;\n t['vmonospace'] = 0xFF56;\n t['voarmenian'] = 0x0578;\n t['voicediterationhiragana'] = 0x309E;\n t['voicediterationkatakana'] = 0x30FE;\n t['voicedmarkkana'] = 0x309B;\n t['voicedmarkkanahalfwidth'] = 0xFF9E;\n t['vokatakana'] = 0x30FA;\n t['vparen'] = 0x24B1;\n t['vtilde'] = 0x1E7D;\n t['vturned'] = 0x028C;\n t['vuhiragana'] = 0x3094;\n t['vukatakana'] = 0x30F4;\n t['w'] = 0x0077;\n t['wacute'] = 0x1E83;\n t['waekorean'] = 0x3159;\n t['wahiragana'] = 0x308F;\n t['wakatakana'] = 0x30EF;\n t['wakatakanahalfwidth'] = 0xFF9C;\n t['wakorean'] = 0x3158;\n t['wasmallhiragana'] = 0x308E;\n t['wasmallkatakana'] = 0x30EE;\n t['wattosquare'] = 0x3357;\n t['wavedash'] = 0x301C;\n t['wavyunderscorevertical'] = 0xFE34;\n t['wawarabic'] = 0x0648;\n t['wawfinalarabic'] = 0xFEEE;\n t['wawhamzaabovearabic'] = 0x0624;\n t['wawhamzaabovefinalarabic'] = 0xFE86;\n t['wbsquare'] = 0x33DD;\n t['wcircle'] = 0x24E6;\n t['wcircumflex'] = 0x0175;\n t['wdieresis'] = 0x1E85;\n t['wdotaccent'] = 0x1E87;\n t['wdotbelow'] = 0x1E89;\n t['wehiragana'] = 0x3091;\n t['weierstrass'] = 0x2118;\n t['wekatakana'] = 0x30F1;\n t['wekorean'] = 0x315E;\n t['weokorean'] = 0x315D;\n t['wgrave'] = 0x1E81;\n t['whitebullet'] = 0x25E6;\n t['whitecircle'] = 0x25CB;\n t['whitecircleinverse'] = 0x25D9;\n t['whitecornerbracketleft'] = 0x300E;\n t['whitecornerbracketleftvertical'] = 0xFE43;\n t['whitecornerbracketright'] = 0x300F;\n t['whitecornerbracketrightvertical'] = 0xFE44;\n t['whitediamond'] = 0x25C7;\n t['whitediamondcontainingblacksmalldiamond'] = 0x25C8;\n t['whitedownpointingsmalltriangle'] = 0x25BF;\n t['whitedownpointingtriangle'] = 0x25BD;\n t['whiteleftpointingsmalltriangle'] = 0x25C3;\n t['whiteleftpointingtriangle'] = 0x25C1;\n t['whitelenticularbracketleft'] = 0x3016;\n t['whitelenticularbracketright'] = 0x3017;\n t['whiterightpointingsmalltriangle'] = 0x25B9;\n t['whiterightpointingtriangle'] = 0x25B7;\n t['whitesmallsquare'] = 0x25AB;\n t['whitesmilingface'] = 0x263A;\n t['whitesquare'] = 0x25A1;\n t['whitestar'] = 0x2606;\n t['whitetelephone'] = 0x260F;\n t['whitetortoiseshellbracketleft'] = 0x3018;\n t['whitetortoiseshellbracketright'] = 0x3019;\n t['whiteuppointingsmalltriangle'] = 0x25B5;\n t['whiteuppointingtriangle'] = 0x25B3;\n t['wihiragana'] = 0x3090;\n t['wikatakana'] = 0x30F0;\n t['wikorean'] = 0x315F;\n t['wmonospace'] = 0xFF57;\n t['wohiragana'] = 0x3092;\n t['wokatakana'] = 0x30F2;\n t['wokatakanahalfwidth'] = 0xFF66;\n t['won'] = 0x20A9;\n t['wonmonospace'] = 0xFFE6;\n t['wowaenthai'] = 0x0E27;\n t['wparen'] = 0x24B2;\n t['wring'] = 0x1E98;\n t['wsuperior'] = 0x02B7;\n t['wturned'] = 0x028D;\n t['wynn'] = 0x01BF;\n t['x'] = 0x0078;\n t['xabovecmb'] = 0x033D;\n t['xbopomofo'] = 0x3112;\n t['xcircle'] = 0x24E7;\n t['xdieresis'] = 0x1E8D;\n t['xdotaccent'] = 0x1E8B;\n t['xeharmenian'] = 0x056D;\n t['xi'] = 0x03BE;\n t['xmonospace'] = 0xFF58;\n t['xparen'] = 0x24B3;\n t['xsuperior'] = 0x02E3;\n t['y'] = 0x0079;\n t['yaadosquare'] = 0x334E;\n t['yabengali'] = 0x09AF;\n t['yacute'] = 0x00FD;\n t['yadeva'] = 0x092F;\n t['yaekorean'] = 0x3152;\n t['yagujarati'] = 0x0AAF;\n t['yagurmukhi'] = 0x0A2F;\n t['yahiragana'] = 0x3084;\n t['yakatakana'] = 0x30E4;\n t['yakatakanahalfwidth'] = 0xFF94;\n t['yakorean'] = 0x3151;\n t['yamakkanthai'] = 0x0E4E;\n t['yasmallhiragana'] = 0x3083;\n t['yasmallkatakana'] = 0x30E3;\n t['yasmallkatakanahalfwidth'] = 0xFF6C;\n t['yatcyrillic'] = 0x0463;\n t['ycircle'] = 0x24E8;\n t['ycircumflex'] = 0x0177;\n t['ydieresis'] = 0x00FF;\n t['ydotaccent'] = 0x1E8F;\n t['ydotbelow'] = 0x1EF5;\n t['yeharabic'] = 0x064A;\n t['yehbarreearabic'] = 0x06D2;\n t['yehbarreefinalarabic'] = 0xFBAF;\n t['yehfinalarabic'] = 0xFEF2;\n t['yehhamzaabovearabic'] = 0x0626;\n t['yehhamzaabovefinalarabic'] = 0xFE8A;\n t['yehhamzaaboveinitialarabic'] = 0xFE8B;\n t['yehhamzaabovemedialarabic'] = 0xFE8C;\n t['yehinitialarabic'] = 0xFEF3;\n t['yehmedialarabic'] = 0xFEF4;\n t['yehmeeminitialarabic'] = 0xFCDD;\n t['yehmeemisolatedarabic'] = 0xFC58;\n t['yehnoonfinalarabic'] = 0xFC94;\n t['yehthreedotsbelowarabic'] = 0x06D1;\n t['yekorean'] = 0x3156;\n t['yen'] = 0x00A5;\n t['yenmonospace'] = 0xFFE5;\n t['yeokorean'] = 0x3155;\n t['yeorinhieuhkorean'] = 0x3186;\n t['yerahbenyomohebrew'] = 0x05AA;\n t['yerahbenyomolefthebrew'] = 0x05AA;\n t['yericyrillic'] = 0x044B;\n t['yerudieresiscyrillic'] = 0x04F9;\n t['yesieungkorean'] = 0x3181;\n t['yesieungpansioskorean'] = 0x3183;\n t['yesieungsioskorean'] = 0x3182;\n t['yetivhebrew'] = 0x059A;\n t['ygrave'] = 0x1EF3;\n t['yhook'] = 0x01B4;\n t['yhookabove'] = 0x1EF7;\n t['yiarmenian'] = 0x0575;\n t['yicyrillic'] = 0x0457;\n t['yikorean'] = 0x3162;\n t['yinyang'] = 0x262F;\n t['yiwnarmenian'] = 0x0582;\n t['ymonospace'] = 0xFF59;\n t['yod'] = 0x05D9;\n t['yoddagesh'] = 0xFB39;\n t['yoddageshhebrew'] = 0xFB39;\n t['yodhebrew'] = 0x05D9;\n t['yodyodhebrew'] = 0x05F2;\n t['yodyodpatahhebrew'] = 0xFB1F;\n t['yohiragana'] = 0x3088;\n t['yoikorean'] = 0x3189;\n t['yokatakana'] = 0x30E8;\n t['yokatakanahalfwidth'] = 0xFF96;\n t['yokorean'] = 0x315B;\n t['yosmallhiragana'] = 0x3087;\n t['yosmallkatakana'] = 0x30E7;\n t['yosmallkatakanahalfwidth'] = 0xFF6E;\n t['yotgreek'] = 0x03F3;\n t['yoyaekorean'] = 0x3188;\n t['yoyakorean'] = 0x3187;\n t['yoyakthai'] = 0x0E22;\n t['yoyingthai'] = 0x0E0D;\n t['yparen'] = 0x24B4;\n t['ypogegrammeni'] = 0x037A;\n t['ypogegrammenigreekcmb'] = 0x0345;\n t['yr'] = 0x01A6;\n t['yring'] = 0x1E99;\n t['ysuperior'] = 0x02B8;\n t['ytilde'] = 0x1EF9;\n t['yturned'] = 0x028E;\n t['yuhiragana'] = 0x3086;\n t['yuikorean'] = 0x318C;\n t['yukatakana'] = 0x30E6;\n t['yukatakanahalfwidth'] = 0xFF95;\n t['yukorean'] = 0x3160;\n t['yusbigcyrillic'] = 0x046B;\n t['yusbigiotifiedcyrillic'] = 0x046D;\n t['yuslittlecyrillic'] = 0x0467;\n t['yuslittleiotifiedcyrillic'] = 0x0469;\n t['yusmallhiragana'] = 0x3085;\n t['yusmallkatakana'] = 0x30E5;\n t['yusmallkatakanahalfwidth'] = 0xFF6D;\n t['yuyekorean'] = 0x318B;\n t['yuyeokorean'] = 0x318A;\n t['yyabengali'] = 0x09DF;\n t['yyadeva'] = 0x095F;\n t['z'] = 0x007A;\n t['zaarmenian'] = 0x0566;\n t['zacute'] = 0x017A;\n t['zadeva'] = 0x095B;\n t['zagurmukhi'] = 0x0A5B;\n t['zaharabic'] = 0x0638;\n t['zahfinalarabic'] = 0xFEC6;\n t['zahinitialarabic'] = 0xFEC7;\n t['zahiragana'] = 0x3056;\n t['zahmedialarabic'] = 0xFEC8;\n t['zainarabic'] = 0x0632;\n t['zainfinalarabic'] = 0xFEB0;\n t['zakatakana'] = 0x30B6;\n t['zaqefgadolhebrew'] = 0x0595;\n t['zaqefqatanhebrew'] = 0x0594;\n t['zarqahebrew'] = 0x0598;\n t['zayin'] = 0x05D6;\n t['zayindagesh'] = 0xFB36;\n t['zayindageshhebrew'] = 0xFB36;\n t['zayinhebrew'] = 0x05D6;\n t['zbopomofo'] = 0x3117;\n t['zcaron'] = 0x017E;\n t['zcircle'] = 0x24E9;\n t['zcircumflex'] = 0x1E91;\n t['zcurl'] = 0x0291;\n t['zdot'] = 0x017C;\n t['zdotaccent'] = 0x017C;\n t['zdotbelow'] = 0x1E93;\n t['zecyrillic'] = 0x0437;\n t['zedescendercyrillic'] = 0x0499;\n t['zedieresiscyrillic'] = 0x04DF;\n t['zehiragana'] = 0x305C;\n t['zekatakana'] = 0x30BC;\n t['zero'] = 0x0030;\n t['zeroarabic'] = 0x0660;\n t['zerobengali'] = 0x09E6;\n t['zerodeva'] = 0x0966;\n t['zerogujarati'] = 0x0AE6;\n t['zerogurmukhi'] = 0x0A66;\n t['zerohackarabic'] = 0x0660;\n t['zeroinferior'] = 0x2080;\n t['zeromonospace'] = 0xFF10;\n t['zerooldstyle'] = 0xF730;\n t['zeropersian'] = 0x06F0;\n t['zerosuperior'] = 0x2070;\n t['zerothai'] = 0x0E50;\n t['zerowidthjoiner'] = 0xFEFF;\n t['zerowidthnonjoiner'] = 0x200C;\n t['zerowidthspace'] = 0x200B;\n t['zeta'] = 0x03B6;\n t['zhbopomofo'] = 0x3113;\n t['zhearmenian'] = 0x056A;\n t['zhebrevecyrillic'] = 0x04C2;\n t['zhecyrillic'] = 0x0436;\n t['zhedescendercyrillic'] = 0x0497;\n t['zhedieresiscyrillic'] = 0x04DD;\n t['zihiragana'] = 0x3058;\n t['zikatakana'] = 0x30B8;\n t['zinorhebrew'] = 0x05AE;\n t['zlinebelow'] = 0x1E95;\n t['zmonospace'] = 0xFF5A;\n t['zohiragana'] = 0x305E;\n t['zokatakana'] = 0x30BE;\n t['zparen'] = 0x24B5;\n t['zretroflexhook'] = 0x0290;\n t['zstroke'] = 0x01B6;\n t['zuhiragana'] = 0x305A;\n t['zukatakana'] = 0x30BA;\n t['.notdef'] = 0x0000;\n t['angbracketleftbig'] = 0x2329;\n t['angbracketleftBig'] = 0x2329;\n t['angbracketleftbigg'] = 0x2329;\n t['angbracketleftBigg'] = 0x2329;\n t['angbracketrightBig'] = 0x232A;\n t['angbracketrightbig'] = 0x232A;\n t['angbracketrightBigg'] = 0x232A;\n t['angbracketrightbigg'] = 0x232A;\n t['arrowhookleft'] = 0x21AA;\n t['arrowhookright'] = 0x21A9;\n t['arrowlefttophalf'] = 0x21BC;\n t['arrowleftbothalf'] = 0x21BD;\n t['arrownortheast'] = 0x2197;\n t['arrownorthwest'] = 0x2196;\n t['arrowrighttophalf'] = 0x21C0;\n t['arrowrightbothalf'] = 0x21C1;\n t['arrowsoutheast'] = 0x2198;\n t['arrowsouthwest'] = 0x2199;\n t['backslashbig'] = 0x2216;\n t['backslashBig'] = 0x2216;\n t['backslashBigg'] = 0x2216;\n t['backslashbigg'] = 0x2216;\n t['bardbl'] = 0x2016;\n t['bracehtipdownleft'] = 0xFE37;\n t['bracehtipdownright'] = 0xFE37;\n t['bracehtipupleft'] = 0xFE38;\n t['bracehtipupright'] = 0xFE38;\n t['braceleftBig'] = 0x007B;\n t['braceleftbig'] = 0x007B;\n t['braceleftbigg'] = 0x007B;\n t['braceleftBigg'] = 0x007B;\n t['bracerightBig'] = 0x007D;\n t['bracerightbig'] = 0x007D;\n t['bracerightbigg'] = 0x007D;\n t['bracerightBigg'] = 0x007D;\n t['bracketleftbig'] = 0x005B;\n t['bracketleftBig'] = 0x005B;\n t['bracketleftbigg'] = 0x005B;\n t['bracketleftBigg'] = 0x005B;\n t['bracketrightBig'] = 0x005D;\n t['bracketrightbig'] = 0x005D;\n t['bracketrightbigg'] = 0x005D;\n t['bracketrightBigg'] = 0x005D;\n t['ceilingleftbig'] = 0x2308;\n t['ceilingleftBig'] = 0x2308;\n t['ceilingleftBigg'] = 0x2308;\n t['ceilingleftbigg'] = 0x2308;\n t['ceilingrightbig'] = 0x2309;\n t['ceilingrightBig'] = 0x2309;\n t['ceilingrightbigg'] = 0x2309;\n t['ceilingrightBigg'] = 0x2309;\n t['circledotdisplay'] = 0x2299;\n t['circledottext'] = 0x2299;\n t['circlemultiplydisplay'] = 0x2297;\n t['circlemultiplytext'] = 0x2297;\n t['circleplusdisplay'] = 0x2295;\n t['circleplustext'] = 0x2295;\n t['contintegraldisplay'] = 0x222E;\n t['contintegraltext'] = 0x222E;\n t['coproductdisplay'] = 0x2210;\n t['coproducttext'] = 0x2210;\n t['floorleftBig'] = 0x230A;\n t['floorleftbig'] = 0x230A;\n t['floorleftbigg'] = 0x230A;\n t['floorleftBigg'] = 0x230A;\n t['floorrightbig'] = 0x230B;\n t['floorrightBig'] = 0x230B;\n t['floorrightBigg'] = 0x230B;\n t['floorrightbigg'] = 0x230B;\n t['hatwide'] = 0x0302;\n t['hatwider'] = 0x0302;\n t['hatwidest'] = 0x0302;\n t['intercal'] = 0x1D40;\n t['integraldisplay'] = 0x222B;\n t['integraltext'] = 0x222B;\n t['intersectiondisplay'] = 0x22C2;\n t['intersectiontext'] = 0x22C2;\n t['logicalanddisplay'] = 0x2227;\n t['logicalandtext'] = 0x2227;\n t['logicalordisplay'] = 0x2228;\n t['logicalortext'] = 0x2228;\n t['parenleftBig'] = 0x0028;\n t['parenleftbig'] = 0x0028;\n t['parenleftBigg'] = 0x0028;\n t['parenleftbigg'] = 0x0028;\n t['parenrightBig'] = 0x0029;\n t['parenrightbig'] = 0x0029;\n t['parenrightBigg'] = 0x0029;\n t['parenrightbigg'] = 0x0029;\n t['prime'] = 0x2032;\n t['productdisplay'] = 0x220F;\n t['producttext'] = 0x220F;\n t['radicalbig'] = 0x221A;\n t['radicalBig'] = 0x221A;\n t['radicalBigg'] = 0x221A;\n t['radicalbigg'] = 0x221A;\n t['radicalbt'] = 0x221A;\n t['radicaltp'] = 0x221A;\n t['radicalvertex'] = 0x221A;\n t['slashbig'] = 0x002F;\n t['slashBig'] = 0x002F;\n t['slashBigg'] = 0x002F;\n t['slashbigg'] = 0x002F;\n t['summationdisplay'] = 0x2211;\n t['summationtext'] = 0x2211;\n t['tildewide'] = 0x02DC;\n t['tildewider'] = 0x02DC;\n t['tildewidest'] = 0x02DC;\n t['uniondisplay'] = 0x22C3;\n t['unionmultidisplay'] = 0x228E;\n t['unionmultitext'] = 0x228E;\n t['unionsqdisplay'] = 0x2294;\n t['unionsqtext'] = 0x2294;\n t['uniontext'] = 0x22C3;\n t['vextenddouble'] = 0x2225;\n t['vextendsingle'] = 0x2223;\n });\n var getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n t['space'] = 0x0020;\n t['a1'] = 0x2701;\n t['a2'] = 0x2702;\n t['a202'] = 0x2703;\n t['a3'] = 0x2704;\n t['a4'] = 0x260E;\n t['a5'] = 0x2706;\n t['a119'] = 0x2707;\n t['a118'] = 0x2708;\n t['a117'] = 0x2709;\n t['a11'] = 0x261B;\n t['a12'] = 0x261E;\n t['a13'] = 0x270C;\n t['a14'] = 0x270D;\n t['a15'] = 0x270E;\n t['a16'] = 0x270F;\n t['a105'] = 0x2710;\n t['a17'] = 0x2711;\n t['a18'] = 0x2712;\n t['a19'] = 0x2713;\n t['a20'] = 0x2714;\n t['a21'] = 0x2715;\n t['a22'] = 0x2716;\n t['a23'] = 0x2717;\n t['a24'] = 0x2718;\n t['a25'] = 0x2719;\n t['a26'] = 0x271A;\n t['a27'] = 0x271B;\n t['a28'] = 0x271C;\n t['a6'] = 0x271D;\n t['a7'] = 0x271E;\n t['a8'] = 0x271F;\n t['a9'] = 0x2720;\n t['a10'] = 0x2721;\n t['a29'] = 0x2722;\n t['a30'] = 0x2723;\n t['a31'] = 0x2724;\n t['a32'] = 0x2725;\n t['a33'] = 0x2726;\n t['a34'] = 0x2727;\n t['a35'] = 0x2605;\n t['a36'] = 0x2729;\n t['a37'] = 0x272A;\n t['a38'] = 0x272B;\n t['a39'] = 0x272C;\n t['a40'] = 0x272D;\n t['a41'] = 0x272E;\n t['a42'] = 0x272F;\n t['a43'] = 0x2730;\n t['a44'] = 0x2731;\n t['a45'] = 0x2732;\n t['a46'] = 0x2733;\n t['a47'] = 0x2734;\n t['a48'] = 0x2735;\n t['a49'] = 0x2736;\n t['a50'] = 0x2737;\n t['a51'] = 0x2738;\n t['a52'] = 0x2739;\n t['a53'] = 0x273A;\n t['a54'] = 0x273B;\n t['a55'] = 0x273C;\n t['a56'] = 0x273D;\n t['a57'] = 0x273E;\n t['a58'] = 0x273F;\n t['a59'] = 0x2740;\n t['a60'] = 0x2741;\n t['a61'] = 0x2742;\n t['a62'] = 0x2743;\n t['a63'] = 0x2744;\n t['a64'] = 0x2745;\n t['a65'] = 0x2746;\n t['a66'] = 0x2747;\n t['a67'] = 0x2748;\n t['a68'] = 0x2749;\n t['a69'] = 0x274A;\n t['a70'] = 0x274B;\n t['a71'] = 0x25CF;\n t['a72'] = 0x274D;\n t['a73'] = 0x25A0;\n t['a74'] = 0x274F;\n t['a203'] = 0x2750;\n t['a75'] = 0x2751;\n t['a204'] = 0x2752;\n t['a76'] = 0x25B2;\n t['a77'] = 0x25BC;\n t['a78'] = 0x25C6;\n t['a79'] = 0x2756;\n t['a81'] = 0x25D7;\n t['a82'] = 0x2758;\n t['a83'] = 0x2759;\n t['a84'] = 0x275A;\n t['a97'] = 0x275B;\n t['a98'] = 0x275C;\n t['a99'] = 0x275D;\n t['a100'] = 0x275E;\n t['a101'] = 0x2761;\n t['a102'] = 0x2762;\n t['a103'] = 0x2763;\n t['a104'] = 0x2764;\n t['a106'] = 0x2765;\n t['a107'] = 0x2766;\n t['a108'] = 0x2767;\n t['a112'] = 0x2663;\n t['a111'] = 0x2666;\n t['a110'] = 0x2665;\n t['a109'] = 0x2660;\n t['a120'] = 0x2460;\n t['a121'] = 0x2461;\n t['a122'] = 0x2462;\n t['a123'] = 0x2463;\n t['a124'] = 0x2464;\n t['a125'] = 0x2465;\n t['a126'] = 0x2466;\n t['a127'] = 0x2467;\n t['a128'] = 0x2468;\n t['a129'] = 0x2469;\n t['a130'] = 0x2776;\n t['a131'] = 0x2777;\n t['a132'] = 0x2778;\n t['a133'] = 0x2779;\n t['a134'] = 0x277A;\n t['a135'] = 0x277B;\n t['a136'] = 0x277C;\n t['a137'] = 0x277D;\n t['a138'] = 0x277E;\n t['a139'] = 0x277F;\n t['a140'] = 0x2780;\n t['a141'] = 0x2781;\n t['a142'] = 0x2782;\n t['a143'] = 0x2783;\n t['a144'] = 0x2784;\n t['a145'] = 0x2785;\n t['a146'] = 0x2786;\n t['a147'] = 0x2787;\n t['a148'] = 0x2788;\n t['a149'] = 0x2789;\n t['a150'] = 0x278A;\n t['a151'] = 0x278B;\n t['a152'] = 0x278C;\n t['a153'] = 0x278D;\n t['a154'] = 0x278E;\n t['a155'] = 0x278F;\n t['a156'] = 0x2790;\n t['a157'] = 0x2791;\n t['a158'] = 0x2792;\n t['a159'] = 0x2793;\n t['a160'] = 0x2794;\n t['a161'] = 0x2192;\n t['a163'] = 0x2194;\n t['a164'] = 0x2195;\n t['a196'] = 0x2798;\n t['a165'] = 0x2799;\n t['a192'] = 0x279A;\n t['a166'] = 0x279B;\n t['a167'] = 0x279C;\n t['a168'] = 0x279D;\n t['a169'] = 0x279E;\n t['a170'] = 0x279F;\n t['a171'] = 0x27A0;\n t['a172'] = 0x27A1;\n t['a173'] = 0x27A2;\n t['a162'] = 0x27A3;\n t['a174'] = 0x27A4;\n t['a175'] = 0x27A5;\n t['a176'] = 0x27A6;\n t['a177'] = 0x27A7;\n t['a178'] = 0x27A8;\n t['a179'] = 0x27A9;\n t['a193'] = 0x27AA;\n t['a180'] = 0x27AB;\n t['a199'] = 0x27AC;\n t['a181'] = 0x27AD;\n t['a200'] = 0x27AE;\n t['a182'] = 0x27AF;\n t['a201'] = 0x27B1;\n t['a183'] = 0x27B2;\n t['a184'] = 0x27B3;\n t['a197'] = 0x27B4;\n t['a185'] = 0x27B5;\n t['a194'] = 0x27B6;\n t['a198'] = 0x27B7;\n t['a186'] = 0x27B8;\n t['a195'] = 0x27B9;\n t['a187'] = 0x27BA;\n t['a188'] = 0x27BB;\n t['a189'] = 0x27BC;\n t['a190'] = 0x27BD;\n t['a191'] = 0x27BE;\n t['a89'] = 0x2768;\n t['a90'] = 0x2769;\n t['a93'] = 0x276A;\n t['a94'] = 0x276B;\n t['a91'] = 0x276C;\n t['a92'] = 0x276D;\n t['a205'] = 0x276E;\n t['a85'] = 0x276F;\n t['a206'] = 0x2770;\n t['a86'] = 0x2771;\n t['a87'] = 0x2772;\n t['a88'] = 0x2773;\n t['a95'] = 0x2774;\n t['a96'] = 0x2775;\n t['.notdef'] = 0x0000;\n });\n exports.getGlyphsUnicode = getGlyphsUnicode;\n exports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;\n\n /***/\n }, /* 34 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n };\n\n /***/\n }, /* 35 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {\n throw TypeError(name + ': incorrect invocation!');\n }\n return it;\n };\n\n /***/\n }, /* 36 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toObject = __w_pdfjs_require__(13);\n var toAbsoluteIndex = __w_pdfjs_require__(21);\n var toLength = __w_pdfjs_require__(8);\n module.exports = function fill(value) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) {\n O[index++] = value;\n }\n return O;\n };\n\n /***/\n }, /* 37 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toIObject = __w_pdfjs_require__(22);\n var toLength = __w_pdfjs_require__(8);\n var toAbsoluteIndex = __w_pdfjs_require__(21);\n module.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n if (value != value) return true;\n } else for (; length > index; index++) {\n if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n }\n }\n return !IS_INCLUDES && -1;\n };\n };\n\n /***/\n }, /* 38 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var cof = __w_pdfjs_require__(24);\n var TAG = __w_pdfjs_require__(2)('toStringTag');\n var ARG = cof(function () {\n return arguments;\n }()) == 'Arguments';\n var tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (e) {}\n };\n module.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n };\n\n /***/\n }, /* 39 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n };\n\n /***/\n }, /* 40 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(10);\n var document = __w_pdfjs_require__(4).document;\n var is = isObject(document) && isObject(document.createElement);\n module.exports = function (it) {\n return is ? document.createElement(it) : {};\n };\n\n /***/\n }, /* 41 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(4);\n var core = __w_pdfjs_require__(18);\n var hide = __w_pdfjs_require__(6);\n var redefine = __w_pdfjs_require__(28);\n var ctx = __w_pdfjs_require__(25);\n var PROTOTYPE = 'prototype';\n var $export = function $export(type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n own = !IS_FORCED && target && target[key] !== undefined;\n out = (own ? target : source)[key];\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if (target) redefine(target, key, out, type & $export.U);\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n };\n global.core = core;\n $export.F = 1;\n $export.G = 2;\n $export.S = 4;\n $export.P = 8;\n $export.B = 16;\n $export.W = 32;\n $export.U = 64;\n $export.R = 128;\n module.exports = $export;\n\n /***/\n }, /* 42 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = !__w_pdfjs_require__(5) && !__w_pdfjs_require__(19)(function () {\n return Object.defineProperty(__w_pdfjs_require__(40)('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n });\n\n /***/\n }, /* 43 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var cof = __w_pdfjs_require__(24);\n module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n };\n\n /***/\n }, /* 44 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var anObject = __w_pdfjs_require__(17);\n var dPs = __w_pdfjs_require__(76);\n var enumBugKeys = __w_pdfjs_require__(26);\n var IE_PROTO = __w_pdfjs_require__(30)('IE_PROTO');\n var Empty = function Empty() {};\n var PROTOTYPE = 'prototype';\n var _createDict = function createDict() {\n var iframe = __w_pdfjs_require__(40)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __w_pdfjs_require__(69).appendChild(iframe);\n iframe.src = 'javascript:';\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n _createDict = iframeDocument.F;\n while (i--) {\n delete _createDict[PROTOTYPE][enumBugKeys[i]];\n }\n return _createDict();\n };\n module.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n result[IE_PROTO] = O;\n } else result = _createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n };\n\n /***/\n }, /* 45 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $keys = __w_pdfjs_require__(47);\n var hiddenKeys = __w_pdfjs_require__(26).concat('length', 'prototype');\n exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n };\n\n /***/\n }, /* 46 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var has = __w_pdfjs_require__(7);\n var toObject = __w_pdfjs_require__(13);\n var IE_PROTO = __w_pdfjs_require__(30)('IE_PROTO');\n var ObjectProto = Object.prototype;\n module.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n return O instanceof Object ? ObjectProto : null;\n };\n\n /***/\n }, /* 47 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var has = __w_pdfjs_require__(7);\n var toIObject = __w_pdfjs_require__(22);\n var arrayIndexOf = __w_pdfjs_require__(37)(false);\n var IE_PROTO = __w_pdfjs_require__(30)('IE_PROTO');\n module.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) {\n if (key != IE_PROTO) has(O, key) && result.push(key);\n }\n while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n }\n return result;\n };\n\n /***/\n }, /* 48 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var redefine = __w_pdfjs_require__(28);\n module.exports = function (target, src, safe) {\n for (var key in src) {\n redefine(target, key, src[key], safe);\n }\n return target;\n };\n\n /***/\n }, /* 49 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(4);\n var SHARED = '__core-js_shared__';\n var store = global[SHARED] || (global[SHARED] = {});\n module.exports = function (key) {\n return store[key] || (store[key] = {});\n };\n\n /***/\n }, /* 50 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toInteger = __w_pdfjs_require__(12);\n var toLength = __w_pdfjs_require__(8);\n module.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n };\n\n /***/\n }, /* 51 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(4);\n var hide = __w_pdfjs_require__(6);\n var uid = __w_pdfjs_require__(14);\n var TYPED = uid('typed_array');\n var VIEW = uid('view');\n var ABV = !!(global.ArrayBuffer && global.DataView);\n var CONSTR = ABV;\n var i = 0;\n var l = 9;\n var Typed;\n var TypedArrayConstructors = 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'.split(',');\n while (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n }\n module.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n };\n\n /***/\n }, /* 52 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var ArithmeticDecoder = function ArithmeticDecoderClosure() {\n var QeTable = [{\n qe: 0x5601,\n nmps: 1,\n nlps: 1,\n switchFlag: 1\n }, {\n qe: 0x3401,\n nmps: 2,\n nlps: 6,\n switchFlag: 0\n }, {\n qe: 0x1801,\n nmps: 3,\n nlps: 9,\n switchFlag: 0\n }, {\n qe: 0x0AC1,\n nmps: 4,\n nlps: 12,\n switchFlag: 0\n }, {\n qe: 0x0521,\n nmps: 5,\n nlps: 29,\n switchFlag: 0\n }, {\n qe: 0x0221,\n nmps: 38,\n nlps: 33,\n switchFlag: 0\n }, {\n qe: 0x5601,\n nmps: 7,\n nlps: 6,\n switchFlag: 1\n }, {\n qe: 0x5401,\n nmps: 8,\n nlps: 14,\n switchFlag: 0\n }, {\n qe: 0x4801,\n nmps: 9,\n nlps: 14,\n switchFlag: 0\n }, {\n qe: 0x3801,\n nmps: 10,\n nlps: 14,\n switchFlag: 0\n }, {\n qe: 0x3001,\n nmps: 11,\n nlps: 17,\n switchFlag: 0\n }, {\n qe: 0x2401,\n nmps: 12,\n nlps: 18,\n switchFlag: 0\n }, {\n qe: 0x1C01,\n nmps: 13,\n nlps: 20,\n switchFlag: 0\n }, {\n qe: 0x1601,\n nmps: 29,\n nlps: 21,\n switchFlag: 0\n }, {\n qe: 0x5601,\n nmps: 15,\n nlps: 14,\n switchFlag: 1\n }, {\n qe: 0x5401,\n nmps: 16,\n nlps: 14,\n switchFlag: 0\n }, {\n qe: 0x5101,\n nmps: 17,\n nlps: 15,\n switchFlag: 0\n }, {\n qe: 0x4801,\n nmps: 18,\n nlps: 16,\n switchFlag: 0\n }, {\n qe: 0x3801,\n nmps: 19,\n nlps: 17,\n switchFlag: 0\n }, {\n qe: 0x3401,\n nmps: 20,\n nlps: 18,\n switchFlag: 0\n }, {\n qe: 0x3001,\n nmps: 21,\n nlps: 19,\n switchFlag: 0\n }, {\n qe: 0x2801,\n nmps: 22,\n nlps: 19,\n switchFlag: 0\n }, {\n qe: 0x2401,\n nmps: 23,\n nlps: 20,\n switchFlag: 0\n }, {\n qe: 0x2201,\n nmps: 24,\n nlps: 21,\n switchFlag: 0\n }, {\n qe: 0x1C01,\n nmps: 25,\n nlps: 22,\n switchFlag: 0\n }, {\n qe: 0x1801,\n nmps: 26,\n nlps: 23,\n switchFlag: 0\n }, {\n qe: 0x1601,\n nmps: 27,\n nlps: 24,\n switchFlag: 0\n }, {\n qe: 0x1401,\n nmps: 28,\n nlps: 25,\n switchFlag: 0\n }, {\n qe: 0x1201,\n nmps: 29,\n nlps: 26,\n switchFlag: 0\n }, {\n qe: 0x1101,\n nmps: 30,\n nlps: 27,\n switchFlag: 0\n }, {\n qe: 0x0AC1,\n nmps: 31,\n nlps: 28,\n switchFlag: 0\n }, {\n qe: 0x09C1,\n nmps: 32,\n nlps: 29,\n switchFlag: 0\n }, {\n qe: 0x08A1,\n nmps: 33,\n nlps: 30,\n switchFlag: 0\n }, {\n qe: 0x0521,\n nmps: 34,\n nlps: 31,\n switchFlag: 0\n }, {\n qe: 0x0441,\n nmps: 35,\n nlps: 32,\n switchFlag: 0\n }, {\n qe: 0x02A1,\n nmps: 36,\n nlps: 33,\n switchFlag: 0\n }, {\n qe: 0x0221,\n nmps: 37,\n nlps: 34,\n switchFlag: 0\n }, {\n qe: 0x0141,\n nmps: 38,\n nlps: 35,\n switchFlag: 0\n }, {\n qe: 0x0111,\n nmps: 39,\n nlps: 36,\n switchFlag: 0\n }, {\n qe: 0x0085,\n nmps: 40,\n nlps: 37,\n switchFlag: 0\n }, {\n qe: 0x0049,\n nmps: 41,\n nlps: 38,\n switchFlag: 0\n }, {\n qe: 0x0025,\n nmps: 42,\n nlps: 39,\n switchFlag: 0\n }, {\n qe: 0x0015,\n nmps: 43,\n nlps: 40,\n switchFlag: 0\n }, {\n qe: 0x0009,\n nmps: 44,\n nlps: 41,\n switchFlag: 0\n }, {\n qe: 0x0005,\n nmps: 45,\n nlps: 42,\n switchFlag: 0\n }, {\n qe: 0x0001,\n nmps: 45,\n nlps: 43,\n switchFlag: 0\n }, {\n qe: 0x5601,\n nmps: 46,\n nlps: 46,\n switchFlag: 0\n }];\n function ArithmeticDecoder(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n this.chigh = data[start];\n this.clow = 0;\n this.byteIn();\n this.chigh = this.chigh << 7 & 0xFFFF | this.clow >> 9 & 0x7F;\n this.clow = this.clow << 7 & 0xFFFF;\n this.ct -= 7;\n this.a = 0x8000;\n }\n ArithmeticDecoder.prototype = {\n byteIn: function ArithmeticDecoder_byteIn() {\n var data = this.data;\n var bp = this.bp;\n if (data[bp] === 0xFF) {\n var b1 = data[bp + 1];\n if (b1 > 0x8F) {\n this.clow += 0xFF00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00;\n this.ct = 8;\n this.bp = bp;\n }\n if (this.clow > 0xFFFF) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xFFFF;\n }\n },\n readBit: function ArithmeticDecoder_readBit(contexts, pos) {\n var cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n var qeTableIcx = QeTable[cx_index];\n var qeIcx = qeTableIcx.qe;\n var d;\n var a = this.a - qeIcx;\n if (this.chigh < qeIcx) {\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n a <<= 1;\n this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1;\n this.clow = this.clow << 1 & 0xFFFF;\n this.ct--;\n } while ((a & 0x8000) === 0);\n this.a = a;\n contexts[pos] = cx_index << 1 | cx_mps;\n return d;\n }\n };\n return ArithmeticDecoder;\n }();\n exports.ArithmeticDecoder = ArithmeticDecoder;\n\n /***/\n }, /* 53 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = undefined;\n var _util = __w_pdfjs_require__(0);\n var _charsets = __w_pdfjs_require__(89);\n var _encodings = __w_pdfjs_require__(16);\n var MAX_SUBR_NESTING = 10;\n var 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'];\n var CFFParser = function CFFParserClosure() {\n var CharstringValidationData = [null, {\n id: 'hstem',\n min: 2,\n stackClearing: true,\n stem: true\n }, null, {\n id: 'vstem',\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: 'vmoveto',\n min: 1,\n stackClearing: true\n }, {\n id: 'rlineto',\n min: 2,\n resetStack: true\n }, {\n id: 'hlineto',\n min: 1,\n resetStack: true\n }, {\n id: 'vlineto',\n min: 1,\n resetStack: true\n }, {\n id: 'rrcurveto',\n min: 6,\n resetStack: true\n }, null, {\n id: 'callsubr',\n min: 1,\n undefStack: true\n }, {\n id: 'return',\n min: 0,\n undefStack: true\n }, null, null, {\n id: 'endchar',\n min: 0,\n stackClearing: true\n }, null, null, null, {\n id: 'hstemhm',\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: 'hintmask',\n min: 0,\n stackClearing: true\n }, {\n id: 'cntrmask',\n min: 0,\n stackClearing: true\n }, {\n id: 'rmoveto',\n min: 2,\n stackClearing: true\n }, {\n id: 'hmoveto',\n min: 1,\n stackClearing: true\n }, {\n id: 'vstemhm',\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: 'rcurveline',\n min: 8,\n resetStack: true\n }, {\n id: 'rlinecurve',\n min: 8,\n resetStack: true\n }, {\n id: 'vvcurveto',\n min: 4,\n resetStack: true\n }, {\n id: 'hhcurveto',\n min: 4,\n resetStack: true\n }, null, {\n id: 'callgsubr',\n min: 1,\n undefStack: true\n }, {\n id: 'vhcurveto',\n min: 4,\n resetStack: true\n }, {\n id: 'hvcurveto',\n min: 4,\n resetStack: true\n }];\n var CharstringValidationData12 = [null, null, null, {\n id: 'and',\n min: 2,\n stackDelta: -1\n }, {\n id: 'or',\n min: 2,\n stackDelta: -1\n }, {\n id: 'not',\n min: 1,\n stackDelta: 0\n }, null, null, null, {\n id: 'abs',\n min: 1,\n stackDelta: 0\n }, {\n id: 'add',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] + stack[index - 1];\n }\n }, {\n id: 'sub',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] - stack[index - 1];\n }\n }, {\n id: 'div',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] / stack[index - 1];\n }\n }, null, {\n id: 'neg',\n min: 1,\n stackDelta: 0,\n stackFn: function stack_div(stack, index) {\n stack[index - 1] = -stack[index - 1];\n }\n }, {\n id: 'eq',\n min: 2,\n stackDelta: -1\n }, null, null, {\n id: 'drop',\n min: 1,\n stackDelta: -1\n }, null, {\n id: 'put',\n min: 2,\n stackDelta: -2\n }, {\n id: 'get',\n min: 1,\n stackDelta: 0\n }, {\n id: 'ifelse',\n min: 4,\n stackDelta: -3\n }, {\n id: 'random',\n min: 0,\n stackDelta: 1\n }, {\n id: 'mul',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] * stack[index - 1];\n }\n }, null, {\n id: 'sqrt',\n min: 1,\n stackDelta: 0\n }, {\n id: 'dup',\n min: 1,\n stackDelta: 1\n }, {\n id: 'exch',\n min: 2,\n stackDelta: 0\n }, {\n id: 'index',\n min: 2,\n stackDelta: 0\n }, {\n id: 'roll',\n min: 3,\n stackDelta: -2\n }, null, null, null, {\n id: 'hflex',\n min: 7,\n resetStack: true\n }, {\n id: 'flex',\n min: 13,\n resetStack: true\n }, {\n id: 'hflex1',\n min: 9,\n resetStack: true\n }, {\n id: 'flex1',\n min: 11,\n resetStack: true\n }];\n function CFFParser(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n CFFParser.prototype = {\n parse: function CFFParser_parse() {\n var properties = this.properties;\n var cff = new CFF();\n this.cff = cff;\n var header = this.parseHeader();\n var nameIndex = this.parseIndex(header.endPos);\n var topDictIndex = this.parseIndex(nameIndex.endPos);\n var stringIndex = this.parseIndex(topDictIndex.endPos);\n var globalSubrIndex = this.parseIndex(stringIndex.endPos);\n var topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n cff.header = header.obj;\n cff.names = this.parseNameIndex(nameIndex.obj);\n cff.strings = this.parseStringIndex(stringIndex.obj);\n cff.topDict = topDict;\n cff.globalSubrIndex = globalSubrIndex.obj;\n this.parsePrivateDict(cff.topDict);\n cff.isCIDFont = topDict.hasName('ROS');\n var charStringOffset = topDict.getByName('CharStrings');\n var charStringIndex = this.parseIndex(charStringOffset).obj;\n var fontMatrix = topDict.getByName('FontMatrix');\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n var fontBBox = topDict.getByName('FontBBox');\n if (fontBBox) {\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n }\n var charset, encoding;\n if (cff.isCIDFont) {\n var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj;\n for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n var dictRaw = fdArrayIndex.get(i);\n var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\n }\n encoding = null;\n charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, true);\n cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'), charStringIndex.count);\n } else {\n charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, false);\n encoding = this.parseEncoding(topDict.getByName('Encoding'), properties, cff.strings, charset.charset);\n }\n cff.charset = charset;\n cff.encoding = encoding;\n var charStringsAndSeacs = this.parseCharStrings({\n charStrings: charStringIndex,\n localSubrIndex: topDict.privateDict.subrsIndex,\n globalSubrIndex: globalSubrIndex.obj,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n privateDict: topDict.privateDict\n });\n cff.charStrings = charStringsAndSeacs.charStrings;\n cff.seacs = charStringsAndSeacs.seacs;\n cff.widths = charStringsAndSeacs.widths;\n return cff;\n },\n parseHeader: function CFFParser_parseHeader() {\n var bytes = this.bytes;\n var bytesLength = bytes.length;\n var offset = 0;\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n if (offset >= bytesLength) {\n throw new _util.FormatError('Invalid CFF header');\n }\n if (offset !== 0) {\n (0, _util.info)('cff data is shifted');\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\n var major = bytes[0];\n var minor = bytes[1];\n var hdrSize = bytes[2];\n var offSize = bytes[3];\n var header = new CFFHeader(major, minor, hdrSize, offSize);\n return {\n obj: header,\n endPos: hdrSize\n };\n },\n parseDict: function CFFParser_parseDict(dict) {\n var pos = 0;\n function parseOperand() {\n var value = dict[pos++];\n if (value === 30) {\n return parseFloatOperand();\n } else if (value === 28) {\n value = dict[pos++];\n value = (value << 24 | dict[pos++] << 16) >> 16;\n return value;\n } else if (value === 29) {\n value = dict[pos++];\n value = value << 8 | dict[pos++];\n value = value << 8 | dict[pos++];\n value = value << 8 | dict[pos++];\n return value;\n } else if (value >= 32 && value <= 246) {\n return value - 139;\n } else if (value >= 247 && value <= 250) {\n return (value - 247) * 256 + dict[pos++] + 108;\n } else if (value >= 251 && value <= 254) {\n return -((value - 251) * 256) - dict[pos++] - 108;\n }\n (0, _util.warn)('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n function parseFloatOperand() {\n var str = '';\n var eof = 15;\n var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'E', 'E-', null, '-'];\n var length = dict.length;\n while (pos < length) {\n var b = dict[pos++];\n var b1 = b >> 4;\n var b2 = b & 15;\n if (b1 === eof) {\n break;\n }\n str += lookup[b1];\n if (b2 === eof) {\n break;\n }\n str += lookup[b2];\n }\n return parseFloat(str);\n }\n var operands = [];\n var entries = [];\n pos = 0;\n var end = dict.length;\n while (pos < end) {\n var b = dict[pos];\n if (b <= 21) {\n if (b === 12) {\n b = b << 8 | dict[++pos];\n }\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n return entries;\n },\n parseIndex: function CFFParser_parseIndex(pos) {\n var cffIndex = new CFFIndex();\n var bytes = this.bytes;\n var count = bytes[pos++] << 8 | bytes[pos++];\n var offsets = [];\n var end = pos;\n var i, ii;\n if (count !== 0) {\n var offsetSize = bytes[pos++];\n var startPos = pos + (count + 1) * offsetSize - 1;\n for (i = 0, ii = count + 1; i < ii; ++i) {\n var offset = 0;\n for (var j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n offsets.push(startPos + offset);\n }\n end = offsets[count];\n }\n for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n var offsetStart = offsets[i];\n var offsetEnd = offsets[i + 1];\n cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n }\n return {\n obj: cffIndex,\n endPos: end\n };\n },\n parseNameIndex: function CFFParser_parseNameIndex(index) {\n var names = [];\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var name = index.get(i);\n var length = Math.min(name.length, 127);\n var data = [];\n for (var j = 0; j < length; ++j) {\n var c = name[j];\n if (j === 0 && c === 0) {\n data[j] = c;\n continue;\n }\n if (c < 33 || c > 126 || c === 91 || c === 93 || c === 40 || c === 41 || c === 123 || c === 125 || c === 60 || c === 62 || c === 47 || c === 37 || c === 35) {\n data[j] = 95;\n continue;\n }\n data[j] = c;\n }\n names.push((0, _util.bytesToString)(data));\n }\n return names;\n },\n parseStringIndex: function CFFParser_parseStringIndex(index) {\n var strings = new CFFStrings();\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var data = index.get(i);\n strings.add((0, _util.bytesToString)(data));\n }\n return strings;\n },\n createDict: function CFFParser_createDict(Type, dict, strings) {\n var cffDict = new Type(strings);\n for (var i = 0, ii = dict.length; i < ii; ++i) {\n var pair = dict[i];\n var key = pair[0];\n var value = pair[1];\n cffDict.setByKey(key, value);\n }\n return cffDict;\n },\n parseCharString: function CFFParser_parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n var stackSize = state.stackSize;\n var stack = state.stack;\n var length = data.length;\n for (var j = 0; j < length;) {\n var value = data[j++];\n var validationCommand = null;\n if (value === 12) {\n var q = data[j++];\n if (q === 0) {\n data[j - 2] = 139;\n data[j - 1] = 22;\n stackSize = 0;\n } else {\n validationCommand = CharstringValidationData12[q];\n }\n } else if (value === 28) {\n stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16;\n j += 2;\n stackSize++;\n } else if (value === 14) {\n if (stackSize >= 4) {\n stackSize -= 4;\n if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n j += state.hints + 7 >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n var subrsIndex;\n if (value === 10) {\n subrsIndex = localSubrIndex;\n } else {\n subrsIndex = globalSubrIndex;\n }\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)('Missing subrsIndex for ' + validationCommand.id);\n return false;\n }\n var bias = 32768;\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n var subrNumber = stack[--stackSize] + bias;\n if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)('Out of bounds subrIndex for ' + validationCommand.id);\n return false;\n }\n state.stackSize = stackSize;\n state.callDepth++;\n var valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n if (!valid) {\n return false;\n }\n state.callDepth--;\n stackSize = state.stackSize;\n continue;\n } else if (value === 11) {\n state.stackSize = stackSize;\n return true;\n } else {\n validationCommand = CharstringValidationData[value];\n }\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n }\n if ('min' in validationCommand) {\n if (!state.undefStack && stackSize < validationCommand.min) {\n (0, _util.warn)('Not enough parameters for ' + validationCommand.id + '; actual: ' + stackSize + ', expected: ' + validationCommand.min);\n return false;\n }\n }\n if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n stackSize -= validationCommand.min;\n if (stackSize >= 2 && validationCommand.stem) {\n stackSize %= 2;\n } else if (stackSize > 1) {\n (0, _util.warn)('Found too many parameters for stack-clearing command');\n }\n if (stackSize > 0 && stack[stackSize - 1] >= 0) {\n state.width = stack[stackSize - 1];\n }\n }\n if ('stackDelta' in validationCommand) {\n if ('stackFn' in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\n stackSize += validationCommand.stackDelta;\n } else if (validationCommand.stackClearing) {\n stackSize = 0;\n } else if (validationCommand.resetStack) {\n stackSize = 0;\n state.undefStack = false;\n } else if (validationCommand.undefStack) {\n stackSize = 0;\n state.undefStack = true;\n state.firstStackClearing = false;\n }\n }\n }\n state.stackSize = stackSize;\n return true;\n },\n parseCharStrings: function parseCharStrings(_ref) {\n var charStrings = _ref.charStrings,\n localSubrIndex = _ref.localSubrIndex,\n globalSubrIndex = _ref.globalSubrIndex,\n fdSelect = _ref.fdSelect,\n fdArray = _ref.fdArray,\n privateDict = _ref.privateDict;\n var seacs = [];\n var widths = [];\n var count = charStrings.count;\n for (var i = 0; i < count; i++) {\n var charstring = charStrings.get(i);\n var state = {\n callDepth: 0,\n stackSize: 0,\n stack: [],\n undefStack: true,\n hints: 0,\n firstStackClearing: true,\n seac: null,\n width: null\n };\n var valid = true;\n var localSubrToUse = null;\n var privateDictToUse = privateDict;\n if (fdSelect && fdArray.length) {\n var fdIndex = fdSelect.getFDIndex(i);\n if (fdIndex === -1) {\n (0, _util.warn)('Glyph index is not in fd select.');\n valid = false;\n }\n if (fdIndex >= fdArray.length) {\n (0, _util.warn)('Invalid fd index for glyph index.');\n valid = false;\n }\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n if (valid) {\n valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex);\n }\n if (state.width !== null) {\n var nominalWidth = privateDictToUse.getByName('nominalWidthX');\n widths[i] = nominalWidth + state.width;\n } else {\n var defaultWidth = privateDictToUse.getByName('defaultWidthX');\n widths[i] = defaultWidth;\n }\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n if (!valid) {\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n return {\n charStrings: charStrings,\n seacs: seacs,\n widths: widths\n };\n },\n emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(parentDict) {\n var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n },\n parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {\n if (!parentDict.hasName('Private')) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n var privateOffset = parentDict.getByName('Private');\n if (!(0, _util.isArray)(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName('Private');\n return;\n }\n var size = privateOffset[0];\n var offset = privateOffset[1];\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n var privateDictEnd = offset + size;\n var dictData = this.bytes.subarray(offset, privateDictEnd);\n var dict = this.parseDict(dictData);\n var privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n parentDict.privateDict = privateDict;\n if (!privateDict.getByName('Subrs')) {\n return;\n }\n var subrsOffset = privateDict.getByName('Subrs');\n var relativeOffset = offset + subrsOffset;\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n var subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n },\n parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset);\n } else if (pos === 1) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, _charsets.ExpertCharset);\n } else if (pos === 2) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, _charsets.ExpertSubsetCharset);\n }\n var bytes = this.bytes;\n var start = pos;\n var format = bytes[pos++];\n var charset = ['.notdef'];\n var id, count, i;\n length -= 1;\n switch (format) {\n case 0:\n for (i = 0; i < length; i++) {\n id = bytes[pos++] << 8 | bytes[pos++];\n charset.push(cid ? id : strings.get(id));\n }\n break;\n case 1:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n case 2:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++] << 8 | bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n default:\n throw new _util.FormatError('Unknown charset format');\n }\n var end = pos;\n var raw = bytes.subarray(start, end);\n return new CFFCharset(false, format, charset, raw);\n },\n parseEncoding: function CFFParser_parseEncoding(pos, properties, strings, charset) {\n var encoding = Object.create(null);\n var bytes = this.bytes;\n var predefined = false;\n var format, i, ii;\n var raw = null;\n function readSupplement() {\n var supplementsCount = bytes[pos++];\n for (i = 0; i < supplementsCount; i++) {\n var code = bytes[pos++];\n var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n encoding[code] = charset.indexOf(strings.get(sid));\n }\n }\n if (pos === 0 || pos === 1) {\n predefined = true;\n format = pos;\n var baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n for (i = 0, ii = charset.length; i < ii; i++) {\n var index = baseEncoding.indexOf(charset[i]);\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n var dataStart = pos;\n format = bytes[pos++];\n switch (format & 0x7f) {\n case 0:\n var glyphsCount = bytes[pos++];\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n break;\n case 1:\n var rangesCount = bytes[pos++];\n var gid = 1;\n for (i = 0; i < rangesCount; i++) {\n var start = bytes[pos++];\n var left = bytes[pos++];\n for (var j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n break;\n default:\n throw new _util.FormatError('Unknown encoding format: ' + format + ' in CFF');\n }\n var dataEnd = pos;\n if (format & 0x80) {\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n raw = bytes.subarray(dataStart, dataEnd);\n }\n format = format & 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n },\n parseFDSelect: function CFFParser_parseFDSelect(pos, length) {\n var start = pos;\n var bytes = this.bytes;\n var format = bytes[pos++];\n var fdSelect = [],\n rawBytes;\n var i,\n invalidFirstGID = false;\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n var id = bytes[pos++];\n fdSelect.push(id);\n }\n rawBytes = bytes.subarray(start, pos);\n break;\n case 3:\n var rangesCount = bytes[pos++] << 8 | bytes[pos++];\n for (i = 0; i < rangesCount; ++i) {\n var first = bytes[pos++] << 8 | bytes[pos++];\n if (i === 0 && first !== 0) {\n (0, _util.warn)('parseFDSelect: The first range must have a first GID of 0' + ' -- trying to recover.');\n invalidFirstGID = true;\n first = 0;\n }\n var fdIndex = bytes[pos++];\n var next = bytes[pos] << 8 | bytes[pos + 1];\n for (var j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n pos += 2;\n rawBytes = bytes.subarray(start, pos);\n if (invalidFirstGID) {\n rawBytes[3] = rawBytes[4] = 0;\n }\n break;\n default:\n throw new _util.FormatError('parseFDSelect: Unknown format \"' + format + '\".');\n }\n if (fdSelect.length !== length) {\n throw new _util.FormatError('parseFDSelect: Invalid font data.');\n }\n return new CFFFDSelect(fdSelect, rawBytes);\n }\n };\n return CFFParser;\n }();\n var CFF = function CFFClosure() {\n function CFF() {\n this.header = null;\n this.names = [];\n this.topDict = null;\n this.strings = new CFFStrings();\n this.globalSubrIndex = null;\n this.encoding = null;\n this.charset = null;\n this.charStrings = null;\n this.fdArray = [];\n this.fdSelect = null;\n this.isCIDFont = false;\n }\n return CFF;\n }();\n var CFFHeader = function CFFHeaderClosure() {\n function CFFHeader(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n return CFFHeader;\n }();\n var CFFStrings = function CFFStringsClosure() {\n function CFFStrings() {\n this.strings = [];\n }\n CFFStrings.prototype = {\n get: function CFFStrings_get(index) {\n if (index >= 0 && index <= 390) {\n return CFFStandardStrings[index];\n }\n if (index - 391 <= this.strings.length) {\n return this.strings[index - 391];\n }\n return CFFStandardStrings[0];\n },\n add: function CFFStrings_add(value) {\n this.strings.push(value);\n },\n get count() {\n return this.strings.length;\n }\n };\n return CFFStrings;\n }();\n var CFFIndex = function CFFIndexClosure() {\n function CFFIndex() {\n this.objects = [];\n this.length = 0;\n }\n CFFIndex.prototype = {\n add: function CFFIndex_add(data) {\n this.length += data.length;\n this.objects.push(data);\n },\n set: function CFFIndex_set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n },\n get: function CFFIndex_get(index) {\n return this.objects[index];\n },\n get count() {\n return this.objects.length;\n }\n };\n return CFFIndex;\n }();\n var CFFDict = function CFFDictClosure() {\n function CFFDict(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n CFFDict.prototype = {\n setByKey: function CFFDict_setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n var valueLength = value.length;\n if (valueLength === 0) {\n return true;\n }\n for (var i = 0; i < valueLength; i++) {\n if (isNaN(value[i])) {\n (0, _util.warn)('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n return true;\n }\n }\n var type = this.types[key];\n if (type === 'num' || type === 'sid' || type === 'offset') {\n value = value[0];\n }\n this.values[key] = value;\n return true;\n },\n setByName: function CFFDict_setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError('Invalid dictionary name \"' + name + '\"');\n }\n this.values[this.nameToKeyMap[name]] = value;\n },\n hasName: function CFFDict_hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n },\n getByName: function CFFDict_getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError('Invalid dictionary name ' + name + '\"');\n }\n var key = this.nameToKeyMap[name];\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n return this.values[key];\n },\n removeByName: function CFFDict_removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n };\n CFFDict.createTables = function CFFDict_createTables(layout) {\n var tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: []\n };\n for (var i = 0, ii = layout.length; i < ii; ++i) {\n var entry = layout[i];\n var key = (0, _util.isArray)(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];\n tables.keyToNameMap[key] = entry[1];\n tables.nameToKeyMap[entry[1]] = key;\n tables.types[key] = entry[2];\n tables.defaults[key] = entry[3];\n tables.opcodes[key] = (0, _util.isArray)(entry[0]) ? entry[0] : [entry[0]];\n tables.order.push(key);\n }\n return tables;\n };\n return CFFDict;\n }();\n var CFFTopDict = function CFFTopDictClosure() {\n var layout = [[[12, 30], 'ROS', ['sid', 'sid', 'num'], null], [[12, 20], 'SyntheticBase', 'num', null], [0, 'version', 'sid', null], [1, 'Notice', 'sid', null], [[12, 0], 'Copyright', 'sid', null], [2, 'FullName', 'sid', null], [3, 'FamilyName', 'sid', null], [4, 'Weight', 'sid', null], [[12, 1], 'isFixedPitch', 'num', 0], [[12, 2], 'ItalicAngle', 'num', 0], [[12, 3], 'UnderlinePosition', 'num', -100], [[12, 4], 'UnderlineThickness', 'num', 50], [[12, 5], 'PaintType', 'num', 0], [[12, 6], 'CharstringType', 'num', 2], [[12, 7], 'FontMatrix', ['num', 'num', 'num', 'num', 'num', 'num'], [0.001, 0, 0, 0.001, 0, 0]], [13, 'UniqueID', 'num', null], [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]], [[12, 8], 'StrokeWidth', 'num', 0], [14, 'XUID', 'array', null], [15, 'charset', 'offset', 0], [16, 'Encoding', 'offset', 0], [17, 'CharStrings', 'offset', 0], [18, 'Private', ['offset', 'offset'], null], [[12, 21], 'PostScript', 'sid', null], [[12, 22], 'BaseFontName', 'sid', null], [[12, 23], 'BaseFontBlend', 'delta', null], [[12, 31], 'CIDFontVersion', 'num', 0], [[12, 32], 'CIDFontRevision', 'num', 0], [[12, 33], 'CIDFontType', 'num', 0], [[12, 34], 'CIDCount', 'num', 8720], [[12, 35], 'UIDBase', 'num', null], [[12, 37], 'FDSelect', 'offset', null], [[12, 36], 'FDArray', 'offset', null], [[12, 38], 'FontName', 'sid', null]];\n var tables = null;\n function CFFTopDict(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n CFFDict.call(this, tables, strings);\n this.privateDict = null;\n }\n CFFTopDict.prototype = Object.create(CFFDict.prototype);\n return CFFTopDict;\n }();\n var CFFPrivateDict = function CFFPrivateDictClosure() {\n var layout = [[6, 'BlueValues', 'delta', null], [7, 'OtherBlues', 'delta', null], [8, 'FamilyBlues', 'delta', null], [9, 'FamilyOtherBlues', 'delta', null], [[12, 9], 'BlueScale', 'num', 0.039625], [[12, 10], 'BlueShift', 'num', 7], [[12, 11], 'BlueFuzz', 'num', 1], [10, 'StdHW', 'num', null], [11, 'StdVW', 'num', null], [[12, 12], 'StemSnapH', 'delta', null], [[12, 13], 'StemSnapV', 'delta', null], [[12, 14], 'ForceBold', 'num', 0], [[12, 17], 'LanguageGroup', 'num', 0], [[12, 18], 'ExpansionFactor', 'num', 0.06], [[12, 19], 'initialRandomSeed', 'num', 0], [20, 'defaultWidthX', 'num', 0], [21, 'nominalWidthX', 'num', 0], [19, 'Subrs', 'offset', null]];\n var tables = null;\n function CFFPrivateDict(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n CFFDict.call(this, tables, strings);\n this.subrsIndex = null;\n }\n CFFPrivateDict.prototype = Object.create(CFFDict.prototype);\n return CFFPrivateDict;\n }();\n var CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2\n };\n var CFFCharset = function CFFCharsetClosure() {\n function CFFCharset(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n return CFFCharset;\n }();\n var CFFEncoding = function CFFEncodingClosure() {\n function CFFEncoding(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n return CFFEncoding;\n }();\n var CFFFDSelect = function CFFFDSelectClosure() {\n function CFFFDSelect(fdSelect, raw) {\n this.fdSelect = fdSelect;\n this.raw = raw;\n }\n CFFFDSelect.prototype = {\n getFDIndex: function CFFFDSelect_get(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n return this.fdSelect[glyphIndex];\n }\n };\n return CFFFDSelect;\n }();\n var CFFOffsetTracker = function CFFOffsetTrackerClosure() {\n function CFFOffsetTracker() {\n this.offsets = Object.create(null);\n }\n CFFOffsetTracker.prototype = {\n isTracking: function CFFOffsetTracker_isTracking(key) {\n return key in this.offsets;\n },\n track: function CFFOffsetTracker_track(key, location) {\n if (key in this.offsets) {\n throw new _util.FormatError('Already tracking location of ' + key);\n }\n this.offsets[key] = location;\n },\n offset: function CFFOffsetTracker_offset(value) {\n for (var key in this.offsets) {\n this.offsets[key] += value;\n }\n },\n setEntryLocation: function CFFOffsetTracker_setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new _util.FormatError('Not tracking location of ' + key);\n }\n var data = output.data;\n var dataOffset = this.offsets[key];\n var size = 5;\n for (var i = 0, ii = values.length; i < ii; ++i) {\n var offset0 = i * size + dataOffset;\n var offset1 = offset0 + 1;\n var offset2 = offset0 + 2;\n var offset3 = offset0 + 3;\n var offset4 = offset0 + 4;\n if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) {\n throw new _util.FormatError('writing to an offset that is not empty');\n }\n var value = values[i];\n data[offset0] = 0x1d;\n data[offset1] = value >> 24 & 0xFF;\n data[offset2] = value >> 16 & 0xFF;\n data[offset3] = value >> 8 & 0xFF;\n data[offset4] = value & 0xFF;\n }\n }\n };\n return CFFOffsetTracker;\n }();\n var CFFCompiler = function CFFCompilerClosure() {\n function CFFCompiler(cff) {\n this.cff = cff;\n }\n CFFCompiler.prototype = {\n compile: function CFFCompiler_compile() {\n var cff = this.cff;\n var output = {\n data: [],\n length: 0,\n add: function CFFCompiler_add(data) {\n this.data = this.data.concat(data);\n this.length = this.data.length;\n }\n };\n var header = this.compileHeader(cff.header);\n output.add(header);\n var nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n if (cff.isCIDFont) {\n if (cff.topDict.hasName('FontMatrix')) {\n var base = cff.topDict.getByName('FontMatrix');\n cff.topDict.removeByName('FontMatrix');\n for (var i = 0, ii = cff.fdArray.length; i < ii; i++) {\n var subDict = cff.fdArray[i];\n var matrix = base.slice(0);\n if (subDict.hasName('FontMatrix')) {\n matrix = _util.Util.transform(matrix, subDict.getByName('FontMatrix'));\n }\n subDict.setByName('FontMatrix', matrix);\n }\n }\n }\n var compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n output.add(compiled.output);\n var topDictTracker = compiled.trackers[0];\n var stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n if (cff.encoding && cff.topDict.hasName('Encoding')) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation('Encoding', [cff.encoding.format], output);\n } else {\n var encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation('Encoding', [output.length], output);\n output.add(encoding);\n }\n }\n if (cff.charset && cff.topDict.hasName('charset')) {\n if (cff.charset.predefined) {\n topDictTracker.setEntryLocation('charset', [cff.charset.format], output);\n } else {\n var charset = this.compileCharset(cff.charset);\n topDictTracker.setEntryLocation('charset', [output.length], output);\n output.add(charset);\n }\n }\n var charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation('CharStrings', [output.length], output);\n output.add(charStrings);\n if (cff.isCIDFont) {\n topDictTracker.setEntryLocation('FDSelect', [output.length], output);\n var fdSelect = this.compileFDSelect(cff.fdSelect.raw);\n output.add(fdSelect);\n compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n topDictTracker.setEntryLocation('FDArray', [output.length], output);\n output.add(compiled.output);\n var fontDictTrackers = compiled.trackers;\n this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n output.add([0]);\n return output.data;\n },\n encodeNumber: function CFFCompiler_encodeNumber(value) {\n if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) {\n return this.encodeInteger(value);\n }\n return this.encodeFloat(value);\n },\n encodeFloat: function CFFCompiler_encodeFloat(num) {\n var value = num.toString();\n var m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n if (m) {\n var epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n var nibbles = '';\n var i, ii;\n for (i = 0, ii = value.length; i < ii; ++i) {\n var a = value[i];\n if (a === 'e') {\n nibbles += value[++i] === '-' ? 'c' : 'b';\n } else if (a === '.') {\n nibbles += 'a';\n } else if (a === '-') {\n nibbles += 'e';\n } else {\n nibbles += a;\n }\n }\n nibbles += nibbles.length & 1 ? 'f' : 'ff';\n var out = [30];\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substr(i, 2), 16));\n }\n return out;\n },\n encodeInteger: function CFFCompiler_encodeInteger(value) {\n var code;\n if (value >= -107 && value <= 107) {\n code = [value + 139];\n } else if (value >= 108 && value <= 1131) {\n value = value - 108;\n code = [(value >> 8) + 247, value & 0xFF];\n } else if (value >= -1131 && value <= -108) {\n value = -value - 108;\n code = [(value >> 8) + 251, value & 0xFF];\n } else if (value >= -32768 && value <= 32767) {\n code = [0x1c, value >> 8 & 0xFF, value & 0xFF];\n } else {\n code = [0x1d, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF];\n }\n return code;\n },\n compileHeader: function CFFCompiler_compileHeader(header) {\n return [header.major, header.minor, header.hdrSize, header.offSize];\n },\n compileNameIndex: function CFFCompiler_compileNameIndex(names) {\n var nameIndex = new CFFIndex();\n for (var i = 0, ii = names.length; i < ii; ++i) {\n nameIndex.add((0, _util.stringToBytes)(names[i]));\n }\n return this.compileIndex(nameIndex);\n },\n compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length, removeCidKeys) {\n var fontDictTrackers = [];\n var fdArrayIndex = new CFFIndex();\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n if (removeCidKeys) {\n fontDict.removeByName('CIDFontVersion');\n fontDict.removeByName('CIDFontRevision');\n fontDict.removeByName('CIDFontType');\n fontDict.removeByName('CIDCount');\n fontDict.removeByName('UIDBase');\n }\n var fontDictTracker = new CFFOffsetTracker();\n var fontDictData = this.compileDict(fontDict, fontDictTracker);\n fontDictTrackers.push(fontDictTracker);\n fdArrayIndex.add(fontDictData);\n fontDictTracker.offset(length);\n }\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex\n };\n },\n compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts, trackers, output) {\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n var privateDict = fontDict.privateDict;\n if (!privateDict || !fontDict.hasName('Private')) {\n throw new _util.FormatError('There must be a private dictionary.');\n }\n var privateDictTracker = new CFFOffsetTracker();\n var privateDictData = this.compileDict(privateDict, privateDictTracker);\n var outputLength = output.length;\n privateDictTracker.offset(outputLength);\n if (!privateDictData.length) {\n outputLength = 0;\n }\n trackers[i].setEntryLocation('Private', [privateDictData.length, outputLength], output);\n output.add(privateDictData);\n if (privateDict.subrsIndex && privateDict.hasName('Subrs')) {\n var subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation('Subrs', [privateDictData.length], output);\n output.add(subrs);\n }\n }\n },\n compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {\n var out = [];\n var order = dict.order;\n for (var i = 0; i < order.length; ++i) {\n var key = order[i];\n if (!(key in dict.values)) {\n continue;\n }\n var values = dict.values[key];\n var types = dict.types[key];\n if (!(0, _util.isArray)(types)) {\n types = [types];\n }\n if (!(0, _util.isArray)(values)) {\n values = [values];\n }\n if (values.length === 0) {\n continue;\n }\n for (var j = 0, jj = types.length; j < jj; ++j) {\n var type = types[j];\n var value = values[j];\n switch (type) {\n case 'num':\n case 'sid':\n out = out.concat(this.encodeNumber(value));\n break;\n case 'offset':\n var name = dict.keyToNameMap[key];\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n out = out.concat([0x1d, 0, 0, 0, 0]);\n break;\n case 'array':\n case 'delta':\n out = out.concat(this.encodeNumber(value));\n for (var k = 1, kk = values.length; k < kk; ++k) {\n out = out.concat(this.encodeNumber(values[k]));\n }\n break;\n default:\n throw new _util.FormatError('Unknown data type of ' + type);\n }\n }\n out = out.concat(dict.opcodes[key]);\n }\n return out;\n },\n compileStringIndex: function CFFCompiler_compileStringIndex(strings) {\n var stringIndex = new CFFIndex();\n for (var i = 0, ii = strings.length; i < ii; ++i) {\n stringIndex.add((0, _util.stringToBytes)(strings[i]));\n }\n return this.compileIndex(stringIndex);\n },\n compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {\n var globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n },\n compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {\n return this.compileIndex(charStrings);\n },\n compileCharset: function CFFCompiler_compileCharset(charset) {\n return this.compileTypedArray(charset.raw);\n },\n compileEncoding: function CFFCompiler_compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n },\n compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {\n return this.compileTypedArray(fdSelect);\n },\n compileTypedArray: function CFFCompiler_compileTypedArray(data) {\n var out = [];\n for (var i = 0, ii = data.length; i < ii; ++i) {\n out[i] = data[i];\n }\n return out;\n },\n compileIndex: function CFFCompiler_compileIndex(index, trackers) {\n trackers = trackers || [];\n var objects = index.objects;\n var count = objects.length;\n if (count === 0) {\n return [0, 0, 0];\n }\n var data = [count >> 8 & 0xFF, count & 0xff];\n var lastOffset = 1,\n i;\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n var offsetSize;\n if (lastOffset < 0x100) {\n offsetSize = 1;\n } else if (lastOffset < 0x10000) {\n offsetSize = 2;\n } else if (lastOffset < 0x1000000) {\n offsetSize = 3;\n } else {\n offsetSize = 4;\n }\n data.push(offsetSize);\n var relativeOffset = 1;\n for (i = 0; i < count + 1; i++) {\n if (offsetSize === 1) {\n data.push(relativeOffset & 0xFF);\n } else if (offsetSize === 2) {\n data.push(relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n } else if (offsetSize === 3) {\n data.push(relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n } else {\n data.push(relativeOffset >>> 24 & 0xFF, relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n }\n if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n for (i = 0; i < count; i++) {\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n for (var j = 0, jj = objects[i].length; j < jj; j++) {\n data.push(objects[i][j]);\n }\n }\n return data;\n }\n };\n return CFFCompiler;\n }();\n exports.CFFStandardStrings = CFFStandardStrings;\n exports.CFFParser = CFFParser;\n exports.CFF = CFF;\n exports.CFFHeader = CFFHeader;\n exports.CFFStrings = CFFStrings;\n exports.CFFIndex = CFFIndex;\n exports.CFFCharset = CFFCharset;\n exports.CFFTopDict = CFFTopDict;\n exports.CFFPrivateDict = CFFPrivateDict;\n exports.CFFCompiler = CFFCompiler;\n\n /***/\n }, /* 54 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.ChunkedStreamManager = exports.ChunkedStream = undefined;\n var _util = __w_pdfjs_require__(0);\n var ChunkedStream = function ChunkedStreamClosure() {\n function ChunkedStream(length, chunkSize, manager) {\n this.bytes = new Uint8Array(length);\n this.start = 0;\n this.pos = 0;\n this.end = length;\n this.chunkSize = chunkSize;\n this.loadedChunks = [];\n this.numChunksLoaded = 0;\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1;\n }\n ChunkedStream.prototype = {\n getMissingChunks: function ChunkedStream_getMissingChunks() {\n var chunks = [];\n for (var chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n chunks.push(chunk);\n }\n }\n return chunks;\n },\n getBaseStreams: function ChunkedStream_getBaseStreams() {\n return [this];\n },\n allChunksLoaded: function ChunkedStream_allChunksLoaded() {\n return this.numChunksLoaded === this.numChunks;\n },\n onReceiveData: function ChunkedStream_onReceiveData(begin, chunk) {\n var end = begin + chunk.byteLength;\n if (begin % this.chunkSize !== 0) {\n throw new Error('Bad begin offset: ' + begin);\n }\n var length = this.bytes.length;\n if (end % this.chunkSize !== 0 && end !== length) {\n throw new Error('Bad end offset: ' + end);\n }\n this.bytes.set(new Uint8Array(chunk), begin);\n var chunkSize = this.chunkSize;\n var beginChunk = Math.floor(begin / chunkSize);\n var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n var curChunk;\n for (curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n if (!this.loadedChunks[curChunk]) {\n this.loadedChunks[curChunk] = true;\n ++this.numChunksLoaded;\n }\n }\n },\n onReceiveProgressiveData: function ChunkedStream_onReceiveProgressiveData(data) {\n var position = this.progressiveDataLength;\n var beginChunk = Math.floor(position / this.chunkSize);\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n var endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n var curChunk;\n for (curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n if (!this.loadedChunks[curChunk]) {\n this.loadedChunks[curChunk] = true;\n ++this.numChunksLoaded;\n }\n }\n },\n ensureByte: function ChunkedStream_ensureByte(pos) {\n var chunk = Math.floor(pos / this.chunkSize);\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n if (!this.loadedChunks[chunk]) {\n throw new _util.MissingDataException(pos, pos + 1);\n }\n this.lastSuccessfulEnsureByteChunk = chunk;\n },\n ensureRange: function ChunkedStream_ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\n if (end <= this.progressiveDataLength) {\n return;\n }\n var chunkSize = this.chunkSize;\n var beginChunk = Math.floor(begin / chunkSize);\n var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n throw new _util.MissingDataException(begin, end);\n }\n }\n },\n nextEmptyChunk: function ChunkedStream_nextEmptyChunk(beginChunk) {\n var chunk,\n numChunks = this.numChunks;\n for (var i = 0; i < numChunks; ++i) {\n chunk = (beginChunk + i) % numChunks;\n if (!this.loadedChunks[chunk]) {\n return chunk;\n }\n }\n return null;\n },\n hasChunk: function ChunkedStream_hasChunk(chunk) {\n return !!this.loadedChunks[chunk];\n },\n get length() {\n return this.end - this.start;\n },\n get isEmpty() {\n return this.length === 0;\n },\n getByte: function ChunkedStream_getByte() {\n var pos = this.pos;\n if (pos >= this.end) {\n return -1;\n }\n this.ensureByte(pos);\n return this.bytes[this.pos++];\n },\n getUint16: function ChunkedStream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n },\n getInt32: function ChunkedStream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n getBytes: function ChunkedStream_getBytes(length) {\n var bytes = this.bytes;\n var pos = this.pos;\n var strEnd = this.end;\n if (!length) {\n this.ensureRange(pos, strEnd);\n return bytes.subarray(pos, strEnd);\n }\n var end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.ensureRange(pos, end);\n this.pos = end;\n return bytes.subarray(pos, end);\n },\n peekByte: function ChunkedStream_peekByte() {\n var peekedByte = this.getByte();\n this.pos--;\n return peekedByte;\n },\n peekBytes: function ChunkedStream_peekBytes(length) {\n var bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n },\n getByteRange: function ChunkedStream_getBytes(begin, end) {\n this.ensureRange(begin, end);\n return this.bytes.subarray(begin, end);\n },\n skip: function ChunkedStream_skip(n) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n },\n reset: function ChunkedStream_reset() {\n this.pos = this.start;\n },\n moveStart: function ChunkedStream_moveStart() {\n this.start = this.pos;\n },\n makeSubStream: function ChunkedStream_makeSubStream(start, length, dict) {\n this.ensureRange(start, start + length);\n function ChunkedStreamSubstream() {}\n ChunkedStreamSubstream.prototype = Object.create(this);\n ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n var chunkSize = this.chunkSize;\n var beginChunk = Math.floor(this.start / chunkSize);\n var endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n var missingChunks = [];\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n missingChunks.push(chunk);\n }\n }\n return missingChunks;\n };\n var subStream = new ChunkedStreamSubstream();\n subStream.pos = subStream.start = start;\n subStream.end = start + length || this.end;\n subStream.dict = dict;\n return subStream;\n }\n };\n return ChunkedStream;\n }();\n var ChunkedStreamManager = function ChunkedStreamManagerClosure() {\n function ChunkedStreamManager(pdfNetworkStream, args) {\n var chunkSize = args.rangeChunkSize;\n var length = args.length;\n this.stream = new ChunkedStream(length, chunkSize, this);\n this.length = length;\n this.chunkSize = chunkSize;\n this.pdfNetworkStream = pdfNetworkStream;\n this.url = args.url;\n this.disableAutoFetch = args.disableAutoFetch;\n this.msgHandler = args.msgHandler;\n this.currRequestId = 0;\n this.chunksNeededByRequest = Object.create(null);\n this.requestsByChunk = Object.create(null);\n this.promisesByRequest = Object.create(null);\n this.progressiveDataLength = 0;\n this.aborted = false;\n this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n }\n ChunkedStreamManager.prototype = {\n onLoadedStream: function ChunkedStreamManager_getLoadedStream() {\n return this._loadedStreamCapability.promise;\n },\n sendRequest: function ChunkedStreamManager_sendRequest(begin, end) {\n var _this = this;\n var rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n if (!rangeReader.isStreamingSupported) {\n rangeReader.onProgress = this.onProgress.bind(this);\n }\n var chunks = [],\n loaded = 0;\n var manager = this;\n var promise = new Promise(function (resolve, reject) {\n var readChunk = function readChunk(chunk) {\n try {\n if (!chunk.done) {\n var data = chunk.value;\n chunks.push(data);\n loaded += (0, _util.arrayByteLength)(data);\n if (rangeReader.isStreamingSupported) {\n manager.onProgress({\n loaded: loaded\n });\n }\n rangeReader.read().then(readChunk, reject);\n return;\n }\n var chunkData = (0, _util.arraysToBytes)(chunks);\n chunks = null;\n resolve(chunkData);\n } catch (e) {\n reject(e);\n }\n };\n rangeReader.read().then(readChunk, reject);\n });\n promise.then(function (data) {\n if (_this.aborted) {\n return;\n }\n _this.onReceiveData({\n chunk: data,\n begin: begin\n });\n });\n },\n requestAllChunks: function ChunkedStreamManager_requestAllChunks() {\n var missingChunks = this.stream.getMissingChunks();\n this._requestChunks(missingChunks);\n return this._loadedStreamCapability.promise;\n },\n _requestChunks: function ChunkedStreamManager_requestChunks(chunks) {\n var requestId = this.currRequestId++;\n var i, ii;\n var chunksNeeded = Object.create(null);\n this.chunksNeededByRequest[requestId] = chunksNeeded;\n for (i = 0, ii = chunks.length; i < ii; i++) {\n if (!this.stream.hasChunk(chunks[i])) {\n chunksNeeded[chunks[i]] = true;\n }\n }\n if ((0, _util.isEmptyObj)(chunksNeeded)) {\n return Promise.resolve();\n }\n var capability = (0, _util.createPromiseCapability)();\n this.promisesByRequest[requestId] = capability;\n var chunksToRequest = [];\n for (var chunk in chunksNeeded) {\n chunk = chunk | 0;\n if (!(chunk in this.requestsByChunk)) {\n this.requestsByChunk[chunk] = [];\n chunksToRequest.push(chunk);\n }\n this.requestsByChunk[chunk].push(requestId);\n }\n if (!chunksToRequest.length) {\n return capability.promise;\n }\n var groupedChunksToRequest = this.groupChunks(chunksToRequest);\n for (i = 0; i < groupedChunksToRequest.length; ++i) {\n var groupedChunk = groupedChunksToRequest[i];\n var begin = groupedChunk.beginChunk * this.chunkSize;\n var end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n this.sendRequest(begin, end);\n }\n return capability.promise;\n },\n getStream: function ChunkedStreamManager_getStream() {\n return this.stream;\n },\n requestRange: function ChunkedStreamManager_requestRange(begin, end) {\n end = Math.min(end, this.length);\n var beginChunk = this.getBeginChunk(begin);\n var endChunk = this.getEndChunk(end);\n var chunks = [];\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n return this._requestChunks(chunks);\n },\n requestRanges: function ChunkedStreamManager_requestRanges(ranges) {\n ranges = ranges || [];\n var chunksToRequest = [];\n for (var i = 0; i < ranges.length; i++) {\n var beginChunk = this.getBeginChunk(ranges[i].begin);\n var endChunk = this.getEndChunk(ranges[i].end);\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (chunksToRequest.indexOf(chunk) < 0) {\n chunksToRequest.push(chunk);\n }\n }\n }\n chunksToRequest.sort(function (a, b) {\n return a - b;\n });\n return this._requestChunks(chunksToRequest);\n },\n groupChunks: function ChunkedStreamManager_groupChunks(chunks) {\n var groupedChunks = [];\n var beginChunk = -1;\n var prevChunk = -1;\n for (var i = 0; i < chunks.length; ++i) {\n var chunk = chunks[i];\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({\n beginChunk: beginChunk,\n endChunk: prevChunk + 1\n });\n beginChunk = chunk;\n }\n if (i + 1 === chunks.length) {\n groupedChunks.push({\n beginChunk: beginChunk,\n endChunk: chunk + 1\n });\n }\n prevChunk = chunk;\n }\n return groupedChunks;\n },\n onProgress: function ChunkedStreamManager_onProgress(args) {\n var bytesLoaded = this.stream.numChunksLoaded * this.chunkSize + args.loaded;\n this.msgHandler.send('DocProgress', {\n loaded: bytesLoaded,\n total: this.length\n });\n },\n onReceiveData: function ChunkedStreamManager_onReceiveData(args) {\n var chunk = args.chunk;\n var isProgressive = args.begin === undefined;\n var begin = isProgressive ? this.progressiveDataLength : args.begin;\n var end = begin + chunk.byteLength;\n var beginChunk = Math.floor(begin / this.chunkSize);\n var endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize);\n if (isProgressive) {\n this.stream.onReceiveProgressiveData(chunk);\n this.progressiveDataLength = end;\n } else {\n this.stream.onReceiveData(begin, chunk);\n }\n if (this.stream.allChunksLoaded()) {\n this._loadedStreamCapability.resolve(this.stream);\n }\n var loadedRequests = [];\n var i, requestId;\n for (chunk = beginChunk; chunk < endChunk; ++chunk) {\n var requestIds = this.requestsByChunk[chunk] || [];\n delete this.requestsByChunk[chunk];\n for (i = 0; i < requestIds.length; ++i) {\n requestId = requestIds[i];\n var chunksNeeded = this.chunksNeededByRequest[requestId];\n if (chunk in chunksNeeded) {\n delete chunksNeeded[chunk];\n }\n if (!(0, _util.isEmptyObj)(chunksNeeded)) {\n continue;\n }\n loadedRequests.push(requestId);\n }\n }\n if (!this.disableAutoFetch && (0, _util.isEmptyObj)(this.requestsByChunk)) {\n var nextEmptyChunk;\n if (this.stream.numChunksLoaded === 1) {\n var lastChunk = this.stream.numChunks - 1;\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n if ((0, _util.isInt)(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n for (i = 0; i < loadedRequests.length; ++i) {\n requestId = loadedRequests[i];\n var capability = this.promisesByRequest[requestId];\n delete this.promisesByRequest[requestId];\n capability.resolve();\n }\n this.msgHandler.send('DocProgress', {\n loaded: this.stream.numChunksLoaded * this.chunkSize,\n total: this.length\n });\n },\n onError: function ChunkedStreamManager_onError(err) {\n this._loadedStreamCapability.reject(err);\n },\n getBeginChunk: function ChunkedStreamManager_getBeginChunk(begin) {\n var chunk = Math.floor(begin / this.chunkSize);\n return chunk;\n },\n getEndChunk: function ChunkedStreamManager_getEndChunk(end) {\n var chunk = Math.floor((end - 1) / this.chunkSize) + 1;\n return chunk;\n },\n abort: function ChunkedStreamManager_abort() {\n this.aborted = true;\n if (this.pdfNetworkStream) {\n this.pdfNetworkStream.cancelAllRequests('abort');\n }\n for (var requestId in this.promisesByRequest) {\n var capability = this.promisesByRequest[requestId];\n capability.reject(new Error('Request was aborted'));\n }\n }\n };\n return ChunkedStreamManager;\n }();\n exports.ChunkedStream = ChunkedStream;\n exports.ChunkedStreamManager = ChunkedStreamManager;\n\n /***/\n }, /* 55 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = undefined;\n var _util = __w_pdfjs_require__(0);\n var _primitives = __w_pdfjs_require__(1);\n var _stream = __w_pdfjs_require__(3);\n var ARCFourCipher = function ARCFourCipherClosure() {\n function ARCFourCipher(key) {\n this.a = 0;\n this.b = 0;\n var s = new Uint8Array(256);\n var i,\n j = 0,\n tmp,\n keyLength = key.length;\n for (i = 0; i < 256; ++i) {\n s[i] = i;\n }\n for (i = 0; i < 256; ++i) {\n tmp = s[i];\n j = j + tmp + key[i % keyLength] & 0xFF;\n s[i] = s[j];\n s[j] = tmp;\n }\n this.s = s;\n }\n ARCFourCipher.prototype = {\n encryptBlock: function ARCFourCipher_encryptBlock(data) {\n var i,\n n = data.length,\n tmp,\n tmp2;\n var a = this.a,\n b = this.b,\n s = this.s;\n var output = new Uint8Array(n);\n for (i = 0; i < n; ++i) {\n a = a + 1 & 0xFF;\n tmp = s[a];\n b = b + tmp & 0xFF;\n tmp2 = s[b];\n s[a] = tmp2;\n s[b] = tmp;\n output[i] = data[i] ^ s[tmp + tmp2 & 0xFF];\n }\n this.a = a;\n this.b = b;\n return output;\n }\n };\n ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;\n return ARCFourCipher;\n }();\n var calculateMD5 = function calculateMD5Closure() {\n var r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);\n var k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]);\n function hash(data, offset, length) {\n var h0 = 1732584193,\n h1 = -271733879,\n h2 = -1732584194,\n h3 = 271733878;\n var paddedLength = length + 72 & ~63;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = length << 3 & 0xFF;\n padded[i++] = length >> 5 & 0xFF;\n padded[i++] = length >> 13 & 0xFF;\n padded[i++] = length >> 21 & 0xFF;\n padded[i++] = length >>> 29 & 0xFF;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n var w = new Int32Array(16);\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n }\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n for (j = 0; j < 64; ++j) {\n if (j < 16) {\n f = b & c | ~b & d;\n g = j;\n } else if (j < 32) {\n f = d & b | ~d & c;\n g = 5 * j + 1 & 15;\n } else if (j < 48) {\n f = b ^ c ^ d;\n g = 3 * j + 5 & 15;\n } else {\n f = c ^ (b | ~d);\n g = 7 * j & 15;\n }\n var tmp = d,\n rotateArg = a + f + k[j] + w[g] | 0,\n rotate = r[j];\n d = c;\n c = b;\n b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0;\n a = tmp;\n }\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n }\n return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]);\n }\n return hash;\n }();\n var Word64 = function Word64Closure() {\n function Word64(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n Word64.prototype = {\n and: function Word64_and(word) {\n this.high &= word.high;\n this.low &= word.low;\n },\n xor: function Word64_xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n },\n or: function Word64_or(word) {\n this.high |= word.high;\n this.low |= word.low;\n },\n shiftRight: function Word64_shiftRight(places) {\n if (places >= 32) {\n this.low = this.high >>> places - 32 | 0;\n this.high = 0;\n } else {\n this.low = this.low >>> places | this.high << 32 - places;\n this.high = this.high >>> places | 0;\n }\n },\n shiftLeft: function Word64_shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << places - 32;\n this.low = 0;\n } else {\n this.high = this.high << places | this.low >>> 32 - places;\n this.low = this.low << places;\n }\n },\n rotateRight: function Word64_rotateRight(places) {\n var low, high;\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n places &= 31;\n this.low = low >>> places | high << 32 - places;\n this.high = high >>> places | low << 32 - places;\n },\n not: function Word64_not() {\n this.high = ~this.high;\n this.low = ~this.low;\n },\n add: function Word64_add(word) {\n var lowAdd = (this.low >>> 0) + (word.low >>> 0);\n var highAdd = (this.high >>> 0) + (word.high >>> 0);\n if (lowAdd > 0xFFFFFFFF) {\n highAdd += 1;\n }\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\n },\n copyTo: function Word64_copyTo(bytes, offset) {\n bytes[offset] = this.high >>> 24 & 0xFF;\n bytes[offset + 1] = this.high >> 16 & 0xFF;\n bytes[offset + 2] = this.high >> 8 & 0xFF;\n bytes[offset + 3] = this.high & 0xFF;\n bytes[offset + 4] = this.low >>> 24 & 0xFF;\n bytes[offset + 5] = this.low >> 16 & 0xFF;\n bytes[offset + 6] = this.low >> 8 & 0xFF;\n bytes[offset + 7] = this.low & 0xFF;\n },\n assign: function Word64_assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n };\n return Word64;\n }();\n var calculateSHA256 = function calculateSHA256Closure() {\n function rotr(x, n) {\n return x >>> n | x << 32 - n;\n }\n function ch(x, y, z) {\n return x & y ^ ~x & z;\n }\n function maj(x, y, z) {\n return x & y ^ x & z ^ y & z;\n }\n function sigma(x) {\n return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n }\n function sigmaPrime(x) {\n return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n }\n function littleSigma(x) {\n return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;\n }\n function littleSigmaPrime(x) {\n return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10;\n }\n var k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n function hash(data, offset, length) {\n var h0 = 0x6a09e667,\n h1 = 0xbb67ae85,\n h2 = 0x3c6ef372,\n h3 = 0xa54ff53a,\n h4 = 0x510e527f,\n h5 = 0x9b05688c,\n h6 = 0x1f83d9ab,\n h7 = 0x5be0cd19;\n var paddedLength = Math.ceil((length + 9) / 64) * 64;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = length >>> 29 & 0xFF;\n padded[i++] = length >> 21 & 0xFF;\n padded[i++] = length >> 13 & 0xFF;\n padded[i++] = length >> 5 & 0xFF;\n padded[i++] = length << 3 & 0xFF;\n var w = new Uint32Array(64);\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j) {\n w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n i += 4;\n }\n for (j = 16; j < 64; ++j) {\n w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0;\n }\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n t1,\n t2;\n for (j = 0; j < 64; ++j) {\n t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n t2 = sigma(a) + maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n h4 = h4 + e | 0;\n h5 = h5 + f | 0;\n h6 = h6 + g | 0;\n h7 = h7 + h | 0;\n }\n return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]);\n }\n return hash;\n }();\n var calculateSHA512 = function calculateSHA512Closure() {\n function ch(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.not();\n tmp.and(z);\n result.xor(tmp);\n }\n function maj(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.and(z);\n result.xor(tmp);\n tmp.assign(y);\n tmp.and(z);\n result.xor(tmp);\n }\n function sigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(28);\n tmp.assign(x);\n tmp.rotateRight(34);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(39);\n result.xor(tmp);\n }\n function sigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(14);\n tmp.assign(x);\n tmp.rotateRight(18);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(41);\n result.xor(tmp);\n }\n function littleSigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(1);\n tmp.assign(x);\n tmp.rotateRight(8);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(7);\n result.xor(tmp);\n }\n function littleSigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(19);\n tmp.assign(x);\n tmp.rotateRight(61);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(6);\n result.xor(tmp);\n }\n var k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n function hash(data, offset, length, mode384) {\n mode384 = !!mode384;\n var h0, h1, h2, h3, h4, h5, h6, h7;\n if (!mode384) {\n h0 = new Word64(0x6a09e667, 0xf3bcc908);\n h1 = new Word64(0xbb67ae85, 0x84caa73b);\n h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n h4 = new Word64(0x510e527f, 0xade682d1);\n h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n h7 = new Word64(0x5be0cd19, 0x137e2179);\n } else {\n h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n h1 = new Word64(0x629a292a, 0x367cd507);\n h2 = new Word64(0x9159015a, 0x3070dd17);\n h3 = new Word64(0x152fecd8, 0xf70e5939);\n h4 = new Word64(0x67332667, 0xffc00b31);\n h5 = new Word64(0x8eb44a87, 0x68581511);\n h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n }\n var paddedLength = Math.ceil((length + 17) / 128) * 128;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n n = paddedLength - 16;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = length >>> 29 & 0xFF;\n padded[i++] = length >> 21 & 0xFF;\n padded[i++] = length >> 13 & 0xFF;\n padded[i++] = length >> 5 & 0xFF;\n padded[i++] = length << 3 & 0xFF;\n var w = new Array(80);\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\n var a = new Word64(0, 0),\n b = new Word64(0, 0),\n c = new Word64(0, 0);\n var d = new Word64(0, 0),\n e = new Word64(0, 0),\n f = new Word64(0, 0);\n var g = new Word64(0, 0),\n h = new Word64(0, 0);\n var t1 = new Word64(0, 0),\n t2 = new Word64(0, 0);\n var tmp1 = new Word64(0, 0),\n tmp2 = new Word64(0, 0),\n tmp3;\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j) {\n w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7];\n i += 8;\n }\n for (j = 16; j < 80; ++j) {\n tmp3 = w[j];\n littleSigmaPrime(tmp3, w[j - 2], tmp2);\n tmp3.add(w[j - 7]);\n littleSigma(tmp1, w[j - 15], tmp2);\n tmp3.add(tmp1);\n tmp3.add(w[j - 16]);\n }\n a.assign(h0);\n b.assign(h1);\n c.assign(h2);\n d.assign(h3);\n e.assign(h4);\n f.assign(h5);\n g.assign(h6);\n h.assign(h7);\n for (j = 0; j < 80; ++j) {\n t1.assign(h);\n sigmaPrime(tmp1, e, tmp2);\n t1.add(tmp1);\n ch(tmp1, e, f, g, tmp2);\n t1.add(tmp1);\n t1.add(k[j]);\n t1.add(w[j]);\n sigma(t2, a, tmp2);\n maj(tmp1, a, b, c, tmp2);\n t2.add(tmp1);\n tmp3 = h;\n h = g;\n g = f;\n f = e;\n d.add(t1);\n e = d;\n d = c;\n c = b;\n b = a;\n tmp3.assign(t1);\n tmp3.add(t2);\n a = tmp3;\n }\n h0.add(a);\n h1.add(b);\n h2.add(c);\n h3.add(d);\n h4.add(e);\n h5.add(f);\n h6.add(g);\n h7.add(h);\n }\n var result;\n if (!mode384) {\n result = new Uint8Array(64);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n h6.copyTo(result, 48);\n h7.copyTo(result, 56);\n } else {\n result = new Uint8Array(48);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n }\n return result;\n }\n return hash;\n }();\n var calculateSHA384 = function calculateSHA384Closure() {\n function hash(data, offset, length) {\n return calculateSHA512(data, offset, length, true);\n }\n return hash;\n }();\n var NullCipher = function NullCipherClosure() {\n function NullCipher() {}\n NullCipher.prototype = {\n decryptBlock: function NullCipher_decryptBlock(data) {\n return data;\n }\n };\n return NullCipher;\n }();\n var AES128Cipher = function AES128CipherClosure() {\n var rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]);\n var s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n var inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n var mixCol = new Uint8Array(256);\n for (var i = 0; i < 256; i++) {\n if (i < 128) {\n mixCol[i] = i << 1;\n } else {\n mixCol[i] = i << 1 ^ 0x1b;\n }\n }\n var mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n function expandKey128(cipherKey) {\n var b = 176,\n result = new Uint8Array(b);\n result.set(cipherKey);\n for (var j = 16, i = 1; j < b; ++i) {\n var t1 = result[j - 3],\n t2 = result[j - 2],\n t3 = result[j - 1],\n t4 = result[j - 4];\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n t1 = t1 ^ rcon[i];\n for (var n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 16];\n j++;\n result[j] = t2 ^= result[j - 16];\n j++;\n result[j] = t3 ^= result[j - 16];\n j++;\n result[j] = t4 ^= result[j - 16];\n j++;\n }\n }\n return result;\n }\n function decrypt128(input, key) {\n var state = new Uint8Array(16);\n state.set(input);\n var i, j, k;\n var t, u, v;\n for (j = 0, k = 160; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (i = 9; i >= 1; --i) {\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (j = 0; j < 16; ++j) {\n state[j] = inv_s[state[j]];\n }\n for (j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (j = 0; j < 16; j += 4) {\n var s0 = mix[state[j]],\n s1 = mix[state[j + 1]],\n s2 = mix[state[j + 2]],\n s3 = mix[state[j + 3]];\n t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n state[j] = t >>> 24 & 0xFF;\n state[j + 1] = t >> 16 & 0xFF;\n state[j + 2] = t >> 8 & 0xFF;\n state[j + 3] = t & 0xFF;\n }\n }\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (j = 0; j < 16; ++j) {\n state[j] = inv_s[state[j]];\n state[j] ^= key[j];\n }\n return state;\n }\n function encrypt128(input, key) {\n var t, u, v, k;\n var state = new Uint8Array(16);\n state.set(input);\n for (j = 0; j < 16; ++j) {\n state[j] ^= key[j];\n }\n for (i = 1; i < 10; i++) {\n for (j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n for (var j = 0; j < 16; j += 4) {\n var s0 = state[j + 0],\n s1 = state[j + 1];\n var s2 = state[j + 2],\n s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ mixCol[s3 ^ s0];\n }\n for (j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n for (j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n for (j = 0, k = 160; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n return state;\n }\n function AES128Cipher(key) {\n this.key = expandKey128(key);\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n function decryptBlock2(data, finalize) {\n var i,\n j,\n ii,\n sourceLength = data.length,\n buffer = this.buffer,\n bufferLength = this.bufferPosition,\n result = [],\n iv = this.iv;\n for (i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n var plain = decrypt128(buffer, this.key);\n for (j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array([]);\n }\n var outputLength = 16 * result.length;\n if (finalize) {\n var lastBlock = result[result.length - 1];\n var psLen = lastBlock[15];\n if (psLen <= 16) {\n for (i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n psLen = 0;\n break;\n }\n }\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n var output = new Uint8Array(outputLength);\n for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n AES128Cipher.prototype = {\n decryptBlock: function AES128Cipher_decryptBlock(data, finalize) {\n var i,\n sourceLength = data.length;\n var buffer = this.buffer,\n bufferLength = this.bufferPosition;\n for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n buffer[bufferLength] = data[i];\n }\n if (bufferLength < 16) {\n this.bufferLength = bufferLength;\n return new Uint8Array([]);\n }\n this.iv = buffer;\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n this.decryptBlock = decryptBlock2;\n return this.decryptBlock(data.subarray(16), finalize);\n },\n encrypt: function AES128Cipher_encrypt(data, iv) {\n var i,\n j,\n ii,\n sourceLength = data.length,\n buffer = this.buffer,\n bufferLength = this.bufferPosition,\n result = [];\n if (!iv) {\n iv = new Uint8Array(16);\n }\n for (i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n for (j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n var cipher = encrypt128(buffer, this.key);\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array([]);\n }\n var outputLength = 16 * result.length;\n var output = new Uint8Array(outputLength);\n for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n };\n return AES128Cipher;\n }();\n var AES256Cipher = function AES256CipherClosure() {\n var s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n var inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n var mixCol = new Uint8Array(256);\n for (var i = 0; i < 256; i++) {\n if (i < 128) {\n mixCol[i] = i << 1;\n } else {\n mixCol[i] = i << 1 ^ 0x1b;\n }\n }\n var mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n function expandKey256(cipherKey) {\n var b = 240,\n result = new Uint8Array(b);\n var r = 1;\n result.set(cipherKey);\n for (var j = 32, i = 1; j < b; ++i) {\n if (j % 32 === 16) {\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n } else if (j % 32 === 0) {\n var t1 = result[j - 3],\n t2 = result[j - 2],\n t3 = result[j - 1],\n t4 = result[j - 4];\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n t1 = t1 ^ r;\n if ((r <<= 1) >= 256) {\n r = (r ^ 0x1b) & 0xFF;\n }\n }\n for (var n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 32];\n j++;\n result[j] = t2 ^= result[j - 32];\n j++;\n result[j] = t3 ^= result[j - 32];\n j++;\n result[j] = t4 ^= result[j - 32];\n j++;\n }\n }\n return result;\n }\n function decrypt256(input, key) {\n var state = new Uint8Array(16);\n state.set(input);\n var i, j, k;\n var t, u, v;\n for (j = 0, k = 224; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (i = 13; i >= 1; --i) {\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (j = 0; j < 16; ++j) {\n state[j] = inv_s[state[j]];\n }\n for (j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (j = 0; j < 16; j += 4) {\n var s0 = mix[state[j]],\n s1 = mix[state[j + 1]],\n s2 = mix[state[j + 2]],\n s3 = mix[state[j + 3]];\n t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n state[j] = t >>> 24 & 0xFF;\n state[j + 1] = t >> 16 & 0xFF;\n state[j + 2] = t >> 8 & 0xFF;\n state[j + 3] = t & 0xFF;\n }\n }\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (j = 0; j < 16; ++j) {\n state[j] = inv_s[state[j]];\n state[j] ^= key[j];\n }\n return state;\n }\n function encrypt256(input, key) {\n var t, u, v, k;\n var state = new Uint8Array(16);\n state.set(input);\n for (j = 0; j < 16; ++j) {\n state[j] ^= key[j];\n }\n for (i = 1; i < 14; i++) {\n for (j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n for (var j = 0; j < 16; j += 4) {\n var s0 = state[j + 0],\n s1 = state[j + 1];\n var s2 = state[j + 2],\n s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ mixCol[s3 ^ s0];\n }\n for (j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n for (j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n for (j = 0, k = 224; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n return state;\n }\n function AES256Cipher(key) {\n this.key = expandKey256(key);\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n function decryptBlock2(data, finalize) {\n var i,\n j,\n ii,\n sourceLength = data.length,\n buffer = this.buffer,\n bufferLength = this.bufferPosition,\n result = [],\n iv = this.iv;\n for (i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n var plain = decrypt256(buffer, this.key);\n for (j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array([]);\n }\n var outputLength = 16 * result.length;\n if (finalize) {\n var lastBlock = result[result.length - 1];\n var psLen = lastBlock[15];\n if (psLen <= 16) {\n for (i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n psLen = 0;\n break;\n }\n }\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n var output = new Uint8Array(outputLength);\n for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n AES256Cipher.prototype = {\n decryptBlock: function AES256Cipher_decryptBlock(data, finalize, iv) {\n var i,\n sourceLength = data.length;\n var buffer = this.buffer,\n bufferLength = this.bufferPosition;\n if (iv) {\n this.iv = iv;\n } else {\n for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n buffer[bufferLength] = data[i];\n }\n if (bufferLength < 16) {\n this.bufferLength = bufferLength;\n return new Uint8Array([]);\n }\n this.iv = buffer;\n data = data.subarray(16);\n }\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n this.decryptBlock = decryptBlock2;\n return this.decryptBlock(data, finalize);\n },\n encrypt: function AES256Cipher_encrypt(data, iv) {\n var i,\n j,\n ii,\n sourceLength = data.length,\n buffer = this.buffer,\n bufferLength = this.bufferPosition,\n result = [];\n if (!iv) {\n iv = new Uint8Array(16);\n }\n for (i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n for (j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n var cipher = encrypt256(buffer, this.key);\n this.iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array([]);\n }\n var outputLength = 16 * result.length;\n var output = new Uint8Array(outputLength);\n for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n };\n return AES256Cipher;\n }();\n var PDF17 = function PDF17Closure() {\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n function PDF17() {}\n PDF17.prototype = {\n checkOwnerPassword: function PDF17_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n var result = calculateSHA256(hashData, 0, hashData.length);\n return compareByteArrays(result, ownerPassword);\n },\n checkUserPassword: function PDF17_checkUserPassword(password, userValidationSalt, userPassword) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n var result = calculateSHA256(hashData, 0, hashData.length);\n return compareByteArrays(result, userPassword);\n },\n getOwnerKey: function PDF17_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n var key = calculateSHA256(hashData, 0, hashData.length);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n },\n getUserKey: function PDF17_getUserKey(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n var key = calculateSHA256(hashData, 0, hashData.length);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n };\n return PDF17;\n }();\n var PDF20 = function PDF20Closure() {\n function concatArrays(array1, array2) {\n var t = new Uint8Array(array1.length + array2.length);\n t.set(array1, 0);\n t.set(array2, array1.length);\n return t;\n }\n function calculatePDF20Hash(password, input, userBytes) {\n var k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n var e = [0];\n var i = 0;\n while (i < 64 || e[e.length - 1] > i - 32) {\n var arrayLength = password.length + k.length + userBytes.length;\n var k1 = new Uint8Array(arrayLength * 64);\n var array = concatArrays(password, k);\n array = concatArrays(array, userBytes);\n for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) {\n k1.set(array, pos);\n }\n var cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n var remainder = 0;\n for (var z = 0; z < 16; z++) {\n remainder *= 256 % 3;\n remainder %= 3;\n remainder += (e[z] >>> 0) % 3;\n remainder %= 3;\n }\n if (remainder === 0) {\n k = calculateSHA256(e, 0, e.length);\n } else if (remainder === 1) {\n k = calculateSHA384(e, 0, e.length);\n } else if (remainder === 2) {\n k = calculateSHA512(e, 0, e.length);\n }\n i++;\n }\n return k.subarray(0, 32);\n }\n function PDF20() {}\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n PDF20.prototype = {\n hash: function PDF20_hash(password, concatBytes, userBytes) {\n return calculatePDF20Hash(password, concatBytes, userBytes);\n },\n checkOwnerPassword: function PDF20_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n var result = calculatePDF20Hash(password, hashData, userBytes);\n return compareByteArrays(result, ownerPassword);\n },\n checkUserPassword: function PDF20_checkUserPassword(password, userValidationSalt, userPassword) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n var result = calculatePDF20Hash(password, hashData, []);\n return compareByteArrays(result, userPassword);\n },\n getOwnerKey: function PDF20_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n var key = calculatePDF20Hash(password, hashData, userBytes);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n },\n getUserKey: function PDF20_getUserKey(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n var key = calculatePDF20Hash(password, hashData, []);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n };\n return PDF20;\n }();\n var CipherTransform = function CipherTransformClosure() {\n function CipherTransform(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n CipherTransform.prototype = {\n createStream: function CipherTransform_createStream(stream, length) {\n var cipher = new this.StreamCipherConstructor();\n return new _stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n });\n },\n decryptString: function CipherTransform_decryptString(s) {\n var cipher = new this.StringCipherConstructor();\n var data = (0, _util.stringToBytes)(s);\n data = cipher.decryptBlock(data, true);\n return (0, _util.bytesToString)(data);\n }\n };\n return CipherTransform;\n }();\n var CipherTransformFactory = function CipherTransformFactoryClosure() {\n var defaultPasswordBytes = new Uint8Array([0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]);\n function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) {\n if (password) {\n var passwordLength = Math.min(127, password.length);\n password = password.subarray(0, passwordLength);\n } else {\n password = [];\n }\n var pdfAlgorithm;\n if (revision === 6) {\n pdfAlgorithm = new PDF20();\n } else {\n pdfAlgorithm = new PDF17();\n }\n if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {\n return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) {\n return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);\n }\n return null;\n }\n function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) {\n var hashDataSize = 40 + ownerPassword.length + fileId.length;\n var hashData = new Uint8Array(hashDataSize),\n i = 0,\n j,\n n;\n if (password) {\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\n hashData[i++] = flags & 0xFF;\n hashData[i++] = flags >> 8 & 0xFF;\n hashData[i++] = flags >> 16 & 0xFF;\n hashData[i++] = flags >>> 24 & 0xFF;\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xFF;\n hashData[i++] = 0xFF;\n hashData[i++] = 0xFF;\n hashData[i++] = 0xFF;\n }\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\n }\n var encryptionKey = hash.subarray(0, keyLengthInBytes);\n var cipher, checkData;\n if (revision >= 3) {\n for (i = 0; i < 32; ++i) {\n hashData[i] = defaultPasswordBytes[i];\n }\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n n = encryptionKey.length;\n var derivedKey = new Uint8Array(n),\n k;\n for (j = 1; j <= 19; ++j) {\n for (k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n } else {\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(defaultPasswordBytes);\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n }\n return encryptionKey;\n }\n function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n var hashData = new Uint8Array(32),\n i = 0,\n j,\n n;\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, hash.length);\n }\n }\n var cipher, userPassword;\n if (revision >= 3) {\n userPassword = ownerPassword;\n var derivedKey = new Uint8Array(keyLengthInBytes),\n k;\n for (j = 19; j >= 0; j--) {\n for (k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n userPassword = cipher.encryptBlock(userPassword);\n }\n } else {\n cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n userPassword = cipher.encryptBlock(ownerPassword);\n }\n return userPassword;\n }\n var identityName = _primitives.Name.get('Identity');\n function CipherTransformFactory(dict, fileId, password) {\n var filter = dict.get('Filter');\n if (!(0, _primitives.isName)(filter, 'Standard')) {\n throw new _util.FormatError('unknown encryption method');\n }\n this.dict = dict;\n var algorithm = dict.get('V');\n if (!(0, _util.isInt)(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n throw new _util.FormatError('unsupported encryption algorithm');\n }\n this.algorithm = algorithm;\n var keyLength = dict.get('Length');\n if (!keyLength) {\n if (algorithm <= 3) {\n keyLength = 40;\n } else {\n var cfDict = dict.get('CF');\n var streamCryptoName = dict.get('StmF');\n if ((0, _primitives.isDict)(cfDict) && (0, _primitives.isName)(streamCryptoName)) {\n cfDict.suppressEncryption = true;\n var handlerDict = cfDict.get(streamCryptoName.name);\n keyLength = handlerDict && handlerDict.get('Length') || 128;\n if (keyLength < 40) {\n keyLength <<= 3;\n }\n }\n }\n }\n if (!(0, _util.isInt)(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n throw new _util.FormatError('invalid key length');\n }\n var ownerPassword = (0, _util.stringToBytes)(dict.get('O')).subarray(0, 32);\n var userPassword = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 32);\n var flags = dict.get('P');\n var revision = dict.get('R');\n var encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get('EncryptMetadata') !== false;\n this.encryptMetadata = encryptMetadata;\n var fileIdBytes = (0, _util.stringToBytes)(fileId);\n var passwordBytes;\n if (password) {\n if (revision === 6) {\n try {\n password = (0, _util.utf8StringToString)(password);\n } catch (ex) {\n (0, _util.warn)('CipherTransformFactory: ' + 'Unable to convert UTF8 encoded password.');\n }\n }\n passwordBytes = (0, _util.stringToBytes)(password);\n }\n var encryptionKey;\n if (algorithm !== 5) {\n encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n } else {\n var ownerValidationSalt = (0, _util.stringToBytes)(dict.get('O')).subarray(32, 40);\n var ownerKeySalt = (0, _util.stringToBytes)(dict.get('O')).subarray(40, 48);\n var uBytes = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 48);\n var userValidationSalt = (0, _util.stringToBytes)(dict.get('U')).subarray(32, 40);\n var userKeySalt = (0, _util.stringToBytes)(dict.get('U')).subarray(40, 48);\n var ownerEncryption = (0, _util.stringToBytes)(dict.get('OE'));\n var userEncryption = (0, _util.stringToBytes)(dict.get('UE'));\n var perms = (0, _util.stringToBytes)(dict.get('Perms'));\n encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms);\n }\n if (!encryptionKey && !password) {\n throw new _util.PasswordException('No password given', _util.PasswordResponses.NEED_PASSWORD);\n } else if (!encryptionKey && password) {\n var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength);\n encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n }\n if (!encryptionKey) {\n throw new _util.PasswordException('Incorrect Password', _util.PasswordResponses.INCORRECT_PASSWORD);\n }\n this.encryptionKey = encryptionKey;\n if (algorithm >= 4) {\n var cf = dict.get('CF');\n if ((0, _primitives.isDict)(cf)) {\n cf.suppressEncryption = true;\n }\n this.cf = cf;\n this.stmf = dict.get('StmF') || identityName;\n this.strf = dict.get('StrF') || identityName;\n this.eff = dict.get('EFF') || this.stmf;\n }\n }\n function buildObjectKey(num, gen, encryptionKey, isAes) {\n var key = new Uint8Array(encryptionKey.length + 9),\n i,\n n;\n for (i = 0, n = encryptionKey.length; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\n key[i++] = num & 0xFF;\n key[i++] = num >> 8 & 0xFF;\n key[i++] = num >> 16 & 0xFF;\n key[i++] = gen & 0xFF;\n key[i++] = gen >> 8 & 0xFF;\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6C;\n key[i++] = 0x54;\n }\n var hash = calculateMD5(key, 0, i);\n return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n }\n function buildCipherConstructor(cf, name, num, gen, key) {\n if (!(0, _primitives.isName)(name)) {\n throw new _util.FormatError('Invalid crypt filter name.');\n }\n var cryptFilter = cf.get(name.name);\n var cfm;\n if (cryptFilter !== null && cryptFilter !== undefined) {\n cfm = cryptFilter.get('CFM');\n }\n if (!cfm || cfm.name === 'None') {\n return function cipherTransformFactoryBuildCipherConstructorNone() {\n return new NullCipher();\n };\n }\n if (cfm.name === 'V2') {\n return function cipherTransformFactoryBuildCipherConstructorV2() {\n return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n };\n }\n if (cfm.name === 'AESV2') {\n return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n return new AES128Cipher(buildObjectKey(num, gen, key, true));\n };\n }\n if (cfm.name === 'AESV3') {\n return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n return new AES256Cipher(key);\n };\n }\n throw new _util.FormatError('Unknown crypto method');\n }\n CipherTransformFactory.prototype = {\n createCipherTransform: function CipherTransformFactory_createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey));\n }\n var key = buildObjectKey(num, gen, this.encryptionKey, false);\n var cipherConstructor = function buildCipherCipherConstructor() {\n return new ARCFourCipher(key);\n };\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n };\n return CipherTransformFactory;\n }();\n exports.AES128Cipher = AES128Cipher;\n exports.AES256Cipher = AES256Cipher;\n exports.ARCFourCipher = ARCFourCipher;\n exports.CipherTransformFactory = CipherTransformFactory;\n exports.PDF17 = PDF17;\n exports.PDF20 = PDF20;\n exports.calculateMD5 = calculateMD5;\n exports.calculateSHA256 = calculateSHA256;\n exports.calculateSHA384 = calculateSHA384;\n exports.calculateSHA512 = calculateSHA512;\n\n /***/\n }, /* 56 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PartialEvaluator = exports.OperatorList = undefined;\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _util = __w_pdfjs_require__(0);\n var _cmap = __w_pdfjs_require__(90);\n var _stream = __w_pdfjs_require__(3);\n var _primitives = __w_pdfjs_require__(1);\n var _fonts = __w_pdfjs_require__(93);\n var _encodings = __w_pdfjs_require__(16);\n var _unicode = __w_pdfjs_require__(60);\n var _standard_fonts = __w_pdfjs_require__(59);\n var _pattern = __w_pdfjs_require__(99);\n var _function = __w_pdfjs_require__(32);\n var _parser = __w_pdfjs_require__(23);\n var _bidi = __w_pdfjs_require__(88);\n var _colorspace = __w_pdfjs_require__(15);\n var _glyphlist = __w_pdfjs_require__(33);\n var _metrics = __w_pdfjs_require__(97);\n var _murmurhash = __w_pdfjs_require__(98);\n var _image = __w_pdfjs_require__(94);\n var PartialEvaluator = function PartialEvaluatorClosure() {\n var DefaultPartialEvaluatorOptions = {\n forceDataSchema: false,\n maxImageSize: -1,\n disableFontFace: false,\n nativeImageDecoderSupport: _util.NativeImageDecoding.DECODE,\n ignoreErrors: false\n };\n function NativeImageDecoder(xref, resources, handler, forceDataSchema) {\n this.xref = xref;\n this.resources = resources;\n this.handler = handler;\n this.forceDataSchema = forceDataSchema;\n }\n NativeImageDecoder.prototype = {\n canDecode: function canDecode(image) {\n return image instanceof _stream.JpegStream && NativeImageDecoder.isDecodable(image, this.xref, this.resources);\n },\n decode: function decode(image) {\n var dict = image.dict;\n var colorSpace = dict.get('ColorSpace', 'CS');\n colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, this.resources);\n var numComps = colorSpace.numComps;\n var decodePromise = this.handler.sendWithPromise('JpegDecode', [image.getIR(this.forceDataSchema), numComps]);\n return decodePromise.then(function (message) {\n var data = message.data;\n return new _stream.Stream(data, 0, data.length, image.dict);\n });\n }\n };\n NativeImageDecoder.isSupported = function NativeImageDecoder_isSupported(image, xref, res) {\n var dict = image.dict;\n if (dict.has('DecodeParms') || dict.has('DP')) {\n return false;\n }\n var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res);\n return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && cs.isDefaultDecode(dict.getArray('Decode', 'D'));\n };\n NativeImageDecoder.isDecodable = function NativeImageDecoder_isDecodable(image, xref, res) {\n var dict = image.dict;\n if (dict.has('DecodeParms') || dict.has('DP')) {\n return false;\n }\n var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res);\n return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray('Decode', 'D'));\n };\n function PartialEvaluator(_ref) {\n var _this = this;\n var pdfManager = _ref.pdfManager,\n xref = _ref.xref,\n handler = _ref.handler,\n pageIndex = _ref.pageIndex,\n idFactory = _ref.idFactory,\n fontCache = _ref.fontCache,\n builtInCMapCache = _ref.builtInCMapCache,\n _ref$options = _ref.options,\n options = _ref$options === undefined ? null : _ref$options;\n this.pdfManager = pdfManager;\n this.xref = xref;\n this.handler = handler;\n this.pageIndex = pageIndex;\n this.idFactory = idFactory;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.options = options || DefaultPartialEvaluatorOptions;\n this.fetchBuiltInCMap = function (name) {\n var cachedCMap = _this.builtInCMapCache[name];\n if (cachedCMap) {\n return Promise.resolve(cachedCMap);\n }\n return _this.handler.sendWithPromise('FetchBuiltInCMap', {\n name: name\n }).then(function (data) {\n if (data.compressionType !== _util.CMapCompressionType.NONE) {\n _this.builtInCMapCache[name] = data;\n }\n return data;\n });\n };\n }\n var TIME_SLOT_DURATION_MS = 20;\n var CHECK_TIME_EVERY = 100;\n function TimeSlotManager() {\n this.reset();\n }\n TimeSlotManager.prototype = {\n check: function TimeSlotManager_check() {\n if (++this.checked < CHECK_TIME_EVERY) {\n return false;\n }\n this.checked = 0;\n return this.endTime <= Date.now();\n },\n reset: function TimeSlotManager_reset() {\n this.endTime = Date.now() + TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n };\n function normalizeBlendMode(value) {\n if (!(0, _primitives.isName)(value)) {\n return 'source-over';\n }\n switch (value.name) {\n case 'Normal':\n case 'Compatible':\n return 'source-over';\n case 'Multiply':\n return 'multiply';\n case 'Screen':\n return 'screen';\n case 'Overlay':\n return 'overlay';\n case 'Darken':\n return 'darken';\n case 'Lighten':\n return 'lighten';\n case 'ColorDodge':\n return 'color-dodge';\n case 'ColorBurn':\n return 'color-burn';\n case 'HardLight':\n return 'hard-light';\n case 'SoftLight':\n return 'soft-light';\n case 'Difference':\n return 'difference';\n case 'Exclusion':\n return 'exclusion';\n case 'Hue':\n return 'hue';\n case 'Saturation':\n return 'saturation';\n case 'Color':\n return 'color';\n case 'Luminosity':\n return 'luminosity';\n }\n (0, _util.warn)('Unsupported blend mode: ' + value.name);\n return 'source-over';\n }\n var deferred = Promise.resolve();\n var TILING_PATTERN = 1,\n SHADING_PATTERN = 2;\n PartialEvaluator.prototype = {\n clone: function clone() {\n var newOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DefaultPartialEvaluatorOptions;\n var newEvaluator = Object.create(this);\n newEvaluator.options = newOptions;\n return newEvaluator;\n },\n hasBlendModes: function PartialEvaluator_hasBlendModes(resources) {\n if (!(0, _primitives.isDict)(resources)) {\n return false;\n }\n var processed = Object.create(null);\n if (resources.objId) {\n processed[resources.objId] = true;\n }\n var nodes = [resources],\n xref = this.xref;\n while (nodes.length) {\n var key, i, ii;\n var node = nodes.shift();\n var graphicStates = node.get('ExtGState');\n if ((0, _primitives.isDict)(graphicStates)) {\n var graphicStatesKeys = graphicStates.getKeys();\n for (i = 0, ii = graphicStatesKeys.length; i < ii; i++) {\n key = graphicStatesKeys[i];\n var graphicState = graphicStates.get(key);\n var bm = graphicState.get('BM');\n if ((0, _primitives.isName)(bm) && bm.name !== 'Normal') {\n return true;\n }\n }\n }\n var xObjects = node.get('XObject');\n if (!(0, _primitives.isDict)(xObjects)) {\n continue;\n }\n var xObjectsKeys = xObjects.getKeys();\n for (i = 0, ii = xObjectsKeys.length; i < ii; i++) {\n key = xObjectsKeys[i];\n var xObject = xObjects.getRaw(key);\n if ((0, _primitives.isRef)(xObject)) {\n if (processed[xObject.toString()]) {\n continue;\n }\n xObject = xref.fetch(xObject);\n }\n if (!(0, _primitives.isStream)(xObject)) {\n continue;\n }\n if (xObject.dict.objId) {\n if (processed[xObject.dict.objId]) {\n continue;\n }\n processed[xObject.dict.objId] = true;\n }\n var xResources = xObject.dict.get('Resources');\n if ((0, _primitives.isDict)(xResources) && (!xResources.objId || !processed[xResources.objId])) {\n nodes.push(xResources);\n if (xResources.objId) {\n processed[xResources.objId] = true;\n }\n }\n }\n }\n return false;\n },\n buildFormXObject: function PartialEvaluator_buildFormXObject(resources, xobj, smask, operatorList, task, initialState) {\n var dict = xobj.dict;\n var matrix = dict.getArray('Matrix');\n var bbox = dict.getArray('BBox');\n var group = dict.get('Group');\n if (group) {\n var groupOptions = {\n matrix: matrix,\n bbox: bbox,\n smask: smask,\n isolated: false,\n knockout: false\n };\n var groupSubtype = group.get('S');\n var colorSpace;\n if ((0, _primitives.isName)(groupSubtype, 'Transparency')) {\n groupOptions.isolated = group.get('I') || false;\n groupOptions.knockout = group.get('K') || false;\n colorSpace = group.has('CS') ? _colorspace.ColorSpace.parse(group.get('CS'), this.xref, resources) : null;\n }\n if (smask && smask.backdrop) {\n colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n operatorList.addOp(_util.OPS.beginGroup, [groupOptions]);\n }\n operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]);\n return this.getOperatorList({\n stream: xobj,\n task: task,\n resources: dict.get('Resources') || resources,\n operatorList: operatorList,\n initialState: initialState\n }).then(function () {\n operatorList.addOp(_util.OPS.paintFormXObjectEnd, []);\n if (group) {\n operatorList.addOp(_util.OPS.endGroup, [groupOptions]);\n }\n });\n },\n buildPaintImageXObject: function PartialEvaluator_buildPaintImageXObject(resources, image, inline, operatorList, cacheKey, imageCache) {\n var _this2 = this;\n var dict = image.dict;\n var w = dict.get('Width', 'W');\n var h = dict.get('Height', 'H');\n if (!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h))) {\n (0, _util.warn)('Image dimensions are missing, or not numbers.');\n return;\n }\n var maxImageSize = this.options.maxImageSize;\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n (0, _util.warn)('Image exceeded maximum allowed size and was removed.');\n return;\n }\n var imageMask = dict.get('ImageMask', 'IM') || false;\n var imgData, args;\n if (imageMask) {\n var width = dict.get('Width', 'W');\n var height = dict.get('Height', 'H');\n var bitStrideLength = width + 7 >> 3;\n var imgArray = image.getBytes(bitStrideLength * height);\n var decode = dict.getArray('Decode', 'D');\n var inverseDecode = !!decode && decode[0] > 0;\n imgData = _image.PDFImage.createMask(imgArray, width, height, image instanceof _stream.DecodeStream, inverseDecode);\n imgData.cached = true;\n args = [imgData];\n operatorList.addOp(_util.OPS.paintImageMaskXObject, args);\n if (cacheKey) {\n imageCache[cacheKey] = {\n fn: _util.OPS.paintImageMaskXObject,\n args: args\n };\n }\n return;\n }\n var softMask = dict.get('SMask', 'SM') || false;\n var mask = dict.get('Mask') || false;\n var SMALL_IMAGE_DIMENSIONS = 200;\n if (inline && !softMask && !mask && !(image instanceof _stream.JpegStream) && w + h < SMALL_IMAGE_DIMENSIONS) {\n var imageObj = new _image.PDFImage(this.xref, resources, image, inline, null, null);\n imgData = imageObj.createImageData(true);\n operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]);\n return;\n }\n var nativeImageDecoderSupport = this.options.nativeImageDecoderSupport;\n var objId = 'img_' + this.idFactory.createObjId();\n operatorList.addDependency(objId);\n args = [objId, w, h];\n if (nativeImageDecoderSupport !== _util.NativeImageDecoding.NONE && !softMask && !mask && image instanceof _stream.JpegStream && NativeImageDecoder.isSupported(image, this.xref, resources)) {\n operatorList.addOp(_util.OPS.paintJpegXObject, args);\n this.handler.send('obj', [objId, this.pageIndex, 'JpegStream', image.getIR(this.options.forceDataSchema)]);\n if (cacheKey) {\n imageCache[cacheKey] = {\n fn: _util.OPS.paintJpegXObject,\n args: args\n };\n }\n return;\n }\n var nativeImageDecoder = null;\n if (nativeImageDecoderSupport === _util.NativeImageDecoding.DECODE && (image instanceof _stream.JpegStream || mask instanceof _stream.JpegStream || softMask instanceof _stream.JpegStream)) {\n nativeImageDecoder = new NativeImageDecoder(this.xref, resources, this.handler, this.options.forceDataSchema);\n }\n _image.PDFImage.buildImage(this.handler, this.xref, resources, image, inline, nativeImageDecoder).then(function (imageObj) {\n var imgData = imageObj.createImageData(false);\n _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]);\n }).catch(function (reason) {\n (0, _util.warn)('Unable to decode image: ' + reason);\n _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]);\n });\n operatorList.addOp(_util.OPS.paintImageXObject, args);\n if (cacheKey) {\n imageCache[cacheKey] = {\n fn: _util.OPS.paintImageXObject,\n args: args\n };\n }\n },\n handleSMask: function PartialEvaluator_handleSmask(smask, resources, operatorList, task, stateManager) {\n var smaskContent = smask.get('G');\n var smaskOptions = {\n subtype: smask.get('S').name,\n backdrop: smask.get('BC')\n };\n var transferObj = smask.get('TR');\n if ((0, _function.isPDFFunction)(transferObj)) {\n var transferFn = _function.PDFFunction.parse(this.xref, transferObj);\n var transferMap = new Uint8Array(256);\n var tmp = new Float32Array(1);\n for (var i = 0; i < 256; i++) {\n tmp[0] = i / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[i] = tmp[0] * 255 | 0;\n }\n smaskOptions.transferMap = transferMap;\n }\n return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone());\n },\n handleTilingType: function handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) {\n var _this3 = this;\n var tilingOpList = new OperatorList();\n var resourcesArray = [patternDict.get('Resources'), resources];\n var patternResources = _primitives.Dict.merge(this.xref, resourcesArray);\n return this.getOperatorList({\n stream: pattern,\n task: task,\n resources: patternResources,\n operatorList: tilingOpList\n }).then(function () {\n return (0, _pattern.getTilingPatternIR)({\n fnArray: tilingOpList.fnArray,\n argsArray: tilingOpList.argsArray\n }, patternDict, args);\n }).then(function (tilingPatternIR) {\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n }, function (reason) {\n if (_this3.options.ignoreErrors) {\n _this3.handler.send('UnsupportedFeature', {\n featureId: _util.UNSUPPORTED_FEATURES.unknown\n });\n (0, _util.warn)('handleTilingType - ignoring pattern: \"' + reason + '\".');\n return;\n }\n throw reason;\n });\n },\n handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {\n var _this4 = this;\n var fontName;\n if (fontArgs) {\n fontArgs = fontArgs.slice();\n fontName = fontArgs[0].name;\n }\n return this.loadFont(fontName, fontRef, resources).then(function (translated) {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated.loadType3Data(_this4, resources, operatorList, task).then(function () {\n return translated;\n }).catch(function (reason) {\n _this4.handler.send('UnsupportedFeature', {\n featureId: _util.UNSUPPORTED_FEATURES.font\n });\n return new TranslatedFont('g_font_error', new _fonts.ErrorFont('Type3 font load error: ' + reason), translated.font);\n });\n }).then(function (translated) {\n state.font = translated.font;\n translated.send(_this4.handler);\n return translated.loadedName;\n });\n },\n handleText: function PartialEvaluator_handleText(chars, state) {\n var _this5 = this;\n var font = state.font;\n var glyphs = font.charsToGlyphs(chars);\n var isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n if (font.data && (isAddToPathSet || this.options.disableFontFace)) {\n var buildPath = function buildPath(fontChar) {\n if (!font.renderer.hasBuiltPath(fontChar)) {\n var path = font.renderer.getPathJs(fontChar);\n _this5.handler.send('commonobj', [font.loadedName + '_path_' + fontChar, 'FontPath', path]);\n }\n };\n for (var i = 0, ii = glyphs.length; i < ii; i++) {\n var glyph = glyphs[i];\n buildPath(glyph.fontChar);\n var accent = glyph.accent;\n if (accent && accent.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n }\n return glyphs;\n },\n setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) {\n var _this6 = this;\n var gStateObj = [];\n var gStateKeys = gState.getKeys();\n var promise = Promise.resolve();\n var _loop = function _loop() {\n var key = gStateKeys[i];\n var value = gState.get(key);\n switch (key) {\n case 'Type':\n break;\n case 'LW':\n case 'LC':\n case 'LJ':\n case 'ML':\n case 'D':\n case 'RI':\n case 'FL':\n case 'CA':\n case 'ca':\n gStateObj.push([key, value]);\n break;\n case 'Font':\n promise = promise.then(function () {\n return _this6.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n gStateObj.push([key, [loadedName, value[1]]]);\n });\n });\n break;\n case 'BM':\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n case 'SMask':\n if ((0, _primitives.isName)(value, 'None')) {\n gStateObj.push([key, false]);\n break;\n }\n if ((0, _primitives.isDict)(value)) {\n promise = promise.then(function () {\n return _this6.handleSMask(value, resources, operatorList, task, stateManager);\n });\n gStateObj.push([key, true]);\n } else {\n (0, _util.warn)('Unsupported SMask type');\n }\n break;\n case 'OP':\n case 'op':\n case 'OPM':\n case 'BG':\n case 'BG2':\n case 'UCR':\n case 'UCR2':\n case 'TR':\n case 'TR2':\n case 'HT':\n case 'SM':\n case 'SA':\n case 'AIS':\n case 'TK':\n (0, _util.info)('graphic state operator ' + key);\n break;\n default:\n (0, _util.info)('Unknown graphic state operator ' + key);\n break;\n }\n };\n for (var i = 0, ii = gStateKeys.length; i < ii; i++) {\n _loop();\n }\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(_util.OPS.setGState, [gStateObj]);\n }\n });\n },\n loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {\n var _this7 = this;\n function errorFont() {\n return Promise.resolve(new TranslatedFont('g_font_error', new _fonts.ErrorFont('Font ' + fontName + ' is not available'), font));\n }\n var fontRef,\n xref = this.xref;\n if (font) {\n if (!(0, _primitives.isRef)(font)) {\n throw new Error('The \"font\" object should be a reference.');\n }\n fontRef = font;\n } else {\n var fontRes = resources.get('Font');\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n } else {\n (0, _util.warn)('fontRes not available');\n return errorFont();\n }\n }\n if (!fontRef) {\n (0, _util.warn)('fontRef not available');\n return errorFont();\n }\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n font = xref.fetchIfRef(fontRef);\n if (!(0, _primitives.isDict)(font)) {\n return errorFont();\n }\n if (font.translated) {\n return font.translated;\n }\n var fontCapability = (0, _util.createPromiseCapability)();\n var preEvaluatedFont = this.preEvaluateFont(font);\n var descriptor = preEvaluatedFont.descriptor;\n var fontRefIsRef = (0, _primitives.isRef)(fontRef),\n fontID;\n if (fontRefIsRef) {\n fontID = fontRef.toString();\n }\n if ((0, _primitives.isDict)(descriptor)) {\n if (!descriptor.fontAliases) {\n descriptor.fontAliases = Object.create(null);\n }\n var fontAliases = descriptor.fontAliases;\n var hash = preEvaluatedFont.hash;\n if (fontAliases[hash]) {\n var aliasFontRef = fontAliases[hash].aliasRef;\n if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n this.fontCache.putAlias(fontRef, aliasFontRef);\n return this.fontCache.get(fontRef);\n }\n } else {\n fontAliases[hash] = {\n fontID: _fonts.Font.getFontID()\n };\n }\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n fontID = fontAliases[hash].fontID;\n }\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n if (!fontID) {\n fontID = this.idFactory.createObjId();\n }\n this.fontCache.put('id_' + fontID, fontCapability.promise);\n }\n (0, _util.assert)(fontID, 'The \"fontID\" must be defined.');\n font.loadedName = 'g_' + this.pdfManager.docId + '_f' + fontID;\n font.translated = fontCapability.promise;\n var translatedPromise;\n try {\n translatedPromise = this.translateFont(preEvaluatedFont);\n } catch (e) {\n translatedPromise = Promise.reject(e);\n }\n translatedPromise.then(function (translatedFont) {\n if (translatedFont.fontType !== undefined) {\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[translatedFont.fontType] = true;\n }\n fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font));\n }).catch(function (reason) {\n _this7.handler.send('UnsupportedFeature', {\n featureId: _util.UNSUPPORTED_FEATURES.font\n });\n try {\n var descriptor = preEvaluatedFont.descriptor;\n var fontFile3 = descriptor && descriptor.get('FontFile3');\n var subtype = fontFile3 && fontFile3.get('Subtype');\n var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name);\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[fontType] = true;\n } catch (ex) {}\n fontCapability.resolve(new TranslatedFont(font.loadedName, new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason), font));\n });\n return fontCapability.promise;\n },\n buildPath: function PartialEvaluator_buildPath(operatorList, fn, args) {\n var lastIndex = operatorList.length - 1;\n if (!args) {\n args = [];\n }\n if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {\n operatorList.addOp(_util.OPS.constructPath, [[fn], args]);\n } else {\n var opArgs = operatorList.argsArray[lastIndex];\n opArgs[0].push(fn);\n Array.prototype.push.apply(opArgs[1], args);\n }\n },\n handleColorN: function PartialEvaluator_handleColorN(operatorList, fn, args, cs, patterns, resources, task) {\n var patternName = args[args.length - 1];\n var pattern;\n if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) {\n var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;\n var typeNum = dict.get('PatternType');\n if (typeNum === TILING_PATTERN) {\n var color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task);\n } else if (typeNum === SHADING_PATTERN) {\n var shading = dict.get('Shading');\n var matrix = dict.getArray('Matrix');\n pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler);\n operatorList.addOp(fn, pattern.getIR());\n return Promise.resolve();\n }\n return Promise.reject(new Error('Unknown PatternType: ' + typeNum));\n }\n operatorList.addOp(fn, args);\n return Promise.resolve();\n },\n getOperatorList: function getOperatorList(_ref2) {\n var _this8 = this;\n var stream = _ref2.stream,\n task = _ref2.task,\n resources = _ref2.resources,\n operatorList = _ref2.operatorList,\n _ref2$initialState = _ref2.initialState,\n initialState = _ref2$initialState === undefined ? null : _ref2$initialState;\n resources = resources || _primitives.Dict.empty;\n initialState = initialState || new EvalState();\n if (!operatorList) {\n throw new Error('getOperatorList: missing \"operatorList\" parameter');\n }\n var self = this;\n var xref = this.xref;\n var imageCache = Object.create(null);\n var xobjs = resources.get('XObject') || _primitives.Dict.empty;\n var patterns = resources.get('Pattern') || _primitives.Dict.empty;\n var stateManager = new StateManager(initialState);\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var timeSlotManager = new TimeSlotManager();\n function closePendingRestoreOPS(argument) {\n for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n operatorList.addOp(_util.OPS.restore, []);\n }\n }\n return new Promise(function promiseBody(resolve, reject) {\n var next = function next(promise) {\n promise.then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n i,\n ii,\n cs;\n while (!(stop = timeSlotManager.check())) {\n operation.args = null;\n if (!preprocessor.read(operation)) {\n break;\n }\n var args = operation.args;\n var fn = operation.fn;\n switch (fn | 0) {\n case _util.OPS.paintXObject:\n var name = args[0].name;\n if (!name) {\n (0, _util.warn)('XObject must be referred to by name.');\n continue;\n }\n if (imageCache[name] !== undefined) {\n operatorList.addOp(imageCache[name].fn, imageCache[name].args);\n args = null;\n continue;\n }\n var xobj = xobjs.get(name);\n if (xobj) {\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError('XObject should be a stream');\n }\n var type = xobj.dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('XObject should have a Name subtype');\n }\n if (type.name === 'Form') {\n stateManager.save();\n next(self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone()).then(function () {\n stateManager.restore();\n }));\n return;\n } else if (type.name === 'Image') {\n self.buildPaintImageXObject(resources, xobj, false, operatorList, name, imageCache);\n args = null;\n continue;\n } else if (type.name === 'PS') {\n (0, _util.info)('Ignored XObject subtype PS');\n continue;\n } else {\n throw new _util.FormatError('Unhandled XObject subtype ' + type.name);\n }\n }\n break;\n case _util.OPS.setFont:\n var fontSize = args[1];\n next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]);\n }));\n return;\n case _util.OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n if (cacheKey) {\n var cacheEntry = imageCache[cacheKey];\n if (cacheEntry !== undefined) {\n operatorList.addOp(cacheEntry.fn, cacheEntry.args);\n args = null;\n continue;\n }\n }\n self.buildPaintImageXObject(resources, args[0], true, operatorList, cacheKey, imageCache);\n args = null;\n continue;\n case _util.OPS.showText:\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n case _util.OPS.showSpacedText:\n var arr = args[0];\n var combinedGlyphs = [];\n var arrLength = arr.length;\n var state = stateManager.state;\n for (i = 0; i < arrLength; ++i) {\n var arrItem = arr[i];\n if ((0, _util.isString)(arrItem)) {\n Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state));\n } else if ((0, _util.isNum)(arrItem)) {\n combinedGlyphs.push(arrItem);\n }\n }\n args[0] = combinedGlyphs;\n fn = _util.OPS.showText;\n break;\n case _util.OPS.nextLineShowText:\n operatorList.addOp(_util.OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n case _util.OPS.nextLineSetSpacingShowText:\n operatorList.addOp(_util.OPS.nextLine);\n operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]);\n operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n case _util.OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n case _util.OPS.setFillColorSpace:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources);\n continue;\n case _util.OPS.setStrokeColorSpace:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources);\n continue;\n case _util.OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n case _util.OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n case _util.OPS.setFillGray:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n case _util.OPS.setStrokeGray:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n case _util.OPS.setFillCMYKColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n case _util.OPS.setStrokeCMYKColor:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n case _util.OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case _util.OPS.setStrokeRGBColor:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case _util.OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n if (cs.name === 'Pattern') {\n next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task));\n return;\n }\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n case _util.OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n if (cs.name === 'Pattern') {\n next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task));\n return;\n }\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n case _util.OPS.shadingFill:\n var shadingRes = resources.get('Shading');\n if (!shadingRes) {\n throw new _util.FormatError('No shading resource found');\n }\n var shading = shadingRes.get(args[0].name);\n if (!shading) {\n throw new _util.FormatError('No shading object found');\n }\n var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler);\n var patternIR = shadingFill.getIR();\n args = [patternIR];\n fn = _util.OPS.shadingFill;\n break;\n case _util.OPS.setGState:\n var dictName = args[0];\n var extGState = resources.get('ExtGState');\n if (!(0, _primitives.isDict)(extGState) || !extGState.has(dictName.name)) {\n break;\n }\n var gState = extGState.get(dictName.name);\n next(self.setGState(resources, gState, operatorList, task, stateManager));\n return;\n case _util.OPS.moveTo:\n case _util.OPS.lineTo:\n case _util.OPS.curveTo:\n case _util.OPS.curveTo2:\n case _util.OPS.curveTo3:\n case _util.OPS.closePath:\n self.buildPath(operatorList, fn, args);\n continue;\n case _util.OPS.rectangle:\n self.buildPath(operatorList, fn, args);\n continue;\n case _util.OPS.markPoint:\n case _util.OPS.markPointProps:\n case _util.OPS.beginMarkedContent:\n case _util.OPS.beginMarkedContentProps:\n case _util.OPS.endMarkedContent:\n case _util.OPS.beginCompat:\n case _util.OPS.endCompat:\n continue;\n default:\n if (args !== null) {\n for (i = 0, ii = args.length; i < ii; i++) {\n if (args[i] instanceof _primitives.Dict) {\n break;\n }\n }\n if (i < ii) {\n (0, _util.warn)('getOperatorList - ignoring operator: ' + fn);\n continue;\n }\n }\n }\n operatorList.addOp(fn, args);\n }\n if (stop) {\n next(deferred);\n return;\n }\n closePendingRestoreOPS();\n resolve();\n }).catch(function (reason) {\n if (_this8.options.ignoreErrors) {\n _this8.handler.send('UnsupportedFeature', {\n featureId: _util.UNSUPPORTED_FEATURES.unknown\n });\n (0, _util.warn)('getOperatorList - ignoring errors during task: ' + task.name);\n closePendingRestoreOPS();\n return;\n }\n throw reason;\n });\n },\n getTextContent: function getTextContent(_ref3) {\n var _this9 = this;\n var stream = _ref3.stream,\n task = _ref3.task,\n resources = _ref3.resources,\n _ref3$stateManager = _ref3.stateManager,\n stateManager = _ref3$stateManager === undefined ? null : _ref3$stateManager,\n _ref3$normalizeWhites = _ref3.normalizeWhitespace,\n normalizeWhitespace = _ref3$normalizeWhites === undefined ? false : _ref3$normalizeWhites,\n _ref3$combineTextItem = _ref3.combineTextItems,\n combineTextItems = _ref3$combineTextItem === undefined ? false : _ref3$combineTextItem,\n sink = _ref3.sink,\n _ref3$seenStyles = _ref3.seenStyles,\n seenStyles = _ref3$seenStyles === undefined ? Object.create(null) : _ref3$seenStyles;\n resources = resources || _primitives.Dict.empty;\n stateManager = stateManager || new StateManager(new TextState());\n var WhitespaceRegexp = /\\s/g;\n var textContent = {\n items: [],\n styles: Object.create(null)\n };\n var textContentItem = {\n initialized: false,\n str: [],\n width: 0,\n height: 0,\n vertical: false,\n lastAdvanceWidth: 0,\n lastAdvanceHeight: 0,\n textAdvanceScale: 0,\n spaceWidth: 0,\n fakeSpaceMin: Infinity,\n fakeMultiSpaceMin: Infinity,\n fakeMultiSpaceMax: -0,\n textRunBreakAllowed: false,\n transform: null,\n fontName: null\n };\n var SPACE_FACTOR = 0.3;\n var MULTI_SPACE_FACTOR = 1.5;\n var MULTI_SPACE_FACTOR_MAX = 4;\n var self = this;\n var xref = this.xref;\n var xobjs = null;\n var skipEmptyXObjs = Object.create(null);\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var textState;\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n var font = textState.font;\n if (!(font.loadedName in seenStyles)) {\n seenStyles[font.loadedName] = true;\n textContent.styles[font.loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical\n };\n }\n textContentItem.fontName = font.loadedName;\n var tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n if (font.isType3Font && textState.fontMatrix !== _util.FONT_IDENTITY_MATRIX && textState.fontSize === 1) {\n var glyphHeight = font.bbox[3] - font.bbox[1];\n if (glyphHeight > 0) {\n glyphHeight = glyphHeight * textState.fontMatrix[3];\n tsm[3] *= glyphHeight;\n }\n }\n var trm = _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm));\n textContentItem.transform = trm;\n if (!font.vertical) {\n textContentItem.width = 0;\n textContentItem.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]);\n textContentItem.vertical = false;\n } else {\n textContentItem.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]);\n textContentItem.height = 0;\n textContentItem.vertical = true;\n }\n var a = textState.textLineMatrix[0];\n var b = textState.textLineMatrix[1];\n var scaleLineX = Math.sqrt(a * a + b * b);\n a = textState.ctm[0];\n b = textState.ctm[1];\n var scaleCtmX = Math.sqrt(a * a + b * b);\n textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n textContentItem.lastAdvanceWidth = 0;\n textContentItem.lastAdvanceHeight = 0;\n var spaceWidth = font.spaceWidth / 1000 * textState.fontSize;\n if (spaceWidth) {\n textContentItem.spaceWidth = spaceWidth;\n textContentItem.fakeSpaceMin = spaceWidth * SPACE_FACTOR;\n textContentItem.fakeMultiSpaceMin = spaceWidth * MULTI_SPACE_FACTOR;\n textContentItem.fakeMultiSpaceMax = spaceWidth * MULTI_SPACE_FACTOR_MAX;\n textContentItem.textRunBreakAllowed = !font.isMonospace;\n } else {\n textContentItem.spaceWidth = 0;\n textContentItem.fakeSpaceMin = Infinity;\n textContentItem.fakeMultiSpaceMin = Infinity;\n textContentItem.fakeMultiSpaceMax = 0;\n textContentItem.textRunBreakAllowed = false;\n }\n textContentItem.initialized = true;\n return textContentItem;\n }\n function replaceWhitespace(str) {\n var i = 0,\n ii = str.length,\n code;\n while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7F) {\n i++;\n }\n return i < ii ? str.replace(WhitespaceRegexp, ' ') : str;\n }\n function runBidiTransform(textChunk) {\n var str = textChunk.str.join('');\n var bidiResult = (0, _bidi.bidi)(str, -1, textChunk.vertical);\n return {\n str: normalizeWhitespace ? replaceWhitespace(bidiResult.str) : bidiResult.str,\n dir: bidiResult.dir,\n width: textChunk.width,\n height: textChunk.height,\n transform: textChunk.transform,\n fontName: textChunk.fontName\n };\n }\n function handleSetFont(fontName, fontRef) {\n return self.loadFont(fontName, fontRef, resources).then(function (translated) {\n textState.font = translated.font;\n textState.fontMatrix = translated.font.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n });\n }\n function buildTextContentItem(chars) {\n var font = textState.font;\n var textChunk = ensureTextContentItem();\n var width = 0;\n var height = 0;\n var glyphs = font.charsToGlyphs(chars);\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n var glyphWidth = null;\n if (font.vertical && glyph.vmetric) {\n glyphWidth = glyph.vmetric[0];\n } else {\n glyphWidth = glyph.width;\n }\n var glyphUnicode = glyph.unicode;\n var NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();\n if (NormalizedUnicodes[glyphUnicode] !== undefined) {\n glyphUnicode = NormalizedUnicodes[glyphUnicode];\n }\n glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode);\n var charSpacing = textState.charSpacing;\n if (glyph.isSpace) {\n var wordSpacing = textState.wordSpacing;\n charSpacing += wordSpacing;\n if (wordSpacing > 0) {\n addFakeSpaces(wordSpacing, textChunk.str);\n }\n }\n var tx = 0;\n var ty = 0;\n if (!font.vertical) {\n var w0 = glyphWidth * textState.fontMatrix[0];\n tx = (w0 * textState.fontSize + charSpacing) * textState.textHScale;\n width += tx;\n } else {\n var w1 = glyphWidth * textState.fontMatrix[0];\n ty = w1 * textState.fontSize + charSpacing;\n height += ty;\n }\n textState.translateTextMatrix(tx, ty);\n textChunk.str.push(glyphUnicode);\n }\n if (!font.vertical) {\n textChunk.lastAdvanceWidth = width;\n textChunk.width += width;\n } else {\n textChunk.lastAdvanceHeight = height;\n textChunk.height += Math.abs(height);\n }\n return textChunk;\n }\n function addFakeSpaces(width, strBuf) {\n if (width < textContentItem.fakeSpaceMin) {\n return;\n }\n if (width < textContentItem.fakeMultiSpaceMin) {\n strBuf.push(' ');\n return;\n }\n var fakeSpaces = Math.round(width / textContentItem.spaceWidth);\n while (fakeSpaces-- > 0) {\n strBuf.push(' ');\n }\n }\n function flushTextContentItem() {\n if (!textContentItem.initialized) {\n return;\n }\n textContentItem.width *= textContentItem.textAdvanceScale;\n textContentItem.height *= textContentItem.textAdvanceScale;\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n function enqueueChunk() {\n var length = textContent.items.length;\n if (length > 0) {\n sink.enqueue(textContent, length);\n textContent.items = [];\n textContent.styles = Object.create(null);\n }\n }\n var timeSlotManager = new TimeSlotManager();\n return new Promise(function promiseBody(resolve, reject) {\n var next = function next(promise) {\n enqueueChunk();\n Promise.all([promise, sink.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n args = [];\n while (!(stop = timeSlotManager.check())) {\n args.length = 0;\n operation.args = args;\n if (!preprocessor.read(operation)) {\n break;\n }\n textState = stateManager.state;\n var fn = operation.fn;\n args = operation.args;\n var advance, diff;\n var fontNameArg, fontSizeArg;\n var isSameTextLine;\n var items;\n var offset;\n var j, jj;\n var breakTextRun;\n var name;\n var xobj;\n var type;\n var currentState;\n var xObjStateManager;\n var matrix;\n var dictName;\n var extGState;\n var gState;\n var gStateFont;\n var _ret2 = function () {\n switch (fn | 0) {\n case _util.OPS.setFont:\n fontNameArg = args[0].name;\n fontSizeArg = args[1];\n if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n break;\n }\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return {\n v: void 0\n };\n case _util.OPS.setTextRise:\n flushTextContentItem();\n textState.textRise = args[0];\n break;\n case _util.OPS.setHScale:\n flushTextContentItem();\n textState.textHScale = args[0] / 100;\n break;\n case _util.OPS.setLeading:\n flushTextContentItem();\n textState.leading = args[0];\n break;\n case _util.OPS.moveText:\n isSameTextLine = !textState.font ? false : (textState.font.vertical ? args[0] : args[1]) === 0;\n advance = args[0] - args[1];\n if (combineTextItems && isSameTextLine && textContentItem.initialized && advance > 0 && advance <= textContentItem.fakeMultiSpaceMax) {\n textState.translateTextLineMatrix(args[0], args[1]);\n textContentItem.width += args[0] - textContentItem.lastAdvanceWidth;\n textContentItem.height += args[1] - textContentItem.lastAdvanceHeight;\n diff = args[0] - textContentItem.lastAdvanceWidth - (args[1] - textContentItem.lastAdvanceHeight);\n addFakeSpaces(diff, textContentItem.str);\n break;\n }\n flushTextContentItem();\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case _util.OPS.setLeadingMoveText:\n flushTextContentItem();\n textState.leading = -args[1];\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case _util.OPS.nextLine:\n flushTextContentItem();\n textState.carriageReturn();\n break;\n case _util.OPS.setTextMatrix:\n advance = textState.calcTextLineMatrixAdvance(args[0], args[1], args[2], args[3], args[4], args[5]);\n if (combineTextItems && advance !== null && textContentItem.initialized && advance.value > 0 && advance.value <= textContentItem.fakeMultiSpaceMax) {\n textState.translateTextLineMatrix(advance.width, advance.height);\n textContentItem.width += advance.width - textContentItem.lastAdvanceWidth;\n textContentItem.height += advance.height - textContentItem.lastAdvanceHeight;\n diff = advance.width - textContentItem.lastAdvanceWidth - (advance.height - textContentItem.lastAdvanceHeight);\n addFakeSpaces(diff, textContentItem.str);\n break;\n }\n flushTextContentItem();\n textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n case _util.OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n case _util.OPS.beginText:\n flushTextContentItem();\n textState.textMatrix = _util.IDENTITY_MATRIX.slice();\n textState.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n break;\n case _util.OPS.showSpacedText:\n items = args[0];\n for (j = 0, jj = items.length; j < jj; j++) {\n if (typeof items[j] === 'string') {\n buildTextContentItem(items[j]);\n } else if ((0, _util.isNum)(items[j])) {\n ensureTextContentItem();\n advance = items[j] * textState.fontSize / 1000;\n breakTextRun = false;\n if (textState.font.vertical) {\n offset = advance;\n textState.translateTextMatrix(0, offset);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n if (!breakTextRun) {\n textContentItem.height += offset;\n }\n } else {\n advance = -advance;\n offset = advance * textState.textHScale;\n textState.translateTextMatrix(offset, 0);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n if (!breakTextRun) {\n textContentItem.width += offset;\n }\n }\n if (breakTextRun) {\n flushTextContentItem();\n } else if (advance > 0) {\n addFakeSpaces(advance, textContentItem.str);\n }\n }\n }\n break;\n case _util.OPS.showText:\n buildTextContentItem(args[0]);\n break;\n case _util.OPS.nextLineShowText:\n flushTextContentItem();\n textState.carriageReturn();\n buildTextContentItem(args[0]);\n break;\n case _util.OPS.nextLineSetSpacingShowText:\n flushTextContentItem();\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem(args[2]);\n break;\n case _util.OPS.paintXObject:\n flushTextContentItem();\n if (!xobjs) {\n xobjs = resources.get('XObject') || _primitives.Dict.empty;\n }\n name = args[0].name;\n if (name in skipEmptyXObjs) {\n break;\n }\n xobj = xobjs.get(name);\n if (!xobj) {\n break;\n }\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError('XObject should be a stream');\n }\n type = xobj.dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('XObject should have a Name subtype');\n }\n if (type.name !== 'Form') {\n skipEmptyXObjs[name] = true;\n break;\n }\n currentState = stateManager.state.clone();\n xObjStateManager = new StateManager(currentState);\n matrix = xobj.dict.getArray('Matrix');\n if ((0, _util.isArray)(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n enqueueChunk();\n var sinkWrapper = {\n enqueueInvoked: false,\n enqueue: function enqueue(chunk, size) {\n this.enqueueInvoked = true;\n sink.enqueue(chunk, size);\n },\n get desiredSize() {\n return sink.desiredSize;\n },\n get ready() {\n return sink.ready;\n }\n };\n next(self.getTextContent({\n stream: xobj,\n task: task,\n resources: xobj.dict.get('Resources') || resources,\n stateManager: xObjStateManager,\n normalizeWhitespace: normalizeWhitespace,\n combineTextItems: combineTextItems,\n sink: sinkWrapper,\n seenStyles: seenStyles\n }).then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n skipEmptyXObjs[name] = true;\n }\n }));\n return {\n v: void 0\n };\n case _util.OPS.setGState:\n flushTextContentItem();\n dictName = args[0];\n extGState = resources.get('ExtGState');\n if (!(0, _primitives.isDict)(extGState) || !(0, _primitives.isName)(dictName)) {\n break;\n }\n gState = extGState.get(dictName.name);\n if (!(0, _primitives.isDict)(gState)) {\n break;\n }\n gStateFont = gState.get('Font');\n if (gStateFont) {\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n next(handleSetFont(null, gStateFont[0]));\n return {\n v: void 0\n };\n }\n break;\n }\n }();\n if ((typeof _ret2 === 'undefined' ? 'undefined' : _typeof(_ret2)) === \"object\") return _ret2.v;\n if (textContent.items.length >= sink.desiredSize) {\n stop = true;\n break;\n }\n }\n if (stop) {\n next(deferred);\n return;\n }\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n if (_this9.options.ignoreErrors) {\n (0, _util.warn)('getTextContent - ignoring errors during task: ' + task.name);\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n throw reason;\n });\n },\n extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {\n var _this10 = this;\n var xref = this.xref;\n var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');\n var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);\n if (properties.composite) {\n var cidSystemInfo = dict.get('CIDSystemInfo');\n if ((0, _primitives.isDict)(cidSystemInfo)) {\n properties.cidSystemInfo = {\n registry: cidSystemInfo.get('Registry'),\n ordering: cidSystemInfo.get('Ordering'),\n supplement: cidSystemInfo.get('Supplement')\n };\n }\n var cidToGidMap = dict.get('CIDToGIDMap');\n if ((0, _primitives.isStream)(cidToGidMap)) {\n properties.cidToGidMap = this.readCidToGidMap(cidToGidMap);\n }\n }\n var differences = [];\n var baseEncodingName = null;\n var encoding;\n if (dict.has('Encoding')) {\n encoding = dict.get('Encoding');\n if ((0, _primitives.isDict)(encoding)) {\n baseEncodingName = encoding.get('BaseEncoding');\n baseEncodingName = (0, _primitives.isName)(baseEncodingName) ? baseEncodingName.name : null;\n if (encoding.has('Differences')) {\n var diffEncoding = encoding.get('Differences');\n var index = 0;\n for (var j = 0, jj = diffEncoding.length; j < jj; j++) {\n var data = xref.fetchIfRef(diffEncoding[j]);\n if ((0, _util.isNum)(data)) {\n index = data;\n } else if ((0, _primitives.isName)(data)) {\n differences[index++] = data.name;\n } else {\n throw new _util.FormatError('Invalid entry in \\'Differences\\' array: ' + data);\n }\n }\n }\n } else if ((0, _primitives.isName)(encoding)) {\n baseEncodingName = encoding.name;\n } else {\n throw new _util.FormatError('Encoding is not a Name nor a Dict');\n }\n if (baseEncodingName !== 'MacRomanEncoding' && baseEncodingName !== 'MacExpertEncoding' && baseEncodingName !== 'WinAnsiEncoding') {\n baseEncodingName = null;\n }\n }\n if (baseEncodingName) {\n properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName).slice();\n } else {\n var isSymbolicFont = !!(properties.flags & _fonts.FontFlags.Symbolic);\n var isNonsymbolicFont = !!(properties.flags & _fonts.FontFlags.Nonsymbolic);\n encoding = _encodings.StandardEncoding;\n if (properties.type === 'TrueType' && !isNonsymbolicFont) {\n encoding = _encodings.WinAnsiEncoding;\n }\n if (isSymbolicFont) {\n encoding = _encodings.MacRomanEncoding;\n if (!properties.file) {\n if (/Symbol/i.test(properties.name)) {\n encoding = _encodings.SymbolSetEncoding;\n } else if (/Dingbats/i.test(properties.name)) {\n encoding = _encodings.ZapfDingbatsEncoding;\n }\n }\n }\n properties.defaultEncoding = encoding;\n }\n properties.differences = differences;\n properties.baseEncodingName = baseEncodingName;\n properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n properties.dict = dict;\n return toUnicodePromise.then(function (toUnicode) {\n properties.toUnicode = toUnicode;\n return _this10.buildToUnicode(properties);\n }).then(function (toUnicode) {\n properties.toUnicode = toUnicode;\n return properties;\n });\n },\n buildToUnicode: function PartialEvaluator_buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0;\n if (properties.hasIncludedToUnicodeMap) {\n return Promise.resolve(properties.toUnicode);\n }\n var toUnicode, charcode, glyphName;\n if (!properties.composite) {\n toUnicode = [];\n var encoding = properties.defaultEncoding.slice();\n var baseEncodingName = properties.baseEncodingName;\n var differences = properties.differences;\n for (charcode in differences) {\n glyphName = differences[charcode];\n if (glyphName === '.notdef') {\n continue;\n }\n encoding[charcode] = glyphName;\n }\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n for (charcode in encoding) {\n glyphName = encoding[charcode];\n if (glyphName === '') {\n continue;\n } else if (glyphsUnicodeMap[glyphName] === undefined) {\n var code = 0;\n switch (glyphName[0]) {\n case 'G':\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substr(1), 16);\n }\n break;\n case 'g':\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substr(1), 16);\n }\n break;\n case 'C':\n case 'c':\n if (glyphName.length >= 3) {\n code = +glyphName.substr(1);\n }\n break;\n default:\n var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n code = unicode;\n }\n }\n if (code) {\n if (baseEncodingName && code === +charcode) {\n var baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n continue;\n }\n }\n toUnicode[charcode] = String.fromCharCode(code);\n }\n continue;\n }\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n }\n return Promise.resolve(new _fonts.ToUnicodeMap(toUnicode));\n }\n if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === 'Adobe' && (properties.cidSystemInfo.ordering === 'GB1' || properties.cidSystemInfo.ordering === 'CNS1' || properties.cidSystemInfo.ordering === 'Japan1' || properties.cidSystemInfo.ordering === 'Korea1'))) {\n var registry = properties.cidSystemInfo.registry;\n var ordering = properties.cidSystemInfo.ordering;\n var ucs2CMapName = _primitives.Name.get(registry + '-' + ordering + '-UCS2');\n return _cmap.CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (ucs2CMap) {\n var cMap = properties.cMap;\n toUnicode = [];\n cMap.forEach(function (charcode, cid) {\n if (cid > 0xffff) {\n throw new _util.FormatError('Max size of CID is 65,535');\n }\n var ucs2 = ucs2CMap.lookup(cid);\n if (ucs2) {\n toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1));\n }\n });\n return new _fonts.ToUnicodeMap(toUnicode);\n });\n }\n return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar));\n },\n readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {\n var cmapObj = toUnicode;\n if ((0, _primitives.isName)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xFFFF);\n }\n return new _fonts.ToUnicodeMap(cmap.getMap());\n });\n } else if ((0, _primitives.isStream)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xFFFF);\n }\n var map = new Array(cmap.length);\n cmap.forEach(function (charCode, token) {\n var str = [];\n for (var k = 0; k < token.length; k += 2) {\n var w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n if ((w1 & 0xF800) !== 0xD800) {\n str.push(w1);\n continue;\n }\n k += 2;\n var w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n }\n map[charCode] = String.fromCharCode.apply(String, str);\n });\n return new _fonts.ToUnicodeMap(map);\n });\n }\n return Promise.resolve(null);\n },\n readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) {\n var glyphsData = cidToGidStream.getBytes();\n var result = [];\n for (var j = 0, jj = glyphsData.length; j < jj; j++) {\n var glyphID = glyphsData[j++] << 8 | glyphsData[j];\n if (glyphID === 0) {\n continue;\n }\n var code = j >> 1;\n result[code] = glyphID;\n }\n return result;\n },\n extractWidths: function PartialEvaluator_extractWidths(dict, descriptor, properties) {\n var xref = this.xref;\n var glyphsWidths = [];\n var defaultWidth = 0;\n var glyphsVMetrics = [];\n var defaultVMetrics;\n var i, ii, j, jj, start, code, widths;\n if (properties.composite) {\n defaultWidth = dict.get('DW') || 1000;\n widths = dict.get('W');\n if (widths) {\n for (i = 0, ii = widths.length; i < ii; i++) {\n start = xref.fetchIfRef(widths[i++]);\n code = xref.fetchIfRef(widths[i]);\n if ((0, _util.isArray)(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n }\n } else {\n var width = xref.fetchIfRef(widths[++i]);\n for (j = start; j <= code; j++) {\n glyphsWidths[j] = width;\n }\n }\n }\n }\n if (properties.vertical) {\n var vmetrics = dict.getArray('DW2') || [880, -1000];\n defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n vmetrics = dict.get('W2');\n if (vmetrics) {\n for (i = 0, ii = vmetrics.length; i < ii; i++) {\n start = xref.fetchIfRef(vmetrics[i++]);\n code = xref.fetchIfRef(vmetrics[i]);\n if ((0, _util.isArray)(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])];\n }\n } else {\n var vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])];\n for (j = start; j <= code; j++) {\n glyphsVMetrics[j] = vmetric;\n }\n }\n }\n }\n }\n } else {\n var firstChar = properties.firstChar;\n widths = dict.get('Widths');\n if (widths) {\n j = firstChar;\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0;\n } else {\n var baseFontName = dict.get('BaseFont');\n if ((0, _primitives.isName)(baseFontName)) {\n var metrics = this.getBaseFontMetrics(baseFontName.name);\n glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n defaultWidth = metrics.defaultWidth;\n }\n }\n }\n var isMonospace = true;\n var firstWidth = defaultWidth;\n for (var glyph in glyphsWidths) {\n var glyphWidth = glyphsWidths[glyph];\n if (!glyphWidth) {\n continue;\n }\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n if (isMonospace) {\n properties.flags |= _fonts.FontFlags.FixedPitch;\n }\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n },\n isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) {\n var fontNameWoStyle = baseFontName.split('-')[0];\n return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n },\n getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) {\n var defaultWidth = 0;\n var widths = [];\n var monospace = false;\n var stdFontMap = (0, _standard_fonts.getStdFontMap)();\n var lookupName = stdFontMap[name] || name;\n var Metrics = (0, _metrics.getMetrics)();\n if (!(lookupName in Metrics)) {\n if (this.isSerifFont(name)) {\n lookupName = 'Times-Roman';\n } else {\n lookupName = 'Helvetica';\n }\n }\n var glyphWidths = Metrics[lookupName];\n if ((0, _util.isNum)(glyphWidths)) {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths();\n }\n return {\n defaultWidth: defaultWidth,\n monospace: monospace,\n widths: widths\n };\n },\n buildCharCodeToWidth: function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName, properties) {\n var widths = Object.create(null);\n var differences = properties.differences;\n var encoding = properties.defaultEncoding;\n for (var charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n return widths;\n },\n preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict) {\n var baseDict = dict;\n var type = dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('invalid font Subtype');\n }\n var composite = false;\n var uint8array;\n if (type.name === 'Type0') {\n var df = dict.get('DescendantFonts');\n if (!df) {\n throw new _util.FormatError('Descendant fonts are not specified');\n }\n dict = (0, _util.isArray)(df) ? this.xref.fetchIfRef(df[0]) : df;\n type = dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('invalid font Subtype');\n }\n composite = true;\n }\n var descriptor = dict.get('FontDescriptor');\n if (descriptor) {\n var hash = new _murmurhash.MurmurHash3_64();\n var encoding = baseDict.getRaw('Encoding');\n if ((0, _primitives.isName)(encoding)) {\n hash.update(encoding.name);\n } else if ((0, _primitives.isRef)(encoding)) {\n hash.update(encoding.toString());\n } else if ((0, _primitives.isDict)(encoding)) {\n var keys = encoding.getKeys();\n for (var i = 0, ii = keys.length; i < ii; i++) {\n var entry = encoding.getRaw(keys[i]);\n if ((0, _primitives.isName)(entry)) {\n hash.update(entry.name);\n } else if ((0, _primitives.isRef)(entry)) {\n hash.update(entry.toString());\n } else if ((0, _util.isArray)(entry)) {\n var diffLength = entry.length,\n diffBuf = new Array(diffLength);\n for (var j = 0; j < diffLength; j++) {\n var diffEntry = entry[j];\n if ((0, _primitives.isName)(diffEntry)) {\n diffBuf[j] = diffEntry.name;\n } else if ((0, _util.isNum)(diffEntry) || (0, _primitives.isRef)(diffEntry)) {\n diffBuf[j] = diffEntry.toString();\n }\n }\n hash.update(diffBuf.join());\n }\n }\n }\n var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');\n if ((0, _primitives.isStream)(toUnicode)) {\n var stream = toUnicode.str || toUnicode;\n uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start);\n hash.update(uint8array);\n } else if ((0, _primitives.isName)(toUnicode)) {\n hash.update(toUnicode.name);\n }\n var widths = dict.get('Widths') || baseDict.get('Widths');\n if (widths) {\n uint8array = new Uint8Array(new Uint32Array(widths).buffer);\n hash.update(uint8array);\n }\n }\n return {\n descriptor: descriptor,\n dict: dict,\n baseDict: baseDict,\n composite: composite,\n type: type.name,\n hash: hash ? hash.hexdigest() : ''\n };\n },\n translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {\n var _this11 = this;\n var baseDict = preEvaluatedFont.baseDict;\n var dict = preEvaluatedFont.dict;\n var composite = preEvaluatedFont.composite;\n var descriptor = preEvaluatedFont.descriptor;\n var type = preEvaluatedFont.type;\n var maxCharIndex = composite ? 0xFFFF : 0xFF;\n var properties;\n if (!descriptor) {\n if (type === 'Type3') {\n descriptor = new _primitives.Dict(null);\n descriptor.set('FontName', _primitives.Name.get(type));\n descriptor.set('FontBBox', dict.getArray('FontBBox'));\n } else {\n var baseFontName = dict.get('BaseFont');\n if (!(0, _primitives.isName)(baseFontName)) {\n throw new _util.FormatError('Base font is not specified');\n }\n baseFontName = baseFontName.name.replace(/[,_]/g, '-');\n var metrics = this.getBaseFontMetrics(baseFontName);\n var fontNameWoStyle = baseFontName.split('-')[0];\n var flags = (this.isSerifFont(fontNameWoStyle) ? _fonts.FontFlags.Serif : 0) | (metrics.monospace ? _fonts.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts.FontFlags.Symbolic : _fonts.FontFlags.Nonsymbolic);\n properties = {\n type: type,\n name: baseFontName,\n widths: metrics.widths,\n defaultWidth: metrics.defaultWidth,\n flags: flags,\n firstChar: 0,\n lastChar: maxCharIndex\n };\n return this.extractDataStructures(dict, dict, properties).then(function (properties) {\n properties.widths = _this11.buildCharCodeToWidth(metrics.widths, properties);\n return new _fonts.Font(baseFontName, null, properties);\n });\n }\n }\n var firstChar = dict.get('FirstChar') || 0;\n var lastChar = dict.get('LastChar') || maxCharIndex;\n var fontName = descriptor.get('FontName');\n var baseFont = dict.get('BaseFont');\n if ((0, _util.isString)(fontName)) {\n fontName = _primitives.Name.get(fontName);\n }\n if ((0, _util.isString)(baseFont)) {\n baseFont = _primitives.Name.get(baseFont);\n }\n if (type !== 'Type3') {\n var fontNameStr = fontName && fontName.name;\n var baseFontStr = baseFont && baseFont.name;\n if (fontNameStr !== baseFontStr) {\n (0, _util.info)('The FontDescriptor\\'s FontName is \"' + fontNameStr + '\" but should be the same as the Font\\'s BaseFont \"' + baseFontStr + '\"');\n if (fontNameStr && baseFontStr && baseFontStr.indexOf(fontNameStr) === 0) {\n fontName = baseFont;\n }\n }\n }\n fontName = fontName || baseFont;\n if (!(0, _primitives.isName)(fontName)) {\n throw new _util.FormatError('invalid font name');\n }\n var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3');\n if (fontFile) {\n if (fontFile.dict) {\n var subtype = fontFile.dict.get('Subtype');\n if (subtype) {\n subtype = subtype.name;\n }\n var length1 = fontFile.dict.get('Length1');\n var length2 = fontFile.dict.get('Length2');\n var length3 = fontFile.dict.get('Length3');\n }\n }\n properties = {\n type: type,\n name: fontName.name,\n subtype: subtype,\n file: fontFile,\n length1: length1,\n length2: length2,\n length3: length3,\n loadedName: baseDict.loadedName,\n composite: composite,\n wideChars: composite,\n fixedPitch: false,\n fontMatrix: dict.getArray('FontMatrix') || _util.FONT_IDENTITY_MATRIX,\n firstChar: firstChar || 0,\n lastChar: lastChar || maxCharIndex,\n bbox: descriptor.getArray('FontBBox'),\n ascent: descriptor.get('Ascent'),\n descent: descriptor.get('Descent'),\n xHeight: descriptor.get('XHeight'),\n capHeight: descriptor.get('CapHeight'),\n flags: descriptor.get('Flags'),\n italicAngle: descriptor.get('ItalicAngle'),\n isType3Font: false\n };\n var cMapPromise;\n if (composite) {\n var cidEncoding = baseDict.get('Encoding');\n if ((0, _primitives.isName)(cidEncoding)) {\n properties.cidEncoding = cidEncoding.name;\n }\n cMapPromise = _cmap.CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cMap) {\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n });\n } else {\n cMapPromise = Promise.resolve(undefined);\n }\n return cMapPromise.then(function () {\n return _this11.extractDataStructures(dict, baseDict, properties);\n }).then(function (properties) {\n _this11.extractWidths(dict, descriptor, properties);\n if (type === 'Type3') {\n properties.isType3Font = true;\n }\n return new _fonts.Font(fontName.name, fontFile, properties);\n });\n }\n };\n return PartialEvaluator;\n }();\n var TranslatedFont = function TranslatedFontClosure() {\n function TranslatedFont(loadedName, font, dict) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this.type3Loaded = null;\n this.sent = false;\n }\n TranslatedFont.prototype = {\n send: function send(handler) {\n if (this.sent) {\n return;\n }\n var fontData = this.font.exportData();\n handler.send('commonobj', [this.loadedName, 'Font', fontData]);\n this.sent = true;\n },\n loadType3Data: function loadType3Data(evaluator, resources, parentOperatorList, task) {\n if (!this.font.isType3Font) {\n throw new Error('Must be a Type3 font.');\n }\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n var type3Options = Object.create(evaluator.options);\n type3Options.ignoreErrors = false;\n var type3Evaluator = evaluator.clone(type3Options);\n var translatedFont = this.font;\n var loadCharProcsPromise = Promise.resolve();\n var charProcs = this.dict.get('CharProcs');\n var fontResources = this.dict.get('Resources') || resources;\n var charProcKeys = charProcs.getKeys();\n var charProcOperatorList = Object.create(null);\n var _loop2 = function _loop2() {\n var key = charProcKeys[i];\n loadCharProcsPromise = loadCharProcsPromise.then(function () {\n var glyphStream = charProcs.get(key);\n var operatorList = new OperatorList();\n return type3Evaluator.getOperatorList({\n stream: glyphStream,\n task: task,\n resources: fontResources,\n operatorList: operatorList\n }).then(function () {\n charProcOperatorList[key] = operatorList.getIR();\n parentOperatorList.addDependencies(operatorList.dependencies);\n }).catch(function (reason) {\n (0, _util.warn)('Type3 font resource \"' + key + '\" is not available.');\n var operatorList = new OperatorList();\n charProcOperatorList[key] = operatorList.getIR();\n });\n });\n };\n for (var i = 0, n = charProcKeys.length; i < n; ++i) {\n _loop2();\n }\n this.type3Loaded = loadCharProcsPromise.then(function () {\n translatedFont.charProcOperatorList = charProcOperatorList;\n });\n return this.type3Loaded;\n }\n };\n return TranslatedFont;\n }();\n var OperatorList = function OperatorListClosure() {\n var CHUNK_SIZE = 1000;\n var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;\n function getTransfers(queue) {\n var transfers = [];\n var fnArray = queue.fnArray,\n argsArray = queue.argsArray;\n for (var i = 0, ii = queue.length; i < ii; i++) {\n switch (fnArray[i]) {\n case _util.OPS.paintInlineImageXObject:\n case _util.OPS.paintInlineImageXObjectGroup:\n case _util.OPS.paintImageMaskXObject:\n var arg = argsArray[i][0];\n if (!arg.cached) {\n transfers.push(arg.data.buffer);\n }\n break;\n }\n }\n return transfers;\n }\n function OperatorList(intent, messageHandler, pageIndex) {\n this.messageHandler = messageHandler;\n this.fnArray = [];\n this.argsArray = [];\n this.dependencies = Object.create(null);\n this._totalLength = 0;\n this.pageIndex = pageIndex;\n this.intent = intent;\n }\n OperatorList.prototype = {\n get length() {\n return this.argsArray.length;\n },\n get totalLength() {\n return this._totalLength + this.length;\n },\n addOp: function addOp(fn, args) {\n this.fnArray.push(fn);\n this.argsArray.push(args);\n if (this.messageHandler) {\n if (this.fnArray.length >= CHUNK_SIZE) {\n this.flush();\n } else if (this.fnArray.length >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {\n this.flush();\n }\n }\n },\n addDependency: function addDependency(dependency) {\n if (dependency in this.dependencies) {\n return;\n }\n this.dependencies[dependency] = true;\n this.addOp(_util.OPS.dependency, [dependency]);\n },\n addDependencies: function addDependencies(dependencies) {\n for (var key in dependencies) {\n this.addDependency(key);\n }\n },\n addOpList: function addOpList(opList) {\n _util.Util.extendObj(this.dependencies, opList.dependencies);\n for (var i = 0, ii = opList.length; i < ii; i++) {\n this.addOp(opList.fnArray[i], opList.argsArray[i]);\n }\n },\n getIR: function getIR() {\n return {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n length: this.length\n };\n },\n flush: function flush(lastChunk) {\n if (this.intent !== 'oplist') {\n new QueueOptimizer().optimize(this);\n }\n var transfers = getTransfers(this);\n var length = this.length;\n this._totalLength += length;\n this.messageHandler.send('RenderPageChunk', {\n operatorList: {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk: lastChunk,\n length: length\n },\n pageIndex: this.pageIndex,\n intent: this.intent\n }, transfers);\n this.dependencies = Object.create(null);\n this.fnArray.length = 0;\n this.argsArray.length = 0;\n }\n };\n return OperatorList;\n }();\n var StateManager = function StateManagerClosure() {\n function StateManager(initialState) {\n this.state = initialState;\n this.stateStack = [];\n }\n StateManager.prototype = {\n save: function save() {\n var old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n },\n restore: function restore() {\n var prev = this.stateStack.pop();\n if (prev) {\n this.state = prev;\n }\n },\n transform: function transform(args) {\n this.state.ctm = _util.Util.transform(this.state.ctm, args);\n }\n };\n return StateManager;\n }();\n var TextState = function TextStateClosure() {\n function TextState() {\n this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n this.fontName = null;\n this.fontSize = 0;\n this.font = null;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.textMatrix = _util.IDENTITY_MATRIX.slice();\n this.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.leading = 0;\n this.textHScale = 1;\n this.textRise = 0;\n }\n TextState.prototype = {\n setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n var m = this.textMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n },\n setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n var m = this.textLineMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n },\n translateTextMatrix: function TextState_translateTextMatrix(x, y) {\n var m = this.textMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n },\n translateTextLineMatrix: function TextState_translateTextMatrix(x, y) {\n var m = this.textLineMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n },\n calcTextLineMatrixAdvance: function TextState_calcTextLineMatrixAdvance(a, b, c, d, e, f) {\n var font = this.font;\n if (!font) {\n return null;\n }\n var m = this.textLineMatrix;\n if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) {\n return null;\n }\n var txDiff = e - m[4],\n tyDiff = f - m[5];\n if (font.vertical && txDiff !== 0 || !font.vertical && tyDiff !== 0) {\n return null;\n }\n var tx,\n ty,\n denominator = a * d - b * c;\n if (font.vertical) {\n tx = -tyDiff * c / denominator;\n ty = tyDiff * a / denominator;\n } else {\n tx = txDiff * d / denominator;\n ty = -txDiff * b / denominator;\n }\n return {\n width: tx,\n height: ty,\n value: font.vertical ? ty : tx\n };\n },\n calcRenderMatrix: function TextState_calcRendeMatrix(ctm) {\n var tsm = [this.fontSize * this.textHScale, 0, 0, this.fontSize, 0, this.textRise];\n return _util.Util.transform(ctm, _util.Util.transform(this.textMatrix, tsm));\n },\n carriageReturn: function TextState_carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n },\n clone: function TextState_clone() {\n var clone = Object.create(this);\n clone.textMatrix = this.textMatrix.slice();\n clone.textLineMatrix = this.textLineMatrix.slice();\n clone.fontMatrix = this.fontMatrix.slice();\n return clone;\n }\n };\n return TextState;\n }();\n var EvalState = function EvalStateClosure() {\n function EvalState() {\n this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n this.font = null;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n }\n EvalState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n }\n };\n return EvalState;\n }();\n var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {\n var getOPMap = (0, _util.getLookupTableFactory)(function (t) {\n t['w'] = {\n id: _util.OPS.setLineWidth,\n numArgs: 1,\n variableArgs: false\n };\n t['J'] = {\n id: _util.OPS.setLineCap,\n numArgs: 1,\n variableArgs: false\n };\n t['j'] = {\n id: _util.OPS.setLineJoin,\n numArgs: 1,\n variableArgs: false\n };\n t['M'] = {\n id: _util.OPS.setMiterLimit,\n numArgs: 1,\n variableArgs: false\n };\n t['d'] = {\n id: _util.OPS.setDash,\n numArgs: 2,\n variableArgs: false\n };\n t['ri'] = {\n id: _util.OPS.setRenderingIntent,\n numArgs: 1,\n variableArgs: false\n };\n t['i'] = {\n id: _util.OPS.setFlatness,\n numArgs: 1,\n variableArgs: false\n };\n t['gs'] = {\n id: _util.OPS.setGState,\n numArgs: 1,\n variableArgs: false\n };\n t['q'] = {\n id: _util.OPS.save,\n numArgs: 0,\n variableArgs: false\n };\n t['Q'] = {\n id: _util.OPS.restore,\n numArgs: 0,\n variableArgs: false\n };\n t['cm'] = {\n id: _util.OPS.transform,\n numArgs: 6,\n variableArgs: false\n };\n t['m'] = {\n id: _util.OPS.moveTo,\n numArgs: 2,\n variableArgs: false\n };\n t['l'] = {\n id: _util.OPS.lineTo,\n numArgs: 2,\n variableArgs: false\n };\n t['c'] = {\n id: _util.OPS.curveTo,\n numArgs: 6,\n variableArgs: false\n };\n t['v'] = {\n id: _util.OPS.curveTo2,\n numArgs: 4,\n variableArgs: false\n };\n t['y'] = {\n id: _util.OPS.curveTo3,\n numArgs: 4,\n variableArgs: false\n };\n t['h'] = {\n id: _util.OPS.closePath,\n numArgs: 0,\n variableArgs: false\n };\n t['re'] = {\n id: _util.OPS.rectangle,\n numArgs: 4,\n variableArgs: false\n };\n t['S'] = {\n id: _util.OPS.stroke,\n numArgs: 0,\n variableArgs: false\n };\n t['s'] = {\n id: _util.OPS.closeStroke,\n numArgs: 0,\n variableArgs: false\n };\n t['f'] = {\n id: _util.OPS.fill,\n numArgs: 0,\n variableArgs: false\n };\n t['F'] = {\n id: _util.OPS.fill,\n numArgs: 0,\n variableArgs: false\n };\n t['f*'] = {\n id: _util.OPS.eoFill,\n numArgs: 0,\n variableArgs: false\n };\n t['B'] = {\n id: _util.OPS.fillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t['B*'] = {\n id: _util.OPS.eoFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t['b'] = {\n id: _util.OPS.closeFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t['b*'] = {\n id: _util.OPS.closeEOFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t['n'] = {\n id: _util.OPS.endPath,\n numArgs: 0,\n variableArgs: false\n };\n t['W'] = {\n id: _util.OPS.clip,\n numArgs: 0,\n variableArgs: false\n };\n t['W*'] = {\n id: _util.OPS.eoClip,\n numArgs: 0,\n variableArgs: false\n };\n t['BT'] = {\n id: _util.OPS.beginText,\n numArgs: 0,\n variableArgs: false\n };\n t['ET'] = {\n id: _util.OPS.endText,\n numArgs: 0,\n variableArgs: false\n };\n t['Tc'] = {\n id: _util.OPS.setCharSpacing,\n numArgs: 1,\n variableArgs: false\n };\n t['Tw'] = {\n id: _util.OPS.setWordSpacing,\n numArgs: 1,\n variableArgs: false\n };\n t['Tz'] = {\n id: _util.OPS.setHScale,\n numArgs: 1,\n variableArgs: false\n };\n t['TL'] = {\n id: _util.OPS.setLeading,\n numArgs: 1,\n variableArgs: false\n };\n t['Tf'] = {\n id: _util.OPS.setFont,\n numArgs: 2,\n variableArgs: false\n };\n t['Tr'] = {\n id: _util.OPS.setTextRenderingMode,\n numArgs: 1,\n variableArgs: false\n };\n t['Ts'] = {\n id: _util.OPS.setTextRise,\n numArgs: 1,\n variableArgs: false\n };\n t['Td'] = {\n id: _util.OPS.moveText,\n numArgs: 2,\n variableArgs: false\n };\n t['TD'] = {\n id: _util.OPS.setLeadingMoveText,\n numArgs: 2,\n variableArgs: false\n };\n t['Tm'] = {\n id: _util.OPS.setTextMatrix,\n numArgs: 6,\n variableArgs: false\n };\n t['T*'] = {\n id: _util.OPS.nextLine,\n numArgs: 0,\n variableArgs: false\n };\n t['Tj'] = {\n id: _util.OPS.showText,\n numArgs: 1,\n variableArgs: false\n };\n t['TJ'] = {\n id: _util.OPS.showSpacedText,\n numArgs: 1,\n variableArgs: false\n };\n t['\\''] = {\n id: _util.OPS.nextLineShowText,\n numArgs: 1,\n variableArgs: false\n };\n t['\"'] = {\n id: _util.OPS.nextLineSetSpacingShowText,\n numArgs: 3,\n variableArgs: false\n };\n t['d0'] = {\n id: _util.OPS.setCharWidth,\n numArgs: 2,\n variableArgs: false\n };\n t['d1'] = {\n id: _util.OPS.setCharWidthAndBounds,\n numArgs: 6,\n variableArgs: false\n };\n t['CS'] = {\n id: _util.OPS.setStrokeColorSpace,\n numArgs: 1,\n variableArgs: false\n };\n t['cs'] = {\n id: _util.OPS.setFillColorSpace,\n numArgs: 1,\n variableArgs: false\n };\n t['SC'] = {\n id: _util.OPS.setStrokeColor,\n numArgs: 4,\n variableArgs: true\n };\n t['SCN'] = {\n id: _util.OPS.setStrokeColorN,\n numArgs: 33,\n variableArgs: true\n };\n t['sc'] = {\n id: _util.OPS.setFillColor,\n numArgs: 4,\n variableArgs: true\n };\n t['scn'] = {\n id: _util.OPS.setFillColorN,\n numArgs: 33,\n variableArgs: true\n };\n t['G'] = {\n id: _util.OPS.setStrokeGray,\n numArgs: 1,\n variableArgs: false\n };\n t['g'] = {\n id: _util.OPS.setFillGray,\n numArgs: 1,\n variableArgs: false\n };\n t['RG'] = {\n id: _util.OPS.setStrokeRGBColor,\n numArgs: 3,\n variableArgs: false\n };\n t['rg'] = {\n id: _util.OPS.setFillRGBColor,\n numArgs: 3,\n variableArgs: false\n };\n t['K'] = {\n id: _util.OPS.setStrokeCMYKColor,\n numArgs: 4,\n variableArgs: false\n };\n t['k'] = {\n id: _util.OPS.setFillCMYKColor,\n numArgs: 4,\n variableArgs: false\n };\n t['sh'] = {\n id: _util.OPS.shadingFill,\n numArgs: 1,\n variableArgs: false\n };\n t['BI'] = {\n id: _util.OPS.beginInlineImage,\n numArgs: 0,\n variableArgs: false\n };\n t['ID'] = {\n id: _util.OPS.beginImageData,\n numArgs: 0,\n variableArgs: false\n };\n t['EI'] = {\n id: _util.OPS.endInlineImage,\n numArgs: 1,\n variableArgs: false\n };\n t['Do'] = {\n id: _util.OPS.paintXObject,\n numArgs: 1,\n variableArgs: false\n };\n t['MP'] = {\n id: _util.OPS.markPoint,\n numArgs: 1,\n variableArgs: false\n };\n t['DP'] = {\n id: _util.OPS.markPointProps,\n numArgs: 2,\n variableArgs: false\n };\n t['BMC'] = {\n id: _util.OPS.beginMarkedContent,\n numArgs: 1,\n variableArgs: false\n };\n t['BDC'] = {\n id: _util.OPS.beginMarkedContentProps,\n numArgs: 2,\n variableArgs: false\n };\n t['EMC'] = {\n id: _util.OPS.endMarkedContent,\n numArgs: 0,\n variableArgs: false\n };\n t['BX'] = {\n id: _util.OPS.beginCompat,\n numArgs: 0,\n variableArgs: false\n };\n t['EX'] = {\n id: _util.OPS.endCompat,\n numArgs: 0,\n variableArgs: false\n };\n t['BM'] = null;\n t['BD'] = null;\n t['true'] = null;\n t['fa'] = null;\n t['fal'] = null;\n t['fals'] = null;\n t['false'] = null;\n t['nu'] = null;\n t['nul'] = null;\n t['null'] = null;\n });\n function EvaluatorPreprocessor(stream, xref, stateManager) {\n this.opMap = getOPMap();\n this.parser = new _parser.Parser(new _parser.Lexer(stream, this.opMap), false, xref);\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n }\n EvaluatorPreprocessor.prototype = {\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n },\n read: function EvaluatorPreprocessor_read(operation) {\n var args = operation.args;\n while (true) {\n var obj = this.parser.getObj();\n if ((0, _primitives.isCmd)(obj)) {\n var cmd = obj.cmd;\n var opSpec = this.opMap[cmd];\n if (!opSpec) {\n (0, _util.warn)('Unknown command \"' + cmd + '\"');\n continue;\n }\n var fn = opSpec.id;\n var numArgs = opSpec.numArgs;\n var argsLength = args !== null ? args.length : 0;\n if (!opSpec.variableArgs) {\n if (argsLength !== numArgs) {\n var nonProcessedArgs = this.nonProcessedArgs;\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n if (argsLength < numArgs) {\n (0, _util.warn)('Skipping command ' + fn + ': expected ' + numArgs + ' args, but received ' + argsLength + ' args.');\n if (args !== null) {\n args.length = 0;\n }\n continue;\n }\n } else if (argsLength > numArgs) {\n (0, _util.info)('Command ' + fn + ': expected [0,' + numArgs + '] args, but received ' + argsLength + ' args.');\n }\n this.preprocessCommand(fn, args);\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n if ((0, _primitives.isEOF)(obj)) {\n return false;\n }\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n args.push(obj);\n if (args.length > 33) {\n throw new _util.FormatError('Too many arguments');\n }\n }\n }\n },\n preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(fn, args) {\n switch (fn | 0) {\n case _util.OPS.save:\n this.stateManager.save();\n break;\n case _util.OPS.restore:\n this.stateManager.restore();\n break;\n case _util.OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n };\n return EvaluatorPreprocessor;\n }();\n var QueueOptimizer = function QueueOptimizerClosure() {\n function addState(parentState, pattern, fn) {\n var state = parentState;\n for (var i = 0, ii = pattern.length - 1; i < ii; i++) {\n var item = pattern[i];\n state = state[item] || (state[item] = []);\n }\n state[pattern[pattern.length - 1]] = fn;\n }\n function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {\n var iFirstPIMXO = iFirstSave + 2;\n for (var i = 0; i < count; i++) {\n var arg = argsArray[iFirstPIMXO + 4 * i];\n var imageMask = arg.length === 1 && arg[0];\n if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) {\n fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask;\n continue;\n }\n break;\n }\n return count - i;\n }\n var InitialState = [];\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], function foundInlineImageGroup(context) {\n var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n var MAX_WIDTH = 1000;\n var IMAGE_PADDING = 1;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIIXO = curr - 1;\n var i = iFirstSave + 4;\n var ii = fnArray.length;\n while (i + 3 < ii) {\n if (fnArray[i] !== _util.OPS.save || fnArray[i + 1] !== _util.OPS.transform || fnArray[i + 2] !== _util.OPS.paintInlineImageXObject || fnArray[i + 3] !== _util.OPS.restore) {\n break;\n }\n i += 4;\n }\n var count = Math.min((i - iFirstSave) / 4, MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n return i;\n }\n var maxX = 0;\n var map = [],\n maxLineHeight = 0;\n var currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n var q;\n for (q = 0; q < count; q++) {\n var transform = argsArray[iFirstTransform + (q << 2)];\n var img = argsArray[iFirstPIIXO + (q << 2)][0];\n if (currentX + img.width > MAX_WIDTH) {\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\n map.push({\n transform: transform,\n x: currentX,\n y: currentY,\n w: img.width,\n h: img.height\n });\n currentX += img.width + 2 * IMAGE_PADDING;\n maxLineHeight = Math.max(maxLineHeight, img.height);\n }\n var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n var imgData = new Uint8Array(imgWidth * imgHeight * 4);\n var imgRowSize = imgWidth << 2;\n for (q = 0; q < count; q++) {\n var data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n var rowSize = map[q].w << 2;\n var dataOffset = 0;\n var offset = map[q].x + map[q].y * imgWidth << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n for (var k = 0, kk = map[q].h; k < kk; k++) {\n imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n dataOffset += rowSize;\n offset += imgRowSize;\n }\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n while (offset >= 0) {\n data[offset - 4] = data[offset];\n data[offset - 3] = data[offset + 1];\n data[offset - 2] = data[offset + 2];\n data[offset - 1] = data[offset + 3];\n data[offset + rowSize] = data[offset + rowSize - 4];\n data[offset + rowSize + 1] = data[offset + rowSize - 3];\n data[offset + rowSize + 2] = data[offset + rowSize - 2];\n data[offset + rowSize + 3] = data[offset + rowSize - 1];\n offset -= imgRowSize;\n }\n }\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [{\n width: imgWidth,\n height: imgHeight,\n kind: _util.ImageKind.RGBA_32BPP,\n data: imgData\n }, map]);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], function foundImageMaskGroup(context) {\n var MIN_IMAGES_IN_MASKS_BLOCK = 10;\n var MAX_IMAGES_IN_MASKS_BLOCK = 100;\n var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIMXO = curr - 1;\n var i = iFirstSave + 4;\n var ii = fnArray.length;\n while (i + 3 < ii) {\n if (fnArray[i] !== _util.OPS.save || fnArray[i + 1] !== _util.OPS.transform || fnArray[i + 2] !== _util.OPS.paintImageMaskXObject || fnArray[i + 3] !== _util.OPS.restore) {\n break;\n }\n i += 4;\n }\n var count = (i - iFirstSave) / 4;\n count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray);\n if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n return i;\n }\n var q;\n var isSameImage = false;\n var iTransform, transformArgs;\n var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {\n isSameImage = true;\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n iTransform = iFirstTransform + 4;\n var iPIMXO = iFirstPIMXO + 4;\n for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n break;\n }\n }\n }\n if (isSameImage) {\n count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n var positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n for (q = 0; q < count; q++, iTransform += 4) {\n transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n var images = [];\n for (q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n images.push({\n data: maskParams.data,\n width: maskParams.width,\n height: maskParams.height,\n transform: transformArgs\n });\n }\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {\n var MIN_IMAGES_IN_BLOCK = 3;\n var MAX_IMAGES_IN_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIXO = curr - 1;\n var iFirstRestore = curr;\n if (argsArray[iFirstTransform][1] !== 0 || argsArray[iFirstTransform][2] !== 0) {\n return iFirstRestore + 1;\n }\n var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n var i = iFirstSave + 4;\n var ii = fnArray.length;\n while (i + 3 < ii) {\n if (fnArray[i] !== _util.OPS.save || fnArray[i + 1] !== _util.OPS.transform || fnArray[i + 2] !== _util.OPS.paintImageXObject || fnArray[i + 3] !== _util.OPS.restore) {\n break;\n }\n if (argsArray[i + 1][0] !== firstTransformArg0 || argsArray[i + 1][1] !== 0 || argsArray[i + 1][2] !== 0 || argsArray[i + 1][3] !== firstTransformArg3) {\n break;\n }\n if (argsArray[i + 2][0] !== firstPIXOArg0) {\n break;\n }\n i += 4;\n }\n var count = Math.min((i - iFirstSave) / 4, MAX_IMAGES_IN_BLOCK);\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i;\n }\n var positions = new Float32Array(count * 2);\n var iTransform = iFirstTransform;\n for (var q = 0; q < count; q++, iTransform += 4) {\n var transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], function (context) {\n var MIN_CHARS_IN_BLOCK = 3;\n var MAX_CHARS_IN_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstBeginText = curr - 4;\n var iFirstSetFont = curr - 3;\n var iFirstSetTextMatrix = curr - 2;\n var iFirstShowText = curr - 1;\n var iFirstEndText = curr;\n var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n var i = iFirstBeginText + 5;\n var ii = fnArray.length;\n while (i + 4 < ii) {\n if (fnArray[i] !== _util.OPS.beginText || fnArray[i + 1] !== _util.OPS.setFont || fnArray[i + 2] !== _util.OPS.setTextMatrix || fnArray[i + 3] !== _util.OPS.showText || fnArray[i + 4] !== _util.OPS.endText) {\n break;\n }\n if (argsArray[i + 1][0] !== firstSetFontArg0 || argsArray[i + 1][1] !== firstSetFontArg1) {\n break;\n }\n i += 5;\n }\n var count = Math.min((i - iFirstBeginText) / 5, MAX_CHARS_IN_BLOCK);\n if (count < MIN_CHARS_IN_BLOCK) {\n return i;\n }\n var iFirst = iFirstBeginText;\n if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {\n count++;\n iFirst -= 5;\n }\n var iEndText = iFirst + 4;\n for (var q = 1; q < count; q++) {\n fnArray.splice(iEndText, 3);\n argsArray.splice(iEndText, 3);\n iEndText += 2;\n }\n return iEndText + 1;\n });\n function QueueOptimizer() {}\n QueueOptimizer.prototype = {\n optimize: function QueueOptimizer_optimize(queue) {\n var fnArray = queue.fnArray,\n argsArray = queue.argsArray;\n var context = {\n iCurr: 0,\n fnArray: fnArray,\n argsArray: argsArray\n };\n var state;\n var i = 0,\n ii = fnArray.length;\n while (i < ii) {\n state = (state || InitialState)[fnArray[i]];\n if (typeof state === 'function') {\n context.iCurr = i;\n i = state(context);\n state = undefined;\n ii = context.fnArray.length;\n } else {\n i++;\n }\n }\n }\n };\n return QueueOptimizer;\n }();\n exports.OperatorList = OperatorList;\n exports.PartialEvaluator = PartialEvaluator;\n\n /***/\n }, /* 57 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.JpxImage = undefined;\n var _util = __w_pdfjs_require__(0);\n var _arithmetic_decoder = __w_pdfjs_require__(52);\n var JpxError = function JpxErrorClosure() {\n function JpxError(msg) {\n this.message = 'JPX error: ' + msg;\n }\n JpxError.prototype = new Error();\n JpxError.prototype.name = 'JpxError';\n JpxError.constructor = JpxError;\n return JpxError;\n }();\n var JpxImage = function JpxImageClosure() {\n var SubbandsGainLog2 = {\n 'LL': 0,\n 'LH': 1,\n 'HL': 1,\n 'HH': 2\n };\n function JpxImage() {\n this.failOnCorruptedImage = false;\n }\n JpxImage.prototype = {\n parse: function JpxImage_parse(data) {\n var head = (0, _util.readUint16)(data, 0);\n if (head === 0xFF4F) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n var position = 0,\n length = data.length;\n while (position < length) {\n var headerSize = 8;\n var lbox = (0, _util.readUint32)(data, position);\n var tbox = (0, _util.readUint32)(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n lbox = (0, _util.readUint32)(data, position) * 4294967296 + (0, _util.readUint32)(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError('Invalid box field size');\n }\n var dataLength = lbox - headerSize;\n var jumpDataLength = true;\n switch (tbox) {\n case 0x6A703268:\n jumpDataLength = false;\n break;\n case 0x636F6C72:\n var method = data[position];\n if (method === 1) {\n var colorspace = (0, _util.readUint32)(data, position + 3);\n switch (colorspace) {\n case 16:\n case 17:\n case 18:\n break;\n default:\n (0, _util.warn)('Unknown colorspace ' + colorspace);\n break;\n }\n } else if (method === 2) {\n (0, _util.info)('ICC profile not supported');\n }\n break;\n case 0x6A703263:\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6A502020:\n if ((0, _util.readUint32)(data, position) !== 0x0d0a870a) {\n (0, _util.warn)('Invalid JP2 signature');\n }\n break;\n case 0x6A501A1A:\n case 0x66747970:\n case 0x72726571:\n case 0x72657320:\n case 0x69686472:\n break;\n default:\n var headerType = String.fromCharCode(tbox >> 24 & 0xFF, tbox >> 16 & 0xFF, tbox >> 8 & 0xFF, tbox & 0xFF);\n (0, _util.warn)('Unsupported header type ' + tbox + ' (' + headerType + ')');\n break;\n }\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n },\n parseImageProperties: function JpxImage_parseImageProperties(stream) {\n var newByte = stream.getByte();\n while (newByte >= 0) {\n var oldByte = newByte;\n newByte = stream.getByte();\n var code = oldByte << 8 | newByte;\n if (code === 0xFF51) {\n stream.skip(4);\n var Xsiz = stream.getInt32() >>> 0;\n var Ysiz = stream.getInt32() >>> 0;\n var XOsiz = stream.getInt32() >>> 0;\n var YOsiz = stream.getInt32() >>> 0;\n stream.skip(16);\n var Csiz = stream.getUint16();\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n this.bitsPerComponent = 8;\n return;\n }\n }\n throw new JpxError('No size marker found in JPX stream');\n },\n parseCodestream: function JpxImage_parseCodestream(data, start, end) {\n var context = {};\n var doNotRecover = false;\n try {\n var position = start;\n while (position + 1 < end) {\n var code = (0, _util.readUint16)(data, position);\n position += 2;\n var length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n switch (code) {\n case 0xFF4F:\n context.mainHeader = true;\n break;\n case 0xFFD9:\n break;\n case 0xFF51:\n length = (0, _util.readUint16)(data, position);\n var siz = {};\n siz.Xsiz = (0, _util.readUint32)(data, position + 4);\n siz.Ysiz = (0, _util.readUint32)(data, position + 8);\n siz.XOsiz = (0, _util.readUint32)(data, position + 12);\n siz.YOsiz = (0, _util.readUint32)(data, position + 16);\n siz.XTsiz = (0, _util.readUint32)(data, position + 20);\n siz.YTsiz = (0, _util.readUint32)(data, position + 24);\n siz.XTOsiz = (0, _util.readUint32)(data, position + 28);\n siz.YTOsiz = (0, _util.readUint32)(data, position + 32);\n var componentsCount = (0, _util.readUint16)(data, position + 36);\n siz.Csiz = componentsCount;\n var components = [];\n j = position + 38;\n for (var i = 0; i < componentsCount; i++) {\n var component = {\n precision: (data[j] & 0x7F) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 1]\n };\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xFF5C:\n length = (0, _util.readUint16)(data, position);\n var qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1F) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error('Invalid SQcd value ' + sqcd);\n }\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n var spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xFF5D:\n length = (0, _util.readUint16)(data, position);\n var qcc = {};\n j = position + 2;\n var cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = (0, _util.readUint16)(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1F) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error('Invalid SQcd value ' + sqcd);\n }\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xFF52:\n length = (0, _util.readUint16)(data, position);\n var cod = {};\n j = position + 2;\n var scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = (0, _util.readUint16)(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xF) + 2;\n cod.ycb = (data[j++] & 0xF) + 2;\n var blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticalyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n if (cod.entropyCoderWithCustomPrecincts) {\n var precinctsSizes = [];\n while (j < length + position) {\n var precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xF,\n PPy: precinctsSize >> 4\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n var unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push('selectiveArithmeticCodingBypass');\n }\n if (cod.resetContextProbabilities) {\n unsupported.push('resetContextProbabilities');\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push('terminationOnEachCodingPass');\n }\n if (cod.verticalyStripe) {\n unsupported.push('verticalyStripe');\n }\n if (cod.predictableTermination) {\n unsupported.push('predictableTermination');\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')');\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xFF90:\n length = (0, _util.readUint16)(data, position);\n tile = {};\n tile.index = (0, _util.readUint16)(data, position + 2);\n tile.length = (0, _util.readUint32)(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n context.mainHeader = false;\n if (tile.partIndex === 0) {\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0);\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0);\n }\n context.currentTile = tile;\n break;\n case 0xFF93:\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xFF55:\n case 0xFF57:\n case 0xFF58:\n case 0xFF64:\n length = (0, _util.readUint16)(data, position);\n break;\n case 0xFF53:\n throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented');\n default:\n throw new Error('Unknown codestream code: ' + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n (0, _util.warn)('JPX: Trying to recover from: ' + e.message);\n }\n }\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n };\n function calculateComponentDimensions(component, siz) {\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n }\n function calculateTileGrids(context, components) {\n var siz = context.SIZ;\n var tile,\n tiles = [];\n var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n for (var q = 0; q < numYtiles; q++) {\n for (var p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n context.tiles = tiles;\n var componentsCount = siz.Csiz;\n for (var i = 0, ii = componentsCount; i < ii; i++) {\n var component = components[i];\n for (var j = 0, jj = tiles.length; j < jj; j++) {\n var tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n }\n function getBlocksDimensions(context, component, r) {\n var codOrCoc = component.codingStyleParameters;\n var result = {};\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n }\n function buildPrecincts(context, resolution, dimensions) {\n var precinctWidth = 1 << dimensions.PPx;\n var precinctHeight = 1 << dimensions.PPy;\n var isZeroRes = resolution.resLevel === 0;\n var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1);\n var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1);\n var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0;\n var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0;\n var numprecincts = numprecinctswide * numprecinctshigh;\n resolution.precinctParameters = {\n precinctWidth: precinctWidth,\n precinctHeight: precinctHeight,\n numprecinctswide: numprecinctswide,\n numprecinctshigh: numprecinctshigh,\n numprecincts: numprecincts,\n precinctWidthInSubband: precinctWidthInSubband,\n precinctHeightInSubband: precinctHeightInSubband\n };\n }\n function buildCodeblocks(context, subband, dimensions) {\n var xcb_ = dimensions.xcb_;\n var ycb_ = dimensions.ycb_;\n var codeblockWidth = 1 << xcb_;\n var codeblockHeight = 1 << ycb_;\n var cbx0 = subband.tbx0 >> xcb_;\n var cby0 = subband.tby0 >> ycb_;\n var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_;\n var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_;\n var precinctParameters = subband.resolution.precinctParameters;\n var codeblocks = [];\n var precincts = [];\n var i, j, codeblock, precinctNumber;\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1)\n };\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband);\n var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband);\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) {\n continue;\n }\n codeblocks.push(codeblock);\n var precinct = precincts[precinctNumber];\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j\n };\n }\n codeblock.precinct = precinct;\n }\n }\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n }\n function createPacket(resolution, precinctNumber, layerNumber) {\n var precinctCodeblocks = [];\n var subbands = resolution.subbands;\n for (var i = 0, ii = subbands.length; i < ii; i++) {\n var subband = subbands[i];\n var codeblocks = subband.codeblocks;\n for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n var codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber: layerNumber,\n codeblocks: precinctCodeblocks\n };\n }\n function LayerResolutionComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n var l = 0,\n r = 0,\n i = 0,\n k = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ResolutionLayerComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n var r = 0,\n l = 0,\n i = 0,\n k = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ResolutionPositionComponentLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var l, r, c, p;\n var maxDecompositionLevelsCount = 0;\n for (c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount);\n }\n var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1);\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n var maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n var resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts);\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n var component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function PositionComponentResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var precinctsIterationSizes = precinctsSizes;\n var l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale = precinctsSizes.components[c].resolutions[r];\n var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n if (k === null) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ComponentPositionResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; c < componentsCount; ++c) {\n var component = tile.components[c];\n var precinctsIterationSizes = precinctsSizes.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale = precinctsIterationSizes.resolutions[r];\n var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n if (k === null) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n var posX = pxIndex * precinctIterationSizes.minWidth;\n var posY = pyIndex * precinctIterationSizes.minHeight;\n if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) {\n return null;\n }\n var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n }\n function getPrecinctSizesInImageScale(tile) {\n var componentsCount = tile.components.length;\n var minWidth = Number.MAX_VALUE;\n var minHeight = Number.MAX_VALUE;\n var maxNumWide = 0;\n var maxNumHigh = 0;\n var sizePerComponent = new Array(componentsCount);\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n var sizePerResolution = new Array(decompositionLevelsCount + 1);\n var minWidthCurrentComponent = Number.MAX_VALUE;\n var minHeightCurrentComponent = Number.MAX_VALUE;\n var maxNumWideCurrentComponent = 0;\n var maxNumHighCurrentComponent = 0;\n var scale = 1;\n for (var r = decompositionLevelsCount; r >= 0; --r) {\n var resolution = component.resolutions[r];\n var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth;\n var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution);\n minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution);\n maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide);\n maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh);\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution\n };\n scale <<= 1;\n }\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent\n };\n }\n return {\n components: sizePerComponent,\n minWidth: minWidth,\n minHeight: minHeight,\n maxNumWide: maxNumWide,\n maxNumHigh: maxNumHigh\n };\n }\n function buildPackets(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var componentsCount = siz.Csiz;\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n var resolutions = [];\n var subbands = [];\n for (var r = 0; r <= decompositionLevelsCount; r++) {\n var blocksDimensions = getBlocksDimensions(context, component, r);\n var resolution = {};\n var scale = 1 << decompositionLevelsCount - r;\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n var subband;\n if (r === 0) {\n subband = {};\n subband.type = 'LL';\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n var bscale = 1 << decompositionLevelsCount - r + 1;\n var resolutionSubbands = [];\n subband = {};\n subband.type = 'HL';\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n subband = {};\n subband.type = 'LH';\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n subband = {};\n subband.type = 'HH';\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n resolution.subbands = resolutionSubbands;\n }\n }\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(context);\n break;\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context);\n break;\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context);\n break;\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(context);\n break;\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context);\n break;\n default:\n throw new JpxError('Unsupported progression order ' + progressionOrder);\n }\n }\n function parseTilePackets(context, data, offset, dataLength) {\n var position = 0;\n var buffer,\n bufferSize = 0,\n skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n var b = data[offset + position];\n position++;\n if (skipNextBit) {\n buffer = buffer << 7 | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = buffer << 8 | b;\n bufferSize += 8;\n }\n if (b === 0xFF) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return buffer >>> bufferSize & (1 << count) - 1;\n }\n function skipMarkerIfEqual(value) {\n if (data[offset + position - 1] === 0xFF && data[offset + position] === value) {\n skipBytes(1);\n return true;\n } else if (data[offset + position] === 0xFF && data[offset + position + 1] === value) {\n skipBytes(2);\n return true;\n }\n return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n var value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\n }\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var sopMarkerUsed = context.COD.sopMarkerUsed;\n var ephMarkerUsed = context.COD.ephMarkerUsed;\n var packetsIterator = tile.packetsIterator;\n while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n skipBytes(4);\n }\n var packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n var layerNumber = packet.layerNumber;\n var queue = [],\n codeblock;\n for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n var precinct = codeblock.precinct;\n var codeblockColumn = codeblock.cbx - precinct.cbxMin;\n var codeblockRow = codeblock.cby - precinct.cbyMin;\n var codeblockIncluded = false;\n var firstTimeInclusion = false;\n var valueReady;\n if (codeblock['included'] !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n precinct = codeblock.precinct;\n var inclusionTree, zeroBitPlanesTree;\n if (precinct['inclusionTree'] !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n var width = precinct.cbxMax - precinct.cbxMin + 1;\n var height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n }\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n var codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n var codingpassesLog2 = (0, _util.log2)(codingpasses);\n var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n var codedDataLength = readBits(bits);\n queue.push({\n codeblock: codeblock,\n codingpasses: codingpasses,\n dataLength: codedDataLength\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n var packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock['data'] === undefined) {\n codeblock.data = [];\n }\n codeblock.data.push({\n data: data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses\n });\n position += packetItem.dataLength;\n }\n }\n return position;\n }\n function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) {\n var x0 = subband.tbx0;\n var y0 = subband.tby0;\n var width = subband.tbx1 - subband.tbx0;\n var codeblocks = subband.codeblocks;\n var right = subband.type.charAt(0) === 'H' ? 1 : 0;\n var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0;\n for (var i = 0, ii = codeblocks.length; i < ii; ++i) {\n var codeblock = codeblocks[i];\n var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n var blockHeight = codeblock.tby1_ - codeblock.tby0_;\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock['data'] === undefined) {\n continue;\n }\n var bitModel, currentCodingpassType;\n bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb);\n currentCodingpassType = 2;\n var data = codeblock.data,\n totalLength = 0,\n codingpasses = 0;\n var j, jj, dataItem;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n var encodedData = new Uint8Array(totalLength);\n var position = 0;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n var decoder = new _arithmetic_decoder.ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n break;\n }\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n var sign = bitModel.coefficentsSign;\n var magnitude = bitModel.coefficentsMagnitude;\n var bitsDecoded = bitModel.bitsDecoded;\n var magnitudeCorrection = reversible ? 0 : 0.5;\n var k, n, nb;\n position = 0;\n var interleave = subband.type !== 'LL';\n for (j = 0; j < blockHeight; j++) {\n var row = offset / width | 0;\n var levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n var pos = interleave ? levelOffset + (offset << 1) : offset;\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << mb - nb);\n }\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\n }\n }\n }\n function transformTile(context, tile, c) {\n var component = tile.components[c];\n var codingStyleParameters = component.codingStyleParameters;\n var quantizationParameters = component.quantizationParameters;\n var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount;\n var spqcds = quantizationParameters.SPqcds;\n var scalarExpounded = quantizationParameters.scalarExpounded;\n var guardBits = quantizationParameters.guardBits;\n var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n var precision = context.components[c].precision;\n var reversible = codingStyleParameters.reversibleTransformation;\n var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform();\n var subbandCoefficients = [];\n var b = 0;\n for (var i = 0; i <= decompositionLevelsCount; i++) {\n var resolution = component.resolutions[i];\n var width = resolution.trx1 - resolution.trx0;\n var height = resolution.try1 - resolution.try0;\n var coefficients = new Float32Array(width * height);\n for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {\n var mu, epsilon;\n if (!scalarExpounded) {\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n var subband = resolution.subbands[j];\n var gainLog2 = SubbandsGainLog2[subband.type];\n var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048);\n var mb = guardBits + epsilon - 1;\n copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed);\n }\n subbandCoefficients.push({\n width: width,\n height: height,\n items: coefficients\n });\n }\n var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0);\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items\n };\n }\n function transformComponents(context) {\n var siz = context.SIZ;\n var components = context.components;\n var componentsCount = siz.Csiz;\n var resultImages = [];\n for (var i = 0, ii = context.tiles.length; i < ii; i++) {\n var tile = context.tiles[i];\n var transformedTiles = [];\n var c;\n for (c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n var tile0 = transformedTiles[0];\n var out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n var result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out\n };\n var shift, offset;\n var pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n var fourComponents = componentsCount === 4;\n var y0items = transformedTiles[0].items;\n var y1items = transformedTiles[1].items;\n var y2items = transformedTiles[2].items;\n var y3items = fourComponents ? transformedTiles[3].items : null;\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n var component0 = tile.components[0];\n var alpha01 = componentsCount - 3;\n jj = y0items.length;\n if (!component0.codingStyleParameters.reversibleTransformation) {\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = y0 + 1.402 * y2 >> shift;\n out[pos++] = y0 - 0.34413 * y1 - 0.71414 * y2 >> shift;\n out[pos++] = y0 + 1.772 * y1 >> shift;\n }\n } else {\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n var g = y0 - (y2 + y1 >> 2);\n out[pos++] = g + y2 >> shift;\n out[pos++] = g >> shift;\n out[pos++] = g + y1 >> shift;\n }\n }\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = y3items[j] + offset >> shift;\n }\n }\n } else {\n for (c = 0; c < componentsCount; c++) {\n var items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = items[j] + offset >> shift;\n pos += componentsCount;\n }\n }\n }\n resultImages.push(result);\n }\n return resultImages;\n }\n function initializeTile(context, tileIndex) {\n var siz = context.SIZ;\n var componentsCount = siz.Csiz;\n var tile = context.tiles[tileIndex];\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n }\n var TagTree = function TagTreeClosure() {\n function TagTree(width, height) {\n var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n for (var i = 0; i < levelsLength; i++) {\n var level = {\n width: width,\n height: height,\n items: []\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n TagTree.prototype = {\n reset: function TagTree_reset(i, j) {\n var currentLevel = 0,\n value = 0,\n level;\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n var index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n },\n incrementValue: function TagTree_incrementValue() {\n var level = this.levels[this.currentLevel];\n level.items[level.index]++;\n },\n nextLevel: function TagTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n currentLevel--;\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n };\n return TagTree;\n }();\n var InclusionTree = function InclusionTreeClosure() {\n function InclusionTree(width, height, defaultValue) {\n var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n for (var i = 0; i < levelsLength; i++) {\n var items = new Uint8Array(width * height);\n for (var j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n var level = {\n width: width,\n height: height,\n items: items\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n InclusionTree.prototype = {\n reset: function InclusionTree_reset(i, j, stopValue) {\n var currentLevel = 0;\n while (currentLevel < this.levels.length) {\n var level = this.levels[currentLevel];\n var index = i + j * level.width;\n level.index = index;\n var value = level.items[index];\n if (value === 0xFF) {\n break;\n }\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n this.propagateValues();\n return false;\n }\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n this.currentLevel = currentLevel - 1;\n return true;\n },\n incrementValue: function InclusionTree_incrementValue(stopValue) {\n var level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n },\n propagateValues: function InclusionTree_propagateValues() {\n var levelIndex = this.currentLevel;\n var level = this.levels[levelIndex];\n var currentValue = level.items[level.index];\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n },\n nextLevel: function InclusionTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n level.items[level.index] = 0xFF;\n currentLevel--;\n if (currentLevel < 0) {\n return false;\n }\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n };\n return InclusionTree;\n }();\n var BitModel = function BitModelClosure() {\n var UNIFORM_CONTEXT = 17;\n var RUNLENGTH_CONTEXT = 18;\n var LLAndLHContextsLabel = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]);\n var HLContextLabel = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]);\n var HHContextLabel = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]);\n function BitModel(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel;\n var coefficientCount = width * height;\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount);\n this.processingFlags = new Uint8Array(coefficientCount);\n var bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (var i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n this.reset();\n }\n BitModel.prototype = {\n setDecoder: function BitModel_setDecoder(decoder) {\n this.decoder = decoder;\n },\n reset: function BitModel_reset() {\n this.contexts = new Int8Array(19);\n this.contexts[0] = 4 << 1 | 0;\n this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0;\n this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0;\n },\n setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) {\n var neighborsSignificance = this.neighborsSignificance;\n var width = this.width,\n height = this.height;\n var left = column > 0;\n var right = column + 1 < width;\n var i;\n if (row > 0) {\n i = index - width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n neighborsSignificance[index] |= 0x80;\n },\n runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var neighborsSignificance = this.neighborsSignificance;\n var processingFlags = this.processingFlags;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processedInverseMask = ~1;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n for (var i0 = 0; i0 < height; i0 += 4) {\n for (var j = 0; j < width; j++) {\n var index = i0 * width + j;\n for (var i1 = 0; i1 < 4; i1++, index += width) {\n var i = i0 + i1;\n if (i >= height) {\n break;\n }\n processingFlags[index] &= processedInverseMask;\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n if (decision) {\n var sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n decodeSignBit: function BitModel_decodeSignBit(row, column, index) {\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contribution, sign0, sign1, significance1;\n var contextLabel, decoded;\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n var horizontalContribution = 3 * contribution;\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n return decoded;\n },\n runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var neighborsSignificance = this.neighborsSignificance;\n var contexts = this.contexts;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var length = width * height;\n var width4 = width * 4;\n for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n for (var j = 0; j < width; j++) {\n for (var index = index0 + j; index < indexNext; index += width) {\n if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n var contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n var significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n var bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n runCleanupPass: function BitModel_runCleanupPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var neighborsSignificance = this.neighborsSignificance;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var oneRowDown = width;\n var twoRowsDown = width * 2;\n var threeRowsDown = width * 3;\n var iNext;\n for (var i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n var indexBase = i0 * width;\n var checkAllEmpty = i0 + 3 < height;\n for (var j = 0; j < width; j++) {\n var index0 = indexBase + j;\n var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0;\n var i1 = 0,\n index = index0;\n var i = i0,\n sign;\n if (allEmpty) {\n var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue;\n }\n i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n index = index0;\n for (var i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n }\n }\n }\n },\n checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() {\n var decoder = this.decoder;\n var contexts = this.contexts;\n var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (symbol !== 0xA) {\n throw new JpxError('Invalid segmentation symbol');\n }\n }\n };\n return BitModel;\n }();\n var Transform = function TransformClosure() {\n function Transform() {}\n Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) {\n var ll = subbands[0];\n for (var i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n };\n Transform.prototype.extend = function extend(buffer, offset, size) {\n var i1 = offset - 1,\n j1 = offset + 1;\n var i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n };\n Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) {\n var llWidth = ll.width,\n llHeight = ll.height,\n llItems = ll.items;\n var width = hl_lh_hh.width;\n var height = hl_lh_hh.height;\n var items = hl_lh_hh.items;\n var i, j, k, l, u, v;\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n llItems = ll.items = null;\n var bufferPadding = 4;\n var rowBuffer = new Float32Array(width + 2 * bufferPadding);\n if (width === 1) {\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n var numBuffers = 16;\n var colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n var b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n if (height === 1) {\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n currentBuffer = numBuffers;\n }\n currentBuffer--;\n var buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n return {\n width: width,\n height: height,\n items: items\n };\n };\n return Transform;\n }();\n var IrreversibleTransform = function IrreversibleTransformClosure() {\n function IrreversibleTransform() {\n Transform.call(this);\n }\n IrreversibleTransform.prototype = Object.create(Transform.prototype);\n IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n, current, next;\n var alpha = -1.586134342059924;\n var beta = -0.052980118572961;\n var gamma = 0.882911075530934;\n var delta = 0.443506852043971;\n var K = 1.230174104914001;\n var K_ = 1 / K;\n j = offset - 3;\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n };\n return IrreversibleTransform;\n }();\n var ReversibleTransform = function ReversibleTransformClosure() {\n function ReversibleTransform() {\n Transform.call(this);\n }\n ReversibleTransform.prototype = Object.create(Transform.prototype);\n ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n;\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= x[j - 1] + x[j + 1] + 2 >> 2;\n }\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += x[j - 1] + x[j + 1] >> 1;\n }\n };\n return ReversibleTransform;\n }();\n return JpxImage;\n }();\n exports.JpxImage = JpxImage;\n\n /***/\n }, /* 58 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = undefined;\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _util = __w_pdfjs_require__(0);\n var _primitives = __w_pdfjs_require__(1);\n var _parser = __w_pdfjs_require__(23);\n var _chunked_stream = __w_pdfjs_require__(54);\n var _crypto = __w_pdfjs_require__(55);\n var _colorspace = __w_pdfjs_require__(15);\n var Catalog = function CatalogClosure() {\n function Catalog(pdfManager, xref, pageFactory) {\n this.pdfManager = pdfManager;\n this.xref = xref;\n this.catDict = xref.getCatalogObj();\n if (!(0, _primitives.isDict)(this.catDict)) {\n throw new _util.FormatError('catalog object is not a dictionary');\n }\n this.fontCache = new _primitives.RefSetCache();\n this.builtInCMapCache = Object.create(null);\n this.pageKidsCountCache = new _primitives.RefSetCache();\n this.pageFactory = pageFactory;\n this.pagePromises = [];\n }\n Catalog.prototype = {\n get metadata() {\n var streamRef = this.catDict.getRaw('Metadata');\n if (!(0, _primitives.isRef)(streamRef)) {\n return (0, _util.shadow)(this, 'metadata', null);\n }\n var encryptMetadata = !this.xref.encrypt ? false : this.xref.encrypt.encryptMetadata;\n var stream = this.xref.fetch(streamRef, !encryptMetadata);\n var metadata;\n if (stream && (0, _primitives.isDict)(stream.dict)) {\n var type = stream.dict.get('Type');\n var subtype = stream.dict.get('Subtype');\n if ((0, _primitives.isName)(type, 'Metadata') && (0, _primitives.isName)(subtype, 'XML')) {\n try {\n metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes()));\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n throw e;\n }\n (0, _util.info)('Skipping invalid metadata.');\n }\n }\n }\n return (0, _util.shadow)(this, 'metadata', metadata);\n },\n get toplevelPagesDict() {\n var pagesObj = this.catDict.get('Pages');\n if (!(0, _primitives.isDict)(pagesObj)) {\n throw new _util.FormatError('invalid top-level pages dictionary');\n }\n return (0, _util.shadow)(this, 'toplevelPagesDict', pagesObj);\n },\n get documentOutline() {\n var obj = null;\n try {\n obj = this.readDocumentOutline();\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Unable to read document outline');\n }\n return (0, _util.shadow)(this, 'documentOutline', obj);\n },\n readDocumentOutline: function Catalog_readDocumentOutline() {\n var obj = this.catDict.get('Outlines');\n if (!(0, _primitives.isDict)(obj)) {\n return null;\n }\n obj = obj.getRaw('First');\n if (!(0, _primitives.isRef)(obj)) {\n return null;\n }\n var root = {\n items: []\n };\n var queue = [{\n obj: obj,\n parent: root\n }];\n var processed = new _primitives.RefSet();\n processed.put(obj);\n var xref = this.xref,\n blackColor = new Uint8Array(3);\n while (queue.length > 0) {\n var i = queue.shift();\n var outlineDict = xref.fetchIfRef(i.obj);\n if (outlineDict === null) {\n continue;\n }\n if (!outlineDict.has('Title')) {\n throw new _util.FormatError('Invalid outline item');\n }\n var data = {\n url: null,\n dest: null\n };\n Catalog.parseDestDictionary({\n destDict: outlineDict,\n resultObj: data,\n docBaseUrl: this.pdfManager.docBaseUrl\n });\n var title = outlineDict.get('Title');\n var flags = outlineDict.get('F') || 0;\n var color = outlineDict.getArray('C'),\n rgbColor = blackColor;\n if ((0, _util.isArray)(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {\n rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0);\n }\n var outlineItem = {\n dest: data.dest,\n url: data.url,\n unsafeUrl: data.unsafeUrl,\n newWindow: data.newWindow,\n title: (0, _util.stringToPDFString)(title),\n color: rgbColor,\n count: outlineDict.get('Count'),\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: []\n };\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw('First');\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj: obj,\n parent: outlineItem\n });\n processed.put(obj);\n }\n obj = outlineDict.getRaw('Next');\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj: obj,\n parent: i.parent\n });\n processed.put(obj);\n }\n }\n return root.items.length > 0 ? root.items : null;\n },\n get numPages() {\n var obj = this.toplevelPagesDict.get('Count');\n if (!(0, _util.isInt)(obj)) {\n throw new _util.FormatError('page count in top level pages object is not an integer');\n }\n return (0, _util.shadow)(this, 'numPages', obj);\n },\n get destinations() {\n function fetchDestination(dest) {\n return (0, _primitives.isDict)(dest) ? dest.get('D') : dest;\n }\n var xref = this.xref;\n var dests = {},\n nameTreeRef,\n nameDictionaryRef;\n var obj = this.catDict.get('Names');\n if (obj && obj.has('Dests')) {\n nameTreeRef = obj.getRaw('Dests');\n } else if (this.catDict.has('Dests')) {\n nameDictionaryRef = this.catDict.get('Dests');\n }\n if (nameDictionaryRef) {\n obj = nameDictionaryRef;\n obj.forEach(function catalogForEach(key, value) {\n if (!value) {\n return;\n }\n dests[key] = fetchDestination(value);\n });\n }\n if (nameTreeRef) {\n var nameTree = new NameTree(nameTreeRef, xref);\n var names = nameTree.getAll();\n for (var name in names) {\n dests[name] = fetchDestination(names[name]);\n }\n }\n return (0, _util.shadow)(this, 'destinations', dests);\n },\n getDestination: function Catalog_getDestination(destinationId) {\n function fetchDestination(dest) {\n return (0, _primitives.isDict)(dest) ? dest.get('D') : dest;\n }\n var xref = this.xref;\n var dest = null,\n nameTreeRef,\n nameDictionaryRef;\n var obj = this.catDict.get('Names');\n if (obj && obj.has('Dests')) {\n nameTreeRef = obj.getRaw('Dests');\n } else if (this.catDict.has('Dests')) {\n nameDictionaryRef = this.catDict.get('Dests');\n }\n if (nameDictionaryRef) {\n var value = nameDictionaryRef.get(destinationId);\n if (value) {\n dest = fetchDestination(value);\n }\n }\n if (nameTreeRef) {\n var nameTree = new NameTree(nameTreeRef, xref);\n dest = fetchDestination(nameTree.get(destinationId));\n }\n return dest;\n },\n get pageLabels() {\n var obj = null;\n try {\n obj = this.readPageLabels();\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Unable to read page labels.');\n }\n return (0, _util.shadow)(this, 'pageLabels', obj);\n },\n readPageLabels: function Catalog_readPageLabels() {\n var obj = this.catDict.getRaw('PageLabels');\n if (!obj) {\n return null;\n }\n var pageLabels = new Array(this.numPages);\n var style = null;\n var prefix = '';\n var numberTree = new NumberTree(obj, this.xref);\n var nums = numberTree.getAll();\n var currentLabel = '',\n currentIndex = 1;\n for (var i = 0, ii = this.numPages; i < ii; i++) {\n if (i in nums) {\n var labelDict = nums[i];\n if (!(0, _primitives.isDict)(labelDict)) {\n throw new _util.FormatError('The PageLabel is not a dictionary.');\n }\n var type = labelDict.get('Type');\n if (type && !(0, _primitives.isName)(type, 'PageLabel')) {\n throw new _util.FormatError('Invalid type in PageLabel dictionary.');\n }\n var s = labelDict.get('S');\n if (s && !(0, _primitives.isName)(s)) {\n throw new _util.FormatError('Invalid style in PageLabel dictionary.');\n }\n style = s ? s.name : null;\n var p = labelDict.get('P');\n if (p && !(0, _util.isString)(p)) {\n throw new _util.FormatError('Invalid prefix in PageLabel dictionary.');\n }\n prefix = p ? (0, _util.stringToPDFString)(p) : '';\n var st = labelDict.get('St');\n if (st && !((0, _util.isInt)(st) && st >= 1)) {\n throw new _util.FormatError('Invalid start in PageLabel dictionary.');\n }\n currentIndex = st || 1;\n }\n switch (style) {\n case 'D':\n currentLabel = currentIndex;\n break;\n case 'R':\n case 'r':\n currentLabel = _util.Util.toRoman(currentIndex, style === 'r');\n break;\n case 'A':\n case 'a':\n var LIMIT = 26;\n var A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n var baseCharCode = style === 'a' ? A_LOWER_CASE : A_UPPER_CASE;\n var letterIndex = currentIndex - 1;\n var character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n var charBuf = [];\n for (var j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) {\n charBuf.push(character);\n }\n currentLabel = charBuf.join('');\n break;\n default:\n if (style) {\n throw new _util.FormatError('Invalid style \"' + style + '\" in PageLabel dictionary.');\n }\n }\n pageLabels[i] = prefix + currentLabel;\n currentLabel = '';\n currentIndex++;\n }\n return pageLabels;\n },\n get pageMode() {\n var obj = this.catDict.get('PageMode');\n var pageMode = 'UseNone';\n if ((0, _primitives.isName)(obj)) {\n switch (obj.name) {\n case 'UseNone':\n case 'UseOutlines':\n case 'UseThumbs':\n case 'FullScreen':\n case 'UseOC':\n case 'UseAttachments':\n pageMode = obj.name;\n }\n }\n return (0, _util.shadow)(this, 'pageMode', pageMode);\n },\n get attachments() {\n var xref = this.xref;\n var attachments = null,\n nameTreeRef;\n var obj = this.catDict.get('Names');\n if (obj) {\n nameTreeRef = obj.getRaw('EmbeddedFiles');\n }\n if (nameTreeRef) {\n var nameTree = new NameTree(nameTreeRef, xref);\n var names = nameTree.getAll();\n for (var name in names) {\n var fs = new FileSpec(names[name], xref);\n if (!attachments) {\n attachments = Object.create(null);\n }\n attachments[(0, _util.stringToPDFString)(name)] = fs.serializable;\n }\n }\n return (0, _util.shadow)(this, 'attachments', attachments);\n },\n get javaScript() {\n var xref = this.xref;\n var obj = this.catDict.get('Names');\n var javaScript = [];\n function appendIfJavaScriptDict(jsDict) {\n var type = jsDict.get('S');\n if (!(0, _primitives.isName)(type, 'JavaScript')) {\n return;\n }\n var js = jsDict.get('JS');\n if ((0, _primitives.isStream)(js)) {\n js = (0, _util.bytesToString)(js.getBytes());\n } else if (!(0, _util.isString)(js)) {\n return;\n }\n javaScript.push((0, _util.stringToPDFString)(js));\n }\n if (obj && obj.has('JavaScript')) {\n var nameTree = new NameTree(obj.getRaw('JavaScript'), xref);\n var names = nameTree.getAll();\n for (var name in names) {\n var jsDict = names[name];\n if ((0, _primitives.isDict)(jsDict)) {\n appendIfJavaScriptDict(jsDict);\n }\n }\n }\n var openactionDict = this.catDict.get('OpenAction');\n if ((0, _primitives.isDict)(openactionDict, 'Action')) {\n var actionType = openactionDict.get('S');\n if ((0, _primitives.isName)(actionType, 'Named')) {\n var action = openactionDict.get('N');\n if ((0, _primitives.isName)(action, 'Print')) {\n javaScript.push('print({});');\n }\n } else {\n appendIfJavaScriptDict(openactionDict);\n }\n }\n return (0, _util.shadow)(this, 'javaScript', javaScript);\n },\n cleanup: function Catalog_cleanup() {\n var _this = this;\n this.pageKidsCountCache.clear();\n var promises = [];\n this.fontCache.forEach(function (promise) {\n promises.push(promise);\n });\n return Promise.all(promises).then(function (translatedFonts) {\n for (var i = 0, ii = translatedFonts.length; i < ii; i++) {\n var font = translatedFonts[i].dict;\n delete font.translated;\n }\n _this.fontCache.clear();\n _this.builtInCMapCache = Object.create(null);\n });\n },\n getPage: function Catalog_getPage(pageIndex) {\n var _this2 = this;\n if (!(pageIndex in this.pagePromises)) {\n this.pagePromises[pageIndex] = this.getPageDict(pageIndex).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n dict = _ref2[0],\n ref = _ref2[1];\n return _this2.pageFactory.createPage(pageIndex, dict, ref, _this2.fontCache, _this2.builtInCMapCache);\n });\n }\n return this.pagePromises[pageIndex];\n },\n getPageDict: function Catalog_getPageDict(pageIndex) {\n var capability = (0, _util.createPromiseCapability)();\n var nodesToVisit = [this.catDict.getRaw('Pages')];\n var count,\n currentPageIndex = 0;\n var xref = this.xref,\n pageKidsCountCache = this.pageKidsCountCache;\n function next() {\n while (nodesToVisit.length) {\n var currentNode = nodesToVisit.pop();\n if ((0, _primitives.isRef)(currentNode)) {\n count = pageKidsCountCache.get(currentNode);\n if (count > 0 && currentPageIndex + count < pageIndex) {\n currentPageIndex += count;\n continue;\n }\n xref.fetchAsync(currentNode).then(function (obj) {\n if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Kids')) {\n if (pageIndex === currentPageIndex) {\n if (currentNode && !pageKidsCountCache.has(currentNode)) {\n pageKidsCountCache.put(currentNode, 1);\n }\n capability.resolve([obj, currentNode]);\n } else {\n currentPageIndex++;\n next();\n }\n return;\n }\n nodesToVisit.push(obj);\n next();\n }, capability.reject);\n return;\n }\n if (!(0, _primitives.isDict)(currentNode)) {\n capability.reject(new _util.FormatError('page dictionary kid reference points to wrong type of object'));\n return;\n }\n count = currentNode.get('Count');\n var objId = currentNode.objId;\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n var kids = currentNode.get('Kids');\n if (!(0, _util.isArray)(kids)) {\n capability.reject(new _util.FormatError('page dictionary kids object is not an array'));\n return;\n }\n for (var last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n }\n capability.reject(new Error('Page index ' + pageIndex + ' not found.'));\n }\n next();\n return capability.promise;\n },\n getPageIndex: function Catalog_getPageIndex(pageRef) {\n var xref = this.xref;\n function pagesBeforeRef(kidRef) {\n var total = 0;\n var parentRef;\n return xref.fetchAsync(kidRef).then(function (node) {\n if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, 'Page') && !((0, _primitives.isDict)(node) && !node.has('Type') && node.has('Contents'))) {\n throw new _util.FormatError('The reference does not point to a /Page Dict.');\n }\n if (!node) {\n return null;\n }\n if (!(0, _primitives.isDict)(node)) {\n throw new _util.FormatError('node must be a Dict.');\n }\n parentRef = node.getRaw('Parent');\n return node.getAsync('Parent');\n }).then(function (parent) {\n if (!parent) {\n return null;\n }\n if (!(0, _primitives.isDict)(parent)) {\n throw new _util.FormatError('parent must be a Dict.');\n }\n return parent.getAsync('Kids');\n }).then(function (kids) {\n if (!kids) {\n return null;\n }\n var kidPromises = [];\n var found = false;\n for (var i = 0; i < kids.length; i++) {\n var kid = kids[i];\n if (!(0, _primitives.isRef)(kid)) {\n throw new _util.FormatError('kid must be a Ref.');\n }\n if (kid.num === kidRef.num) {\n found = true;\n break;\n }\n kidPromises.push(xref.fetchAsync(kid).then(function (kid) {\n if (kid.has('Count')) {\n var count = kid.get('Count');\n total += count;\n } else {\n total++;\n }\n }));\n }\n if (!found) {\n throw new _util.FormatError('kid ref not found in parents kids');\n }\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n var total = 0;\n function next(ref) {\n return pagesBeforeRef(ref).then(function (args) {\n if (!args) {\n return total;\n }\n var count = args[0];\n var parentRef = args[1];\n total += count;\n return next(parentRef);\n });\n }\n return next(pageRef);\n }\n };\n Catalog.parseDestDictionary = function Catalog_parseDestDictionary(params) {\n function addDefaultProtocolToUrl(url) {\n if (url.indexOf('www.') === 0) {\n return 'http://' + url;\n }\n return url;\n }\n function tryConvertUrlEncoding(url) {\n try {\n return (0, _util.stringToUTF8String)(url);\n } catch (e) {\n return url;\n }\n }\n var destDict = params.destDict;\n if (!(0, _primitives.isDict)(destDict)) {\n (0, _util.warn)('parseDestDictionary: \"destDict\" must be a dictionary.');\n return;\n }\n var resultObj = params.resultObj;\n if ((typeof resultObj === 'undefined' ? 'undefined' : _typeof(resultObj)) !== 'object') {\n (0, _util.warn)('parseDestDictionary: \"resultObj\" must be an object.');\n return;\n }\n var docBaseUrl = params.docBaseUrl || null;\n var action = destDict.get('A'),\n url,\n dest;\n if (!(0, _primitives.isDict)(action) && destDict.has('Dest')) {\n action = destDict.get('Dest');\n }\n if ((0, _primitives.isDict)(action)) {\n var actionType = action.get('S');\n if (!(0, _primitives.isName)(actionType)) {\n (0, _util.warn)('parseDestDictionary: Invalid type in Action dictionary.');\n return;\n }\n var actionName = actionType.name;\n switch (actionName) {\n case 'URI':\n url = action.get('URI');\n if ((0, _primitives.isName)(url)) {\n url = '/' + url.name;\n } else if ((0, _util.isString)(url)) {\n url = addDefaultProtocolToUrl(url);\n }\n break;\n case 'GoTo':\n dest = action.get('D');\n break;\n case 'Launch':\n case 'GoToR':\n var urlDict = action.get('F');\n if ((0, _primitives.isDict)(urlDict)) {\n url = urlDict.get('F') || null;\n } else if ((0, _util.isString)(urlDict)) {\n url = urlDict;\n }\n var remoteDest = action.get('D');\n if (remoteDest) {\n if ((0, _primitives.isName)(remoteDest)) {\n remoteDest = remoteDest.name;\n }\n if ((0, _util.isString)(url)) {\n var baseUrl = url.split('#')[0];\n if ((0, _util.isString)(remoteDest)) {\n url = baseUrl + '#' + remoteDest;\n } else if ((0, _util.isArray)(remoteDest)) {\n url = baseUrl + '#' + JSON.stringify(remoteDest);\n }\n }\n }\n var newWindow = action.get('NewWindow');\n if ((0, _util.isBool)(newWindow)) {\n resultObj.newWindow = newWindow;\n }\n break;\n case 'Named':\n var namedAction = action.get('N');\n if ((0, _primitives.isName)(namedAction)) {\n resultObj.action = namedAction.name;\n }\n break;\n case 'JavaScript':\n var jsAction = action.get('JS'),\n js;\n if ((0, _primitives.isStream)(jsAction)) {\n js = (0, _util.bytesToString)(jsAction.getBytes());\n } else if ((0, _util.isString)(jsAction)) {\n js = jsAction;\n }\n if (js) {\n var URL_OPEN_METHODS = ['app.launchURL', 'window.open'];\n var regex = new RegExp('^\\\\s*(' + URL_OPEN_METHODS.join('|').split('.').join('\\\\.') + ')\\\\((?:\\'|\\\")([^\\'\\\"]*)(?:\\'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))', 'i');\n var jsUrl = regex.exec((0, _util.stringToPDFString)(js));\n if (jsUrl && jsUrl[2]) {\n url = jsUrl[2];\n if (jsUrl[3] === 'true' && jsUrl[1] === 'app.launchURL') {\n resultObj.newWindow = true;\n }\n break;\n }\n }\n default:\n (0, _util.warn)('parseDestDictionary: Unsupported Action type \"' + actionName + '\".');\n break;\n }\n } else if (destDict.has('Dest')) {\n dest = destDict.get('Dest');\n }\n if ((0, _util.isString)(url)) {\n url = tryConvertUrlEncoding(url);\n var absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl);\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n resultObj.unsafeUrl = url;\n }\n if (dest) {\n if ((0, _primitives.isName)(dest)) {\n dest = dest.name;\n }\n if ((0, _util.isString)(dest) || (0, _util.isArray)(dest)) {\n resultObj.dest = dest;\n }\n }\n };\n return Catalog;\n }();\n var XRef = function XRefClosure() {\n function XRef(stream, pdfManager) {\n this.stream = stream;\n this.pdfManager = pdfManager;\n this.entries = [];\n this.xrefstms = Object.create(null);\n this.cache = [];\n this.stats = {\n streamTypes: [],\n fontTypes: []\n };\n }\n XRef.prototype = {\n setStartXRef: function XRef_setStartXRef(startXRef) {\n this.startXRefQueue = [startXRef];\n },\n parse: function XRef_parse(recoveryMode) {\n var trailerDict;\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n (0, _util.warn)('Indexing all PDF objects');\n trailerDict = this.indexObjects();\n }\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n var encrypt = trailerDict.get('Encrypt');\n if ((0, _primitives.isDict)(encrypt)) {\n var ids = trailerDict.get('ID');\n var fileId = ids && ids.length ? ids[0] : '';\n encrypt.suppressEncryption = true;\n this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password);\n }\n if (!(this.root = trailerDict.get('Root'))) {\n throw new _util.FormatError('Invalid root reference');\n }\n },\n processXRefTable: function XRef_processXRefTable(parser) {\n if (!('tableState' in this)) {\n this.tableState = {\n entryNum: 0,\n streamPos: parser.lexer.stream.pos,\n parserBuf1: parser.buf1,\n parserBuf2: parser.buf2\n };\n }\n var obj = this.readXRefTable(parser);\n if (!(0, _primitives.isCmd)(obj, 'trailer')) {\n throw new _util.FormatError('Invalid XRef table: could not find trailer dictionary');\n }\n var dict = parser.getObj();\n if (!(0, _primitives.isDict)(dict) && dict.dict) {\n dict = dict.dict;\n }\n if (!(0, _primitives.isDict)(dict)) {\n throw new _util.FormatError('Invalid XRef table: could not parse trailer dictionary');\n }\n delete this.tableState;\n return dict;\n },\n readXRefTable: function XRef_readXRefTable(parser) {\n var stream = parser.lexer.stream;\n var tableState = this.tableState;\n stream.pos = tableState.streamPos;\n parser.buf1 = tableState.parserBuf1;\n parser.buf2 = tableState.parserBuf2;\n var obj;\n while (true) {\n if (!('firstEntryNum' in tableState) || !('entryCount' in tableState)) {\n if ((0, _primitives.isCmd)(obj = parser.getObj(), 'trailer')) {\n break;\n }\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n var first = tableState.firstEntryNum;\n var count = tableState.entryCount;\n if (!(0, _util.isInt)(first) || !(0, _util.isInt)(count)) {\n throw new _util.FormatError('Invalid XRef table: wrong types in subsection header');\n }\n for (var i = tableState.entryNum; i < count; i++) {\n tableState.streamPos = stream.pos;\n tableState.entryNum = i;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n var entry = {};\n entry.offset = parser.getObj();\n entry.gen = parser.getObj();\n var type = parser.getObj();\n if ((0, _primitives.isCmd)(type, 'f')) {\n entry.free = true;\n } else if ((0, _primitives.isCmd)(type, 'n')) {\n entry.uncompressed = true;\n }\n if (!(0, _util.isInt)(entry.offset) || !(0, _util.isInt)(entry.gen) || !(entry.free || entry.uncompressed)) {\n throw new _util.FormatError('Invalid entry in XRef subsection: ' + first + ', ' + count);\n }\n if (i === 0 && entry.free && first === 1) {\n first = 0;\n }\n if (!this.entries[i + first]) {\n this.entries[i + first] = entry;\n }\n }\n tableState.entryNum = 0;\n tableState.streamPos = stream.pos;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n delete tableState.firstEntryNum;\n delete tableState.entryCount;\n }\n if (this.entries[0] && !this.entries[0].free) {\n throw new _util.FormatError('Invalid XRef table: unexpected first object');\n }\n return obj;\n },\n processXRefStream: function XRef_processXRefStream(stream) {\n if (!('streamState' in this)) {\n var streamParameters = stream.dict;\n var byteWidths = streamParameters.get('W');\n var range = streamParameters.get('Index');\n if (!range) {\n range = [0, streamParameters.get('Size')];\n }\n this.streamState = {\n entryRanges: range,\n byteWidths: byteWidths,\n entryNum: 0,\n streamPos: stream.pos\n };\n }\n this.readXRefStream(stream);\n delete this.streamState;\n return stream.dict;\n },\n readXRefStream: function XRef_readXRefStream(stream) {\n var i, j;\n var streamState = this.streamState;\n stream.pos = streamState.streamPos;\n var byteWidths = streamState.byteWidths;\n var typeFieldWidth = byteWidths[0];\n var offsetFieldWidth = byteWidths[1];\n var generationFieldWidth = byteWidths[2];\n var entryRanges = streamState.entryRanges;\n while (entryRanges.length > 0) {\n var first = entryRanges[0];\n var n = entryRanges[1];\n if (!(0, _util.isInt)(first) || !(0, _util.isInt)(n)) {\n throw new _util.FormatError('Invalid XRef range fields: ' + first + ', ' + n);\n }\n if (!(0, _util.isInt)(typeFieldWidth) || !(0, _util.isInt)(offsetFieldWidth) || !(0, _util.isInt)(generationFieldWidth)) {\n throw new _util.FormatError('Invalid XRef entry fields length: ' + first + ', ' + n);\n }\n for (i = streamState.entryNum; i < n; ++i) {\n streamState.entryNum = i;\n streamState.streamPos = stream.pos;\n var type = 0,\n offset = 0,\n generation = 0;\n for (j = 0; j < typeFieldWidth; ++j) {\n type = type << 8 | stream.getByte();\n }\n if (typeFieldWidth === 0) {\n type = 1;\n }\n for (j = 0; j < offsetFieldWidth; ++j) {\n offset = offset << 8 | stream.getByte();\n }\n for (j = 0; j < generationFieldWidth; ++j) {\n generation = generation << 8 | stream.getByte();\n }\n var entry = {};\n entry.offset = offset;\n entry.gen = generation;\n switch (type) {\n case 0:\n entry.free = true;\n break;\n case 1:\n entry.uncompressed = true;\n break;\n case 2:\n break;\n default:\n throw new _util.FormatError('Invalid XRef entry type: ' + type);\n }\n if (!this.entries[first + i]) {\n this.entries[first + i] = entry;\n }\n }\n streamState.entryNum = 0;\n streamState.streamPos = stream.pos;\n entryRanges.splice(0, 2);\n }\n },\n indexObjects: function XRef_indexObjects() {\n var TAB = 0x9,\n LF = 0xA,\n CR = 0xD,\n SPACE = 0x20;\n var PERCENT = 0x25,\n LT = 0x3C;\n function readToken(data, offset) {\n var token = '',\n ch = data[offset];\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n return token;\n }\n function skipUntil(data, offset, what) {\n var length = what.length,\n dataLength = data.length;\n var skipped = 0;\n while (offset < dataLength) {\n var i = 0;\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n if (i >= length) {\n break;\n }\n offset++;\n skipped++;\n }\n return skipped;\n }\n var objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);\n var endobjBytes = new Uint8Array([101, 110, 100, 111, 98, 106]);\n var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n this.entries.length = 0;\n var stream = this.stream;\n stream.pos = 0;\n var buffer = stream.getBytes();\n var position = stream.start,\n length = buffer.length;\n var trailers = [],\n xrefStms = [];\n while (position < length) {\n var ch = buffer[position];\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n if (ch === PERCENT) {\n do {\n ++position;\n if (position >= length) {\n break;\n }\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n continue;\n }\n var token = readToken(buffer, position);\n var m;\n if (token.indexOf('xref') === 0 && (token.length === 4 || /\\s/.test(token[4]))) {\n position += skipUntil(buffer, position, trailerBytes);\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else if (m = objRegExp.exec(token)) {\n if (typeof this.entries[m[1]] === 'undefined') {\n this.entries[m[1]] = {\n offset: position - stream.start,\n gen: m[2] | 0,\n uncompressed: true\n };\n }\n var contentLength = skipUntil(buffer, position, endobjBytes) + 7;\n var content = buffer.subarray(position, position + contentLength);\n var xrefTagOffset = skipUntil(content, 0, xrefBytes);\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this.xrefstms[position - stream.start] = 1;\n }\n position += contentLength;\n } else if (token.indexOf('trailer') === 0 && (token.length === 7 || /\\s/.test(token[7]))) {\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else {\n position += token.length + 1;\n }\n }\n var i, ii;\n for (i = 0, ii = xrefStms.length; i < ii; ++i) {\n this.startXRefQueue.push(xrefStms[i]);\n this.readXRef(true);\n }\n var dict;\n for (i = 0, ii = trailers.length; i < ii; ++i) {\n stream.pos = trailers[i];\n var parser = new _parser.Parser(new _parser.Lexer(stream), true, this, true);\n var obj = parser.getObj();\n if (!(0, _primitives.isCmd)(obj, 'trailer')) {\n continue;\n }\n dict = parser.getObj();\n if (!(0, _primitives.isDict)(dict)) {\n continue;\n }\n if (dict.has('ID')) {\n return dict;\n }\n }\n if (dict) {\n return dict;\n }\n throw new _util.InvalidPDFException('Invalid PDF structure');\n },\n readXRef: function XRef_readXRef(recoveryMode) {\n var stream = this.stream;\n var startXRefParsedCache = Object.create(null);\n try {\n while (this.startXRefQueue.length) {\n var startXRef = this.startXRefQueue[0];\n if (startXRefParsedCache[startXRef]) {\n (0, _util.warn)('readXRef - skipping XRef table since it was already parsed.');\n this.startXRefQueue.shift();\n continue;\n }\n startXRefParsedCache[startXRef] = true;\n stream.pos = startXRef + stream.start;\n var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);\n var obj = parser.getObj();\n var dict;\n if ((0, _primitives.isCmd)(obj, 'xref')) {\n dict = this.processXRefTable(parser);\n if (!this.topDict) {\n this.topDict = dict;\n }\n obj = dict.get('XRefStm');\n if ((0, _util.isInt)(obj)) {\n var pos = obj;\n if (!(pos in this.xrefstms)) {\n this.xrefstms[pos] = 1;\n this.startXRefQueue.push(pos);\n }\n }\n } else if ((0, _util.isInt)(obj)) {\n if (!(0, _util.isInt)(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), 'obj') || !(0, _primitives.isStream)(obj = parser.getObj())) {\n throw new _util.FormatError('Invalid XRef stream');\n }\n dict = this.processXRefStream(obj);\n if (!this.topDict) {\n this.topDict = dict;\n }\n if (!dict) {\n throw new _util.FormatError('Failed to read XRef stream');\n }\n } else {\n throw new _util.FormatError('Invalid XRef stream header');\n }\n obj = dict.get('Prev');\n if ((0, _util.isInt)(obj)) {\n this.startXRefQueue.push(obj);\n } else if ((0, _primitives.isRef)(obj)) {\n this.startXRefQueue.push(obj.num);\n }\n this.startXRefQueue.shift();\n }\n return this.topDict;\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n throw e;\n }\n (0, _util.info)('(while reading XRef): ' + e);\n }\n if (recoveryMode) {\n return;\n }\n throw new _util.XRefParseException();\n },\n getEntry: function XRef_getEntry(i) {\n var xrefEntry = this.entries[i];\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n return null;\n },\n fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) {\n if (!(0, _primitives.isRef)(obj)) {\n return obj;\n }\n return this.fetch(obj, suppressEncryption);\n },\n fetch: function XRef_fetch(ref, suppressEncryption) {\n if (!(0, _primitives.isRef)(ref)) {\n throw new Error('ref object is not a reference');\n }\n var num = ref.num;\n if (num in this.cache) {\n var cacheEntry = this.cache[num];\n if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n return cacheEntry;\n }\n var xrefEntry = this.getEntry(num);\n if (xrefEntry === null) {\n return this.cache[num] = null;\n }\n if (xrefEntry.uncompressed) {\n xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n } else {\n xrefEntry = this.fetchCompressed(xrefEntry, suppressEncryption);\n }\n if ((0, _primitives.isDict)(xrefEntry)) {\n xrefEntry.objId = ref.toString();\n } else if ((0, _primitives.isStream)(xrefEntry)) {\n xrefEntry.dict.objId = ref.toString();\n }\n return xrefEntry;\n },\n fetchUncompressed: function XRef_fetchUncompressed(ref, xrefEntry, suppressEncryption) {\n var gen = ref.gen;\n var num = ref.num;\n if (xrefEntry.gen !== gen) {\n throw new _util.FormatError('inconsistent generation in XRef');\n }\n var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);\n var obj1 = parser.getObj();\n var obj2 = parser.getObj();\n var obj3 = parser.getObj();\n if (!(0, _util.isInt)(obj1) || parseInt(obj1, 10) !== num || !(0, _util.isInt)(obj2) || parseInt(obj2, 10) !== gen || !(0, _primitives.isCmd)(obj3)) {\n throw new _util.FormatError('bad XRef entry');\n }\n if (!(0, _primitives.isCmd)(obj3, 'obj')) {\n if (obj3.cmd.indexOf('obj') === 0) {\n num = parseInt(obj3.cmd.substring(3), 10);\n if (!isNaN(num)) {\n return num;\n }\n }\n throw new _util.FormatError('bad XRef entry');\n }\n if (this.encrypt && !suppressEncryption) {\n xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n } else {\n xrefEntry = parser.getObj();\n }\n if (!(0, _primitives.isStream)(xrefEntry)) {\n this.cache[num] = xrefEntry;\n }\n return xrefEntry;\n },\n fetchCompressed: function XRef_fetchCompressed(xrefEntry, suppressEncryption) {\n var tableOffset = xrefEntry.offset;\n var stream = this.fetch(new _primitives.Ref(tableOffset, 0));\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError('bad ObjStm stream');\n }\n var first = stream.dict.get('First');\n var n = stream.dict.get('N');\n if (!(0, _util.isInt)(first) || !(0, _util.isInt)(n)) {\n throw new _util.FormatError('invalid first and n parameters for ObjStm stream');\n }\n var parser = new _parser.Parser(new _parser.Lexer(stream), false, this);\n parser.allowStreams = true;\n var i,\n entries = [],\n num,\n nums = [];\n for (i = 0; i < n; ++i) {\n num = parser.getObj();\n if (!(0, _util.isInt)(num)) {\n throw new _util.FormatError('invalid object number in the ObjStm stream: ' + num);\n }\n nums.push(num);\n var offset = parser.getObj();\n if (!(0, _util.isInt)(offset)) {\n throw new _util.FormatError('invalid object offset in the ObjStm stream: ' + offset);\n }\n }\n for (i = 0; i < n; ++i) {\n entries.push(parser.getObj());\n if ((0, _primitives.isCmd)(parser.buf1, 'endobj')) {\n parser.shift();\n }\n num = nums[i];\n var entry = this.entries[num];\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n this.cache[num] = entries[i];\n }\n }\n xrefEntry = entries[xrefEntry.gen];\n if (xrefEntry === undefined) {\n throw new _util.FormatError('bad XRef entry for compressed object');\n }\n return xrefEntry;\n },\n fetchIfRefAsync: function XRef_fetchIfRefAsync(obj, suppressEncryption) {\n if (!(0, _primitives.isRef)(obj)) {\n return Promise.resolve(obj);\n }\n return this.fetchAsync(obj, suppressEncryption);\n },\n fetchAsync: function XRef_fetchAsync(ref, suppressEncryption) {\n var streamManager = this.stream.manager;\n var xref = this;\n return new Promise(function tryFetch(resolve, reject) {\n try {\n resolve(xref.fetch(ref, suppressEncryption));\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n streamManager.requestRange(e.begin, e.end).then(function () {\n tryFetch(resolve, reject);\n }, reject);\n return;\n }\n reject(e);\n }\n });\n },\n getCatalogObj: function XRef_getCatalogObj() {\n return this.root;\n }\n };\n return XRef;\n }();\n var NameOrNumberTree = function NameOrNumberTreeClosure() {\n function NameOrNumberTree(root, xref) {\n throw new Error('Cannot initialize NameOrNumberTree.');\n }\n NameOrNumberTree.prototype = {\n getAll: function NameOrNumberTree_getAll() {\n var dict = Object.create(null);\n if (!this.root) {\n return dict;\n }\n var xref = this.xref;\n var processed = new _primitives.RefSet();\n processed.put(this.root);\n var queue = [this.root];\n while (queue.length > 0) {\n var i, n;\n var obj = xref.fetchIfRef(queue.shift());\n if (!(0, _primitives.isDict)(obj)) {\n continue;\n }\n if (obj.has('Kids')) {\n var kids = obj.get('Kids');\n for (i = 0, n = kids.length; i < n; i++) {\n var kid = kids[i];\n if (processed.has(kid)) {\n throw new _util.FormatError('Duplicate entry in \"' + this._type + '\" tree.');\n }\n queue.push(kid);\n processed.put(kid);\n }\n continue;\n }\n var entries = obj.get(this._type);\n if ((0, _util.isArray)(entries)) {\n for (i = 0, n = entries.length; i < n; i += 2) {\n dict[xref.fetchIfRef(entries[i])] = xref.fetchIfRef(entries[i + 1]);\n }\n }\n }\n return dict;\n },\n get: function NameOrNumberTree_get(key) {\n if (!this.root) {\n return null;\n }\n var xref = this.xref;\n var kidsOrEntries = xref.fetchIfRef(this.root);\n var loopCount = 0;\n var MAX_LEVELS = 10;\n var l, r, m;\n while (kidsOrEntries.has('Kids')) {\n if (++loopCount > MAX_LEVELS) {\n (0, _util.warn)('Search depth limit reached for \"' + this._type + '\" tree.');\n return null;\n }\n var kids = kidsOrEntries.get('Kids');\n if (!(0, _util.isArray)(kids)) {\n return null;\n }\n l = 0;\n r = kids.length - 1;\n while (l <= r) {\n m = l + r >> 1;\n var kid = xref.fetchIfRef(kids[m]);\n var limits = kid.get('Limits');\n if (key < xref.fetchIfRef(limits[0])) {\n r = m - 1;\n } else if (key > xref.fetchIfRef(limits[1])) {\n l = m + 1;\n } else {\n kidsOrEntries = xref.fetchIfRef(kids[m]);\n break;\n }\n }\n if (l > r) {\n return null;\n }\n }\n var entries = kidsOrEntries.get(this._type);\n if ((0, _util.isArray)(entries)) {\n l = 0;\n r = entries.length - 2;\n while (l <= r) {\n m = l + r & ~1;\n var currentKey = xref.fetchIfRef(entries[m]);\n if (key < currentKey) {\n r = m - 2;\n } else if (key > currentKey) {\n l = m + 2;\n } else {\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n }\n return null;\n }\n };\n return NameOrNumberTree;\n }();\n var NameTree = function NameTreeClosure() {\n function NameTree(root, xref) {\n this.root = root;\n this.xref = xref;\n this._type = 'Names';\n }\n _util.Util.inherit(NameTree, NameOrNumberTree, {});\n return NameTree;\n }();\n var NumberTree = function NumberTreeClosure() {\n function NumberTree(root, xref) {\n this.root = root;\n this.xref = xref;\n this._type = 'Nums';\n }\n _util.Util.inherit(NumberTree, NameOrNumberTree, {});\n return NumberTree;\n }();\n var FileSpec = function FileSpecClosure() {\n function FileSpec(root, xref) {\n if (!root || !(0, _primitives.isDict)(root)) {\n return;\n }\n this.xref = xref;\n this.root = root;\n if (root.has('FS')) {\n this.fs = root.get('FS');\n }\n this.description = root.has('Desc') ? (0, _util.stringToPDFString)(root.get('Desc')) : '';\n if (root.has('RF')) {\n (0, _util.warn)('Related file specifications are not supported');\n }\n this.contentAvailable = true;\n if (!root.has('EF')) {\n this.contentAvailable = false;\n (0, _util.warn)('Non-embedded file specifications are not supported');\n }\n }\n function pickPlatformItem(dict) {\n if (dict.has('UF')) {\n return dict.get('UF');\n } else if (dict.has('F')) {\n return dict.get('F');\n } else if (dict.has('Unix')) {\n return dict.get('Unix');\n } else if (dict.has('Mac')) {\n return dict.get('Mac');\n } else if (dict.has('DOS')) {\n return dict.get('DOS');\n }\n return null;\n }\n FileSpec.prototype = {\n get filename() {\n if (!this._filename && this.root) {\n var filename = pickPlatformItem(this.root) || 'unnamed';\n this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\\\\\/g, '\\\\').replace(/\\\\\\//g, '/').replace(/\\\\/g, '/');\n }\n return this._filename;\n },\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get('EF'));\n }\n var content = null;\n if (this.contentRef) {\n var xref = this.xref;\n var fileObj = xref.fetchIfRef(this.contentRef);\n if (fileObj && (0, _primitives.isStream)(fileObj)) {\n content = fileObj.getBytes();\n } else {\n (0, _util.warn)('Embedded file specification points to non-existing/invalid ' + 'content');\n }\n } else {\n (0, _util.warn)('Embedded file specification does not have a content');\n }\n return content;\n },\n get serializable() {\n return {\n filename: this.filename,\n content: this.content\n };\n }\n };\n return FileSpec;\n }();\n var ObjectLoader = function () {\n function mayHaveChildren(value) {\n return (0, _primitives.isRef)(value) || (0, _primitives.isDict)(value) || (0, _util.isArray)(value) || (0, _primitives.isStream)(value);\n }\n function addChildren(node, nodesToVisit) {\n if ((0, _primitives.isDict)(node) || (0, _primitives.isStream)(node)) {\n var dict = (0, _primitives.isDict)(node) ? node : node.dict;\n var dictKeys = dict.getKeys();\n for (var i = 0, ii = dictKeys.length; i < ii; i++) {\n var rawValue = dict.getRaw(dictKeys[i]);\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n } else if ((0, _util.isArray)(node)) {\n for (var _i = 0, _ii = node.length; _i < _ii; _i++) {\n var value = node[_i];\n if (mayHaveChildren(value)) {\n nodesToVisit.push(value);\n }\n }\n }\n }\n function ObjectLoader(dict, keys, xref) {\n this.dict = dict;\n this.keys = keys;\n this.xref = xref;\n this.refSet = null;\n this.capability = null;\n }\n ObjectLoader.prototype = {\n load: function load() {\n this.capability = (0, _util.createPromiseCapability)();\n if (!(this.xref.stream instanceof _chunked_stream.ChunkedStream) || this.xref.stream.getMissingChunks().length === 0) {\n this.capability.resolve();\n return this.capability.promise;\n }\n var keys = this.keys,\n dict = this.dict;\n this.refSet = new _primitives.RefSet();\n var nodesToVisit = [];\n for (var i = 0, ii = keys.length; i < ii; i++) {\n var rawValue = dict.getRaw(keys[i]);\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n this._walk(nodesToVisit);\n return this.capability.promise;\n },\n _walk: function _walk(nodesToVisit) {\n var _this3 = this;\n var nodesToRevisit = [];\n var pendingRequests = [];\n while (nodesToVisit.length) {\n var currentNode = nodesToVisit.pop();\n if ((0, _primitives.isRef)(currentNode)) {\n if (this.refSet.has(currentNode)) {\n continue;\n }\n try {\n this.refSet.put(currentNode);\n currentNode = this.xref.fetch(currentNode);\n } catch (ex) {\n if (!(ex instanceof _util.MissingDataException)) {\n throw ex;\n }\n nodesToRevisit.push(currentNode);\n pendingRequests.push({\n begin: ex.begin,\n end: ex.end\n });\n }\n }\n if (currentNode && currentNode.getBaseStreams) {\n var baseStreams = currentNode.getBaseStreams();\n var foundMissingData = false;\n for (var i = 0, ii = baseStreams.length; i < ii; i++) {\n var stream = baseStreams[i];\n if (stream.getMissingChunks && stream.getMissingChunks().length) {\n foundMissingData = true;\n pendingRequests.push({\n begin: stream.start,\n end: stream.end\n });\n }\n }\n if (foundMissingData) {\n nodesToRevisit.push(currentNode);\n }\n }\n addChildren(currentNode, nodesToVisit);\n }\n if (pendingRequests.length) {\n this.xref.stream.manager.requestRanges(pendingRequests).then(function () {\n for (var _i2 = 0, _ii2 = nodesToRevisit.length; _i2 < _ii2; _i2++) {\n var node = nodesToRevisit[_i2];\n if ((0, _primitives.isRef)(node)) {\n _this3.refSet.remove(node);\n }\n }\n _this3._walk(nodesToRevisit);\n }, this.capability.reject);\n return;\n }\n this.refSet = null;\n this.capability.resolve();\n }\n };\n return ObjectLoader;\n }();\n exports.Catalog = Catalog;\n exports.ObjectLoader = ObjectLoader;\n exports.XRef = XRef;\n exports.FileSpec = FileSpec;\n\n /***/\n }, /* 59 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = undefined;\n var _util = __w_pdfjs_require__(0);\n var getStdFontMap = (0, _util.getLookupTableFactory)(function (t) {\n t['ArialNarrow'] = 'Helvetica';\n t['ArialNarrow-Bold'] = 'Helvetica-Bold';\n t['ArialNarrow-BoldItalic'] = 'Helvetica-BoldOblique';\n t['ArialNarrow-Italic'] = 'Helvetica-Oblique';\n t['ArialBlack'] = 'Helvetica';\n t['ArialBlack-Bold'] = 'Helvetica-Bold';\n t['ArialBlack-BoldItalic'] = 'Helvetica-BoldOblique';\n t['ArialBlack-Italic'] = 'Helvetica-Oblique';\n t['Arial-Black'] = 'Helvetica';\n t['Arial-Black-Bold'] = 'Helvetica-Bold';\n t['Arial-Black-BoldItalic'] = 'Helvetica-BoldOblique';\n t['Arial-Black-Italic'] = 'Helvetica-Oblique';\n t['Arial'] = 'Helvetica';\n t['Arial-Bold'] = 'Helvetica-Bold';\n t['Arial-BoldItalic'] = 'Helvetica-BoldOblique';\n t['Arial-Italic'] = 'Helvetica-Oblique';\n t['Arial-BoldItalicMT'] = 'Helvetica-BoldOblique';\n t['Arial-BoldMT'] = 'Helvetica-Bold';\n t['Arial-ItalicMT'] = 'Helvetica-Oblique';\n t['ArialMT'] = 'Helvetica';\n t['Courier-Bold'] = 'Courier-Bold';\n t['Courier-BoldItalic'] = 'Courier-BoldOblique';\n t['Courier-Italic'] = 'Courier-Oblique';\n t['CourierNew'] = 'Courier';\n t['CourierNew-Bold'] = 'Courier-Bold';\n t['CourierNew-BoldItalic'] = 'Courier-BoldOblique';\n t['CourierNew-Italic'] = 'Courier-Oblique';\n t['CourierNewPS-BoldItalicMT'] = 'Courier-BoldOblique';\n t['CourierNewPS-BoldMT'] = 'Courier-Bold';\n t['CourierNewPS-ItalicMT'] = 'Courier-Oblique';\n t['CourierNewPSMT'] = 'Courier';\n t['Helvetica'] = 'Helvetica';\n t['Helvetica-Bold'] = 'Helvetica-Bold';\n t['Helvetica-BoldItalic'] = 'Helvetica-BoldOblique';\n t['Helvetica-BoldOblique'] = 'Helvetica-BoldOblique';\n t['Helvetica-Italic'] = 'Helvetica-Oblique';\n t['Helvetica-Oblique'] = 'Helvetica-Oblique';\n t['SegoeUISymbol'] = 'Helvetica';\n t['Symbol-Bold'] = 'Symbol';\n t['Symbol-BoldItalic'] = 'Symbol';\n t['Symbol-Italic'] = 'Symbol';\n t['TimesNewRoman'] = 'Times-Roman';\n t['TimesNewRoman-Bold'] = 'Times-Bold';\n t['TimesNewRoman-BoldItalic'] = 'Times-BoldItalic';\n t['TimesNewRoman-Italic'] = 'Times-Italic';\n t['TimesNewRomanPS'] = 'Times-Roman';\n t['TimesNewRomanPS-Bold'] = 'Times-Bold';\n t['TimesNewRomanPS-BoldItalic'] = 'Times-BoldItalic';\n t['TimesNewRomanPS-BoldItalicMT'] = 'Times-BoldItalic';\n t['TimesNewRomanPS-BoldMT'] = 'Times-Bold';\n t['TimesNewRomanPS-Italic'] = 'Times-Italic';\n t['TimesNewRomanPS-ItalicMT'] = 'Times-Italic';\n t['TimesNewRomanPSMT'] = 'Times-Roman';\n t['TimesNewRomanPSMT-Bold'] = 'Times-Bold';\n t['TimesNewRomanPSMT-BoldItalic'] = 'Times-BoldItalic';\n t['TimesNewRomanPSMT-Italic'] = 'Times-Italic';\n });\n var getNonStdFontMap = (0, _util.getLookupTableFactory)(function (t) {\n t['CenturyGothic'] = 'Helvetica';\n t['CenturyGothic-Bold'] = 'Helvetica-Bold';\n t['CenturyGothic-BoldItalic'] = 'Helvetica-BoldOblique';\n t['CenturyGothic-Italic'] = 'Helvetica-Oblique';\n t['ComicSansMS'] = 'Comic Sans MS';\n t['ComicSansMS-Bold'] = 'Comic Sans MS-Bold';\n t['ComicSansMS-BoldItalic'] = 'Comic Sans MS-BoldItalic';\n t['ComicSansMS-Italic'] = 'Comic Sans MS-Italic';\n t['LucidaConsole'] = 'Courier';\n t['LucidaConsole-Bold'] = 'Courier-Bold';\n t['LucidaConsole-BoldItalic'] = 'Courier-BoldOblique';\n t['LucidaConsole-Italic'] = 'Courier-Oblique';\n t['MS-Gothic'] = 'MS Gothic';\n t['MS-Gothic-Bold'] = 'MS Gothic-Bold';\n t['MS-Gothic-BoldItalic'] = 'MS Gothic-BoldItalic';\n t['MS-Gothic-Italic'] = 'MS Gothic-Italic';\n t['MS-Mincho'] = 'MS Mincho';\n t['MS-Mincho-Bold'] = 'MS Mincho-Bold';\n t['MS-Mincho-BoldItalic'] = 'MS Mincho-BoldItalic';\n t['MS-Mincho-Italic'] = 'MS Mincho-Italic';\n t['MS-PGothic'] = 'MS PGothic';\n t['MS-PGothic-Bold'] = 'MS PGothic-Bold';\n t['MS-PGothic-BoldItalic'] = 'MS PGothic-BoldItalic';\n t['MS-PGothic-Italic'] = 'MS PGothic-Italic';\n t['MS-PMincho'] = 'MS PMincho';\n t['MS-PMincho-Bold'] = 'MS PMincho-Bold';\n t['MS-PMincho-BoldItalic'] = 'MS PMincho-BoldItalic';\n t['MS-PMincho-Italic'] = 'MS PMincho-Italic';\n t['NuptialScript'] = 'Times-Italic';\n t['Wingdings'] = 'ZapfDingbats';\n });\n var getSerifFonts = (0, _util.getLookupTableFactory)(function (t) {\n t['Adobe Jenson'] = true;\n t['Adobe Text'] = true;\n t['Albertus'] = true;\n t['Aldus'] = true;\n t['Alexandria'] = true;\n t['Algerian'] = true;\n t['American Typewriter'] = true;\n t['Antiqua'] = true;\n t['Apex'] = true;\n t['Arno'] = true;\n t['Aster'] = true;\n t['Aurora'] = true;\n t['Baskerville'] = true;\n t['Bell'] = true;\n t['Bembo'] = true;\n t['Bembo Schoolbook'] = true;\n t['Benguiat'] = true;\n t['Berkeley Old Style'] = true;\n t['Bernhard Modern'] = true;\n t['Berthold City'] = true;\n t['Bodoni'] = true;\n t['Bauer Bodoni'] = true;\n t['Book Antiqua'] = true;\n t['Bookman'] = true;\n t['Bordeaux Roman'] = true;\n t['Californian FB'] = true;\n t['Calisto'] = true;\n t['Calvert'] = true;\n t['Capitals'] = true;\n t['Cambria'] = true;\n t['Cartier'] = true;\n t['Caslon'] = true;\n t['Catull'] = true;\n t['Centaur'] = true;\n t['Century Old Style'] = true;\n t['Century Schoolbook'] = true;\n t['Chaparral'] = true;\n t['Charis SIL'] = true;\n t['Cheltenham'] = true;\n t['Cholla Slab'] = true;\n t['Clarendon'] = true;\n t['Clearface'] = true;\n t['Cochin'] = true;\n t['Colonna'] = true;\n t['Computer Modern'] = true;\n t['Concrete Roman'] = true;\n t['Constantia'] = true;\n t['Cooper Black'] = true;\n t['Corona'] = true;\n t['Ecotype'] = true;\n t['Egyptienne'] = true;\n t['Elephant'] = true;\n t['Excelsior'] = true;\n t['Fairfield'] = true;\n t['FF Scala'] = true;\n t['Folkard'] = true;\n t['Footlight'] = true;\n t['FreeSerif'] = true;\n t['Friz Quadrata'] = true;\n t['Garamond'] = true;\n t['Gentium'] = true;\n t['Georgia'] = true;\n t['Gloucester'] = true;\n t['Goudy Old Style'] = true;\n t['Goudy Schoolbook'] = true;\n t['Goudy Pro Font'] = true;\n t['Granjon'] = true;\n t['Guardian Egyptian'] = true;\n t['Heather'] = true;\n t['Hercules'] = true;\n t['High Tower Text'] = true;\n t['Hiroshige'] = true;\n t['Hoefler Text'] = true;\n t['Humana Serif'] = true;\n t['Imprint'] = true;\n t['Ionic No. 5'] = true;\n t['Janson'] = true;\n t['Joanna'] = true;\n t['Korinna'] = true;\n t['Lexicon'] = true;\n t['Liberation Serif'] = true;\n t['Linux Libertine'] = true;\n t['Literaturnaya'] = true;\n t['Lucida'] = true;\n t['Lucida Bright'] = true;\n t['Melior'] = true;\n t['Memphis'] = true;\n t['Miller'] = true;\n t['Minion'] = true;\n t['Modern'] = true;\n t['Mona Lisa'] = true;\n t['Mrs Eaves'] = true;\n t['MS Serif'] = true;\n t['Museo Slab'] = true;\n t['New York'] = true;\n t['Nimbus Roman'] = true;\n t['NPS Rawlinson Roadway'] = true;\n t['NuptialScript'] = true;\n t['Palatino'] = true;\n t['Perpetua'] = true;\n t['Plantin'] = true;\n t['Plantin Schoolbook'] = true;\n t['Playbill'] = true;\n t['Poor Richard'] = true;\n t['Rawlinson Roadway'] = true;\n t['Renault'] = true;\n t['Requiem'] = true;\n t['Rockwell'] = true;\n t['Roman'] = true;\n t['Rotis Serif'] = true;\n t['Sabon'] = true;\n t['Scala'] = true;\n t['Seagull'] = true;\n t['Sistina'] = true;\n t['Souvenir'] = true;\n t['STIX'] = true;\n t['Stone Informal'] = true;\n t['Stone Serif'] = true;\n t['Sylfaen'] = true;\n t['Times'] = true;\n t['Trajan'] = true;\n t['Trinité'] = true;\n t['Trump Mediaeval'] = true;\n t['Utopia'] = true;\n t['Vale Type'] = true;\n t['Bitstream Vera'] = true;\n t['Vera Serif'] = true;\n t['Versailles'] = true;\n t['Wanted'] = true;\n t['Weiss'] = true;\n t['Wide Latin'] = true;\n t['Windsor'] = true;\n t['XITS'] = true;\n });\n var getSymbolsFonts = (0, _util.getLookupTableFactory)(function (t) {\n t['Dingbats'] = true;\n t['Symbol'] = true;\n t['ZapfDingbats'] = true;\n });\n var getGlyphMapForStandardFonts = (0, _util.getLookupTableFactory)(function (t) {\n t[2] = 10;\n t[3] = 32;\n t[4] = 33;\n t[5] = 34;\n t[6] = 35;\n t[7] = 36;\n t[8] = 37;\n t[9] = 38;\n t[10] = 39;\n t[11] = 40;\n t[12] = 41;\n t[13] = 42;\n t[14] = 43;\n t[15] = 44;\n t[16] = 45;\n t[17] = 46;\n t[18] = 47;\n t[19] = 48;\n t[20] = 49;\n t[21] = 50;\n t[22] = 51;\n t[23] = 52;\n t[24] = 53;\n t[25] = 54;\n t[26] = 55;\n t[27] = 56;\n t[28] = 57;\n t[29] = 58;\n t[30] = 894;\n t[31] = 60;\n t[32] = 61;\n t[33] = 62;\n t[34] = 63;\n t[35] = 64;\n t[36] = 65;\n t[37] = 66;\n t[38] = 67;\n t[39] = 68;\n t[40] = 69;\n t[41] = 70;\n t[42] = 71;\n t[43] = 72;\n t[44] = 73;\n t[45] = 74;\n t[46] = 75;\n t[47] = 76;\n t[48] = 77;\n t[49] = 78;\n t[50] = 79;\n t[51] = 80;\n t[52] = 81;\n t[53] = 82;\n t[54] = 83;\n t[55] = 84;\n t[56] = 85;\n t[57] = 86;\n t[58] = 87;\n t[59] = 88;\n t[60] = 89;\n t[61] = 90;\n t[62] = 91;\n t[63] = 92;\n t[64] = 93;\n t[65] = 94;\n t[66] = 95;\n t[67] = 96;\n t[68] = 97;\n t[69] = 98;\n t[70] = 99;\n t[71] = 100;\n t[72] = 101;\n t[73] = 102;\n t[74] = 103;\n t[75] = 104;\n t[76] = 105;\n t[77] = 106;\n t[78] = 107;\n t[79] = 108;\n t[80] = 109;\n t[81] = 110;\n t[82] = 111;\n t[83] = 112;\n t[84] = 113;\n t[85] = 114;\n t[86] = 115;\n t[87] = 116;\n t[88] = 117;\n t[89] = 118;\n t[90] = 119;\n t[91] = 120;\n t[92] = 121;\n t[93] = 122;\n t[94] = 123;\n t[95] = 124;\n t[96] = 125;\n t[97] = 126;\n t[98] = 196;\n t[99] = 197;\n t[100] = 199;\n t[101] = 201;\n t[102] = 209;\n t[103] = 214;\n t[104] = 220;\n t[105] = 225;\n t[106] = 224;\n t[107] = 226;\n t[108] = 228;\n t[109] = 227;\n t[110] = 229;\n t[111] = 231;\n t[112] = 233;\n t[113] = 232;\n t[114] = 234;\n t[115] = 235;\n t[116] = 237;\n t[117] = 236;\n t[118] = 238;\n t[119] = 239;\n t[120] = 241;\n t[121] = 243;\n t[122] = 242;\n t[123] = 244;\n t[124] = 246;\n t[125] = 245;\n t[126] = 250;\n t[127] = 249;\n t[128] = 251;\n t[129] = 252;\n t[130] = 8224;\n t[131] = 176;\n t[132] = 162;\n t[133] = 163;\n t[134] = 167;\n t[135] = 8226;\n t[136] = 182;\n t[137] = 223;\n t[138] = 174;\n t[139] = 169;\n t[140] = 8482;\n t[141] = 180;\n t[142] = 168;\n t[143] = 8800;\n t[144] = 198;\n t[145] = 216;\n t[146] = 8734;\n t[147] = 177;\n t[148] = 8804;\n t[149] = 8805;\n t[150] = 165;\n t[151] = 181;\n t[152] = 8706;\n t[153] = 8721;\n t[154] = 8719;\n t[156] = 8747;\n t[157] = 170;\n t[158] = 186;\n t[159] = 8486;\n t[160] = 230;\n t[161] = 248;\n t[162] = 191;\n t[163] = 161;\n t[164] = 172;\n t[165] = 8730;\n t[166] = 402;\n t[167] = 8776;\n t[168] = 8710;\n t[169] = 171;\n t[170] = 187;\n t[171] = 8230;\n t[210] = 218;\n t[223] = 711;\n t[224] = 321;\n t[225] = 322;\n t[227] = 353;\n t[229] = 382;\n t[234] = 253;\n t[252] = 263;\n t[253] = 268;\n t[254] = 269;\n t[258] = 258;\n t[260] = 260;\n t[261] = 261;\n t[265] = 280;\n t[266] = 281;\n t[268] = 283;\n t[269] = 313;\n t[275] = 323;\n t[276] = 324;\n t[278] = 328;\n t[284] = 345;\n t[285] = 346;\n t[286] = 347;\n t[292] = 367;\n t[295] = 377;\n t[296] = 378;\n t[298] = 380;\n t[305] = 963;\n t[306] = 964;\n t[307] = 966;\n t[308] = 8215;\n t[309] = 8252;\n t[310] = 8319;\n t[311] = 8359;\n t[312] = 8592;\n t[313] = 8593;\n t[337] = 9552;\n t[493] = 1039;\n t[494] = 1040;\n t[705] = 1524;\n t[706] = 8362;\n t[710] = 64288;\n t[711] = 64298;\n t[759] = 1617;\n t[761] = 1776;\n t[763] = 1778;\n t[775] = 1652;\n t[777] = 1764;\n t[778] = 1780;\n t[779] = 1781;\n t[780] = 1782;\n t[782] = 771;\n t[783] = 64726;\n t[786] = 8363;\n t[788] = 8532;\n t[790] = 768;\n t[791] = 769;\n t[792] = 768;\n t[795] = 803;\n t[797] = 64336;\n t[798] = 64337;\n t[799] = 64342;\n t[800] = 64343;\n t[801] = 64344;\n t[802] = 64345;\n t[803] = 64362;\n t[804] = 64363;\n t[805] = 64364;\n t[2424] = 7821;\n t[2425] = 7822;\n t[2426] = 7823;\n t[2427] = 7824;\n t[2428] = 7825;\n t[2429] = 7826;\n t[2430] = 7827;\n t[2433] = 7682;\n t[2678] = 8045;\n t[2679] = 8046;\n t[2830] = 1552;\n t[2838] = 686;\n t[2840] = 751;\n t[2842] = 753;\n t[2843] = 754;\n t[2844] = 755;\n t[2846] = 757;\n t[2856] = 767;\n t[2857] = 848;\n t[2858] = 849;\n t[2862] = 853;\n t[2863] = 854;\n t[2864] = 855;\n t[2865] = 861;\n t[2866] = 862;\n t[2906] = 7460;\n t[2908] = 7462;\n t[2909] = 7463;\n t[2910] = 7464;\n t[2912] = 7466;\n t[2913] = 7467;\n t[2914] = 7468;\n t[2916] = 7470;\n t[2917] = 7471;\n t[2918] = 7472;\n t[2920] = 7474;\n t[2921] = 7475;\n t[2922] = 7476;\n t[2924] = 7478;\n t[2925] = 7479;\n t[2926] = 7480;\n t[2928] = 7482;\n t[2929] = 7483;\n t[2930] = 7484;\n t[2932] = 7486;\n t[2933] = 7487;\n t[2934] = 7488;\n t[2936] = 7490;\n t[2937] = 7491;\n t[2938] = 7492;\n t[2940] = 7494;\n t[2941] = 7495;\n t[2942] = 7496;\n t[2944] = 7498;\n t[2946] = 7500;\n t[2948] = 7502;\n t[2950] = 7504;\n t[2951] = 7505;\n t[2952] = 7506;\n t[2954] = 7508;\n t[2955] = 7509;\n t[2956] = 7510;\n t[2958] = 7512;\n t[2959] = 7513;\n t[2960] = 7514;\n t[2962] = 7516;\n t[2963] = 7517;\n t[2964] = 7518;\n t[2966] = 7520;\n t[2967] = 7521;\n t[2968] = 7522;\n t[2970] = 7524;\n t[2971] = 7525;\n t[2972] = 7526;\n t[2974] = 7528;\n t[2975] = 7529;\n t[2976] = 7530;\n t[2978] = 1537;\n t[2979] = 1538;\n t[2980] = 1539;\n t[2982] = 1549;\n t[2983] = 1551;\n t[2984] = 1552;\n t[2986] = 1554;\n t[2987] = 1555;\n t[2988] = 1556;\n t[2990] = 1623;\n t[2991] = 1624;\n t[2995] = 1775;\n t[2999] = 1791;\n t[3002] = 64290;\n t[3003] = 64291;\n t[3004] = 64292;\n t[3006] = 64294;\n t[3007] = 64295;\n t[3008] = 64296;\n t[3011] = 1900;\n t[3014] = 8223;\n t[3015] = 8244;\n t[3017] = 7532;\n t[3018] = 7533;\n t[3019] = 7534;\n t[3075] = 7590;\n t[3076] = 7591;\n t[3079] = 7594;\n t[3080] = 7595;\n t[3083] = 7598;\n t[3084] = 7599;\n t[3087] = 7602;\n t[3088] = 7603;\n t[3091] = 7606;\n t[3092] = 7607;\n t[3095] = 7610;\n t[3096] = 7611;\n t[3099] = 7614;\n t[3100] = 7615;\n t[3103] = 7618;\n t[3104] = 7619;\n t[3107] = 8337;\n t[3108] = 8338;\n t[3116] = 1884;\n t[3119] = 1885;\n t[3120] = 1885;\n t[3123] = 1886;\n t[3124] = 1886;\n t[3127] = 1887;\n t[3128] = 1887;\n t[3131] = 1888;\n t[3132] = 1888;\n t[3135] = 1889;\n t[3136] = 1889;\n t[3139] = 1890;\n t[3140] = 1890;\n t[3143] = 1891;\n t[3144] = 1891;\n t[3147] = 1892;\n t[3148] = 1892;\n t[3153] = 580;\n t[3154] = 581;\n t[3157] = 584;\n t[3158] = 585;\n t[3161] = 588;\n t[3162] = 589;\n t[3165] = 891;\n t[3166] = 892;\n t[3169] = 1274;\n t[3170] = 1275;\n t[3173] = 1278;\n t[3174] = 1279;\n t[3181] = 7622;\n t[3182] = 7623;\n t[3282] = 11799;\n t[3316] = 578;\n t[3379] = 42785;\n t[3393] = 1159;\n t[3416] = 8377;\n });\n var getSupplementalGlyphMapForArialBlack = (0, _util.getLookupTableFactory)(function (t) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n });\n exports.getStdFontMap = getStdFontMap;\n exports.getNonStdFontMap = getNonStdFontMap;\n exports.getSerifFonts = getSerifFonts;\n exports.getSymbolsFonts = getSymbolsFonts;\n exports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;\n exports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;\n\n /***/\n }, /* 60 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var getLookupTableFactory = __w_pdfjs_require__(0).getLookupTableFactory;\n var getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00A9;\n t[63193] = 0x00A9;\n t[63720] = 0x00AE;\n t[63194] = 0x00AE;\n t[63722] = 0x2122;\n t[63195] = 0x2122;\n t[63729] = 0x23A7;\n t[63730] = 0x23A8;\n t[63731] = 0x23A9;\n t[63740] = 0x23AB;\n t[63741] = 0x23AC;\n t[63742] = 0x23AD;\n t[63726] = 0x23A1;\n t[63727] = 0x23A2;\n t[63728] = 0x23A3;\n t[63737] = 0x23A4;\n t[63738] = 0x23A5;\n t[63739] = 0x23A6;\n t[63723] = 0x239B;\n t[63724] = 0x239C;\n t[63725] = 0x239D;\n t[63734] = 0x239E;\n t[63735] = 0x239F;\n t[63736] = 0x23A0;\n });\n function mapSpecialUnicodeValues(code) {\n if (code >= 0xFFF0 && code <= 0xFFFF) {\n return 0;\n } else if (code >= 0xF600 && code <= 0xF8FF) {\n return getSpecialPUASymbols()[code] || code;\n }\n return code;\n }\n function getUnicodeForGlyph(name, glyphsUnicodeMap) {\n var unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n if (name[0] === 'u') {\n var nameLen = name.length,\n hexStr;\n if (nameLen === 7 && name[1] === 'n' && name[2] === 'i') {\n hexStr = name.substr(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n hexStr = name.substr(1);\n } else {\n return -1;\n }\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n }\n var UnicodeRanges = [{\n 'begin': 0x0000,\n 'end': 0x007F\n }, {\n 'begin': 0x0080,\n 'end': 0x00FF\n }, {\n 'begin': 0x0100,\n 'end': 0x017F\n }, {\n 'begin': 0x0180,\n 'end': 0x024F\n }, {\n 'begin': 0x0250,\n 'end': 0x02AF\n }, {\n 'begin': 0x02B0,\n 'end': 0x02FF\n }, {\n 'begin': 0x0300,\n 'end': 0x036F\n }, {\n 'begin': 0x0370,\n 'end': 0x03FF\n }, {\n 'begin': 0x2C80,\n 'end': 0x2CFF\n }, {\n 'begin': 0x0400,\n 'end': 0x04FF\n }, {\n 'begin': 0x0530,\n 'end': 0x058F\n }, {\n 'begin': 0x0590,\n 'end': 0x05FF\n }, {\n 'begin': 0xA500,\n 'end': 0xA63F\n }, {\n 'begin': 0x0600,\n 'end': 0x06FF\n }, {\n 'begin': 0x07C0,\n 'end': 0x07FF\n }, {\n 'begin': 0x0900,\n 'end': 0x097F\n }, {\n 'begin': 0x0980,\n 'end': 0x09FF\n }, {\n 'begin': 0x0A00,\n 'end': 0x0A7F\n }, {\n 'begin': 0x0A80,\n 'end': 0x0AFF\n }, {\n 'begin': 0x0B00,\n 'end': 0x0B7F\n }, {\n 'begin': 0x0B80,\n 'end': 0x0BFF\n }, {\n 'begin': 0x0C00,\n 'end': 0x0C7F\n }, {\n 'begin': 0x0C80,\n 'end': 0x0CFF\n }, {\n 'begin': 0x0D00,\n 'end': 0x0D7F\n }, {\n 'begin': 0x0E00,\n 'end': 0x0E7F\n }, {\n 'begin': 0x0E80,\n 'end': 0x0EFF\n }, {\n 'begin': 0x10A0,\n 'end': 0x10FF\n }, {\n 'begin': 0x1B00,\n 'end': 0x1B7F\n }, {\n 'begin': 0x1100,\n 'end': 0x11FF\n }, {\n 'begin': 0x1E00,\n 'end': 0x1EFF\n }, {\n 'begin': 0x1F00,\n 'end': 0x1FFF\n }, {\n 'begin': 0x2000,\n 'end': 0x206F\n }, {\n 'begin': 0x2070,\n 'end': 0x209F\n }, {\n 'begin': 0x20A0,\n 'end': 0x20CF\n }, {\n 'begin': 0x20D0,\n 'end': 0x20FF\n }, {\n 'begin': 0x2100,\n 'end': 0x214F\n }, {\n 'begin': 0x2150,\n 'end': 0x218F\n }, {\n 'begin': 0x2190,\n 'end': 0x21FF\n }, {\n 'begin': 0x2200,\n 'end': 0x22FF\n }, {\n 'begin': 0x2300,\n 'end': 0x23FF\n }, {\n 'begin': 0x2400,\n 'end': 0x243F\n }, {\n 'begin': 0x2440,\n 'end': 0x245F\n }, {\n 'begin': 0x2460,\n 'end': 0x24FF\n }, {\n 'begin': 0x2500,\n 'end': 0x257F\n }, {\n 'begin': 0x2580,\n 'end': 0x259F\n }, {\n 'begin': 0x25A0,\n 'end': 0x25FF\n }, {\n 'begin': 0x2600,\n 'end': 0x26FF\n }, {\n 'begin': 0x2700,\n 'end': 0x27BF\n }, {\n 'begin': 0x3000,\n 'end': 0x303F\n }, {\n 'begin': 0x3040,\n 'end': 0x309F\n }, {\n 'begin': 0x30A0,\n 'end': 0x30FF\n }, {\n 'begin': 0x3100,\n 'end': 0x312F\n }, {\n 'begin': 0x3130,\n 'end': 0x318F\n }, {\n 'begin': 0xA840,\n 'end': 0xA87F\n }, {\n 'begin': 0x3200,\n 'end': 0x32FF\n }, {\n 'begin': 0x3300,\n 'end': 0x33FF\n }, {\n 'begin': 0xAC00,\n 'end': 0xD7AF\n }, {\n 'begin': 0xD800,\n 'end': 0xDFFF\n }, {\n 'begin': 0x10900,\n 'end': 0x1091F\n }, {\n 'begin': 0x4E00,\n 'end': 0x9FFF\n }, {\n 'begin': 0xE000,\n 'end': 0xF8FF\n }, {\n 'begin': 0x31C0,\n 'end': 0x31EF\n }, {\n 'begin': 0xFB00,\n 'end': 0xFB4F\n }, {\n 'begin': 0xFB50,\n 'end': 0xFDFF\n }, {\n 'begin': 0xFE20,\n 'end': 0xFE2F\n }, {\n 'begin': 0xFE10,\n 'end': 0xFE1F\n }, {\n 'begin': 0xFE50,\n 'end': 0xFE6F\n }, {\n 'begin': 0xFE70,\n 'end': 0xFEFF\n }, {\n 'begin': 0xFF00,\n 'end': 0xFFEF\n }, {\n 'begin': 0xFFF0,\n 'end': 0xFFFF\n }, {\n 'begin': 0x0F00,\n 'end': 0x0FFF\n }, {\n 'begin': 0x0700,\n 'end': 0x074F\n }, {\n 'begin': 0x0780,\n 'end': 0x07BF\n }, {\n 'begin': 0x0D80,\n 'end': 0x0DFF\n }, {\n 'begin': 0x1000,\n 'end': 0x109F\n }, {\n 'begin': 0x1200,\n 'end': 0x137F\n }, {\n 'begin': 0x13A0,\n 'end': 0x13FF\n }, {\n 'begin': 0x1400,\n 'end': 0x167F\n }, {\n 'begin': 0x1680,\n 'end': 0x169F\n }, {\n 'begin': 0x16A0,\n 'end': 0x16FF\n }, {\n 'begin': 0x1780,\n 'end': 0x17FF\n }, {\n 'begin': 0x1800,\n 'end': 0x18AF\n }, {\n 'begin': 0x2800,\n 'end': 0x28FF\n }, {\n 'begin': 0xA000,\n 'end': 0xA48F\n }, {\n 'begin': 0x1700,\n 'end': 0x171F\n }, {\n 'begin': 0x10300,\n 'end': 0x1032F\n }, {\n 'begin': 0x10330,\n 'end': 0x1034F\n }, {\n 'begin': 0x10400,\n 'end': 0x1044F\n }, {\n 'begin': 0x1D000,\n 'end': 0x1D0FF\n }, {\n 'begin': 0x1D400,\n 'end': 0x1D7FF\n }, {\n 'begin': 0xFF000,\n 'end': 0xFFFFD\n }, {\n 'begin': 0xFE00,\n 'end': 0xFE0F\n }, {\n 'begin': 0xE0000,\n 'end': 0xE007F\n }, {\n 'begin': 0x1900,\n 'end': 0x194F\n }, {\n 'begin': 0x1950,\n 'end': 0x197F\n }, {\n 'begin': 0x1980,\n 'end': 0x19DF\n }, {\n 'begin': 0x1A00,\n 'end': 0x1A1F\n }, {\n 'begin': 0x2C00,\n 'end': 0x2C5F\n }, {\n 'begin': 0x2D30,\n 'end': 0x2D7F\n }, {\n 'begin': 0x4DC0,\n 'end': 0x4DFF\n }, {\n 'begin': 0xA800,\n 'end': 0xA82F\n }, {\n 'begin': 0x10000,\n 'end': 0x1007F\n }, {\n 'begin': 0x10140,\n 'end': 0x1018F\n }, {\n 'begin': 0x10380,\n 'end': 0x1039F\n }, {\n 'begin': 0x103A0,\n 'end': 0x103DF\n }, {\n 'begin': 0x10450,\n 'end': 0x1047F\n }, {\n 'begin': 0x10480,\n 'end': 0x104AF\n }, {\n 'begin': 0x10800,\n 'end': 0x1083F\n }, {\n 'begin': 0x10A00,\n 'end': 0x10A5F\n }, {\n 'begin': 0x1D300,\n 'end': 0x1D35F\n }, {\n 'begin': 0x12000,\n 'end': 0x123FF\n }, {\n 'begin': 0x1D360,\n 'end': 0x1D37F\n }, {\n 'begin': 0x1B80,\n 'end': 0x1BBF\n }, {\n 'begin': 0x1C00,\n 'end': 0x1C4F\n }, {\n 'begin': 0x1C50,\n 'end': 0x1C7F\n }, {\n 'begin': 0xA880,\n 'end': 0xA8DF\n }, {\n 'begin': 0xA900,\n 'end': 0xA92F\n }, {\n 'begin': 0xA930,\n 'end': 0xA95F\n }, {\n 'begin': 0xAA00,\n 'end': 0xAA5F\n }, {\n 'begin': 0x10190,\n 'end': 0x101CF\n }, {\n 'begin': 0x101D0,\n 'end': 0x101FF\n }, {\n 'begin': 0x102A0,\n 'end': 0x102DF\n }, {\n 'begin': 0x1F030,\n 'end': 0x1F09F\n }];\n function getUnicodeRangeFor(value) {\n for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n var range = UnicodeRanges[i];\n if (value >= range.begin && value < range.end) {\n return i;\n }\n }\n return -1;\n }\n function isRTLRangeFor(value) {\n var range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n return false;\n }\n var getNormalizedUnicodes = getLookupTableFactory(function (t) {\n t['\\xA8'] = ' \\u0308';\n t['\\xAF'] = ' \\u0304';\n t['\\xB4'] = ' \\u0301';\n t['\\xB5'] = '\\u03BC';\n t['\\xB8'] = ' \\u0327';\n t['\\u0132'] = 'IJ';\n t['\\u0133'] = 'ij';\n t['\\u013F'] = 'L\\xB7';\n t['\\u0140'] = 'l\\xB7';\n t['\\u0149'] = '\\u02BCn';\n t['\\u017F'] = 's';\n t['\\u01C4'] = 'D\\u017D';\n t['\\u01C5'] = 'D\\u017E';\n t['\\u01C6'] = 'd\\u017E';\n t['\\u01C7'] = 'LJ';\n t['\\u01C8'] = 'Lj';\n t['\\u01C9'] = 'lj';\n t['\\u01CA'] = 'NJ';\n t['\\u01CB'] = 'Nj';\n t['\\u01CC'] = 'nj';\n t['\\u01F1'] = 'DZ';\n t['\\u01F2'] = 'Dz';\n t['\\u01F3'] = 'dz';\n t['\\u02D8'] = ' \\u0306';\n t['\\u02D9'] = ' \\u0307';\n t['\\u02DA'] = ' \\u030A';\n t['\\u02DB'] = ' \\u0328';\n t['\\u02DC'] = ' \\u0303';\n t['\\u02DD'] = ' \\u030B';\n t['\\u037A'] = ' \\u0345';\n t['\\u0384'] = ' \\u0301';\n t['\\u03D0'] = '\\u03B2';\n t['\\u03D1'] = '\\u03B8';\n t['\\u03D2'] = '\\u03A5';\n t['\\u03D5'] = '\\u03C6';\n t['\\u03D6'] = '\\u03C0';\n t['\\u03F0'] = '\\u03BA';\n t['\\u03F1'] = '\\u03C1';\n t['\\u03F2'] = '\\u03C2';\n t['\\u03F4'] = '\\u0398';\n t['\\u03F5'] = '\\u03B5';\n t['\\u03F9'] = '\\u03A3';\n t['\\u0587'] = '\\u0565\\u0582';\n t['\\u0675'] = '\\u0627\\u0674';\n t['\\u0676'] = '\\u0648\\u0674';\n t['\\u0677'] = '\\u06C7\\u0674';\n t['\\u0678'] = '\\u064A\\u0674';\n t['\\u0E33'] = '\\u0E4D\\u0E32';\n t['\\u0EB3'] = '\\u0ECD\\u0EB2';\n t['\\u0EDC'] = '\\u0EAB\\u0E99';\n t['\\u0EDD'] = '\\u0EAB\\u0EA1';\n t['\\u0F77'] = '\\u0FB2\\u0F81';\n t['\\u0F79'] = '\\u0FB3\\u0F81';\n t['\\u1E9A'] = 'a\\u02BE';\n t['\\u1FBD'] = ' \\u0313';\n t['\\u1FBF'] = ' \\u0313';\n t['\\u1FC0'] = ' \\u0342';\n t['\\u1FFE'] = ' \\u0314';\n t['\\u2002'] = ' ';\n t['\\u2003'] = ' ';\n t['\\u2004'] = ' ';\n t['\\u2005'] = ' ';\n t['\\u2006'] = ' ';\n t['\\u2008'] = ' ';\n t['\\u2009'] = ' ';\n t['\\u200A'] = ' ';\n t['\\u2017'] = ' \\u0333';\n t['\\u2024'] = '.';\n t['\\u2025'] = '..';\n t['\\u2026'] = '...';\n t['\\u2033'] = '\\u2032\\u2032';\n t['\\u2034'] = '\\u2032\\u2032\\u2032';\n t['\\u2036'] = '\\u2035\\u2035';\n t['\\u2037'] = '\\u2035\\u2035\\u2035';\n t['\\u203C'] = '!!';\n t['\\u203E'] = ' \\u0305';\n t['\\u2047'] = '??';\n t['\\u2048'] = '?!';\n t['\\u2049'] = '!?';\n t['\\u2057'] = '\\u2032\\u2032\\u2032\\u2032';\n t['\\u205F'] = ' ';\n t['\\u20A8'] = 'Rs';\n t['\\u2100'] = 'a/c';\n t['\\u2101'] = 'a/s';\n t['\\u2103'] = '\\xB0C';\n t['\\u2105'] = 'c/o';\n t['\\u2106'] = 'c/u';\n t['\\u2107'] = '\\u0190';\n t['\\u2109'] = '\\xB0F';\n t['\\u2116'] = 'No';\n t['\\u2121'] = 'TEL';\n t['\\u2135'] = '\\u05D0';\n t['\\u2136'] = '\\u05D1';\n t['\\u2137'] = '\\u05D2';\n t['\\u2138'] = '\\u05D3';\n t['\\u213B'] = 'FAX';\n t['\\u2160'] = 'I';\n t['\\u2161'] = 'II';\n t['\\u2162'] = 'III';\n t['\\u2163'] = 'IV';\n t['\\u2164'] = 'V';\n t['\\u2165'] = 'VI';\n t['\\u2166'] = 'VII';\n t['\\u2167'] = 'VIII';\n t['\\u2168'] = 'IX';\n t['\\u2169'] = 'X';\n t['\\u216A'] = 'XI';\n t['\\u216B'] = 'XII';\n t['\\u216C'] = 'L';\n t['\\u216D'] = 'C';\n t['\\u216E'] = 'D';\n t['\\u216F'] = 'M';\n t['\\u2170'] = 'i';\n t['\\u2171'] = 'ii';\n t['\\u2172'] = 'iii';\n t['\\u2173'] = 'iv';\n t['\\u2174'] = 'v';\n t['\\u2175'] = 'vi';\n t['\\u2176'] = 'vii';\n t['\\u2177'] = 'viii';\n t['\\u2178'] = 'ix';\n t['\\u2179'] = 'x';\n t['\\u217A'] = 'xi';\n t['\\u217B'] = 'xii';\n t['\\u217C'] = 'l';\n t['\\u217D'] = 'c';\n t['\\u217E'] = 'd';\n t['\\u217F'] = 'm';\n t['\\u222C'] = '\\u222B\\u222B';\n t['\\u222D'] = '\\u222B\\u222B\\u222B';\n t['\\u222F'] = '\\u222E\\u222E';\n t['\\u2230'] = '\\u222E\\u222E\\u222E';\n t['\\u2474'] = '(1)';\n t['\\u2475'] = '(2)';\n t['\\u2476'] = '(3)';\n t['\\u2477'] = '(4)';\n t['\\u2478'] = '(5)';\n t['\\u2479'] = '(6)';\n t['\\u247A'] = '(7)';\n t['\\u247B'] = '(8)';\n t['\\u247C'] = '(9)';\n t['\\u247D'] = '(10)';\n t['\\u247E'] = '(11)';\n t['\\u247F'] = '(12)';\n t['\\u2480'] = '(13)';\n t['\\u2481'] = '(14)';\n t['\\u2482'] = '(15)';\n t['\\u2483'] = '(16)';\n t['\\u2484'] = '(17)';\n t['\\u2485'] = '(18)';\n t['\\u2486'] = '(19)';\n t['\\u2487'] = '(20)';\n t['\\u2488'] = '1.';\n t['\\u2489'] = '2.';\n t['\\u248A'] = '3.';\n t['\\u248B'] = '4.';\n t['\\u248C'] = '5.';\n t['\\u248D'] = '6.';\n t['\\u248E'] = '7.';\n t['\\u248F'] = '8.';\n t['\\u2490'] = '9.';\n t['\\u2491'] = '10.';\n t['\\u2492'] = '11.';\n t['\\u2493'] = '12.';\n t['\\u2494'] = '13.';\n t['\\u2495'] = '14.';\n t['\\u2496'] = '15.';\n t['\\u2497'] = '16.';\n t['\\u2498'] = '17.';\n t['\\u2499'] = '18.';\n t['\\u249A'] = '19.';\n t['\\u249B'] = '20.';\n t['\\u249C'] = '(a)';\n t['\\u249D'] = '(b)';\n t['\\u249E'] = '(c)';\n t['\\u249F'] = '(d)';\n t['\\u24A0'] = '(e)';\n t['\\u24A1'] = '(f)';\n t['\\u24A2'] = '(g)';\n t['\\u24A3'] = '(h)';\n t['\\u24A4'] = '(i)';\n t['\\u24A5'] = '(j)';\n t['\\u24A6'] = '(k)';\n t['\\u24A7'] = '(l)';\n t['\\u24A8'] = '(m)';\n t['\\u24A9'] = '(n)';\n t['\\u24AA'] = '(o)';\n t['\\u24AB'] = '(p)';\n t['\\u24AC'] = '(q)';\n t['\\u24AD'] = '(r)';\n t['\\u24AE'] = '(s)';\n t['\\u24AF'] = '(t)';\n t['\\u24B0'] = '(u)';\n t['\\u24B1'] = '(v)';\n t['\\u24B2'] = '(w)';\n t['\\u24B3'] = '(x)';\n t['\\u24B4'] = '(y)';\n t['\\u24B5'] = '(z)';\n t['\\u2A0C'] = '\\u222B\\u222B\\u222B\\u222B';\n t['\\u2A74'] = '::=';\n t['\\u2A75'] = '==';\n t['\\u2A76'] = '===';\n t['\\u2E9F'] = '\\u6BCD';\n t['\\u2EF3'] = '\\u9F9F';\n t['\\u2F00'] = '\\u4E00';\n t['\\u2F01'] = '\\u4E28';\n t['\\u2F02'] = '\\u4E36';\n t['\\u2F03'] = '\\u4E3F';\n t['\\u2F04'] = '\\u4E59';\n t['\\u2F05'] = '\\u4E85';\n t['\\u2F06'] = '\\u4E8C';\n t['\\u2F07'] = '\\u4EA0';\n t['\\u2F08'] = '\\u4EBA';\n t['\\u2F09'] = '\\u513F';\n t['\\u2F0A'] = '\\u5165';\n t['\\u2F0B'] = '\\u516B';\n t['\\u2F0C'] = '\\u5182';\n t['\\u2F0D'] = '\\u5196';\n t['\\u2F0E'] = '\\u51AB';\n t['\\u2F0F'] = '\\u51E0';\n t['\\u2F10'] = '\\u51F5';\n t['\\u2F11'] = '\\u5200';\n t['\\u2F12'] = '\\u529B';\n t['\\u2F13'] = '\\u52F9';\n t['\\u2F14'] = '\\u5315';\n t['\\u2F15'] = '\\u531A';\n t['\\u2F16'] = '\\u5338';\n t['\\u2F17'] = '\\u5341';\n t['\\u2F18'] = '\\u535C';\n t['\\u2F19'] = '\\u5369';\n t['\\u2F1A'] = '\\u5382';\n t['\\u2F1B'] = '\\u53B6';\n t['\\u2F1C'] = '\\u53C8';\n t['\\u2F1D'] = '\\u53E3';\n t['\\u2F1E'] = '\\u56D7';\n t['\\u2F1F'] = '\\u571F';\n t['\\u2F20'] = '\\u58EB';\n t['\\u2F21'] = '\\u5902';\n t['\\u2F22'] = '\\u590A';\n t['\\u2F23'] = '\\u5915';\n t['\\u2F24'] = '\\u5927';\n t['\\u2F25'] = '\\u5973';\n t['\\u2F26'] = '\\u5B50';\n t['\\u2F27'] = '\\u5B80';\n t['\\u2F28'] = '\\u5BF8';\n t['\\u2F29'] = '\\u5C0F';\n t['\\u2F2A'] = '\\u5C22';\n t['\\u2F2B'] = '\\u5C38';\n t['\\u2F2C'] = '\\u5C6E';\n t['\\u2F2D'] = '\\u5C71';\n t['\\u2F2E'] = '\\u5DDB';\n t['\\u2F2F'] = '\\u5DE5';\n t['\\u2F30'] = '\\u5DF1';\n t['\\u2F31'] = '\\u5DFE';\n t['\\u2F32'] = '\\u5E72';\n t['\\u2F33'] = '\\u5E7A';\n t['\\u2F34'] = '\\u5E7F';\n t['\\u2F35'] = '\\u5EF4';\n t['\\u2F36'] = '\\u5EFE';\n t['\\u2F37'] = '\\u5F0B';\n t['\\u2F38'] = '\\u5F13';\n t['\\u2F39'] = '\\u5F50';\n t['\\u2F3A'] = '\\u5F61';\n t['\\u2F3B'] = '\\u5F73';\n t['\\u2F3C'] = '\\u5FC3';\n t['\\u2F3D'] = '\\u6208';\n t['\\u2F3E'] = '\\u6236';\n t['\\u2F3F'] = '\\u624B';\n t['\\u2F40'] = '\\u652F';\n t['\\u2F41'] = '\\u6534';\n t['\\u2F42'] = '\\u6587';\n t['\\u2F43'] = '\\u6597';\n t['\\u2F44'] = '\\u65A4';\n t['\\u2F45'] = '\\u65B9';\n t['\\u2F46'] = '\\u65E0';\n t['\\u2F47'] = '\\u65E5';\n t['\\u2F48'] = '\\u66F0';\n t['\\u2F49'] = '\\u6708';\n t['\\u2F4A'] = '\\u6728';\n t['\\u2F4B'] = '\\u6B20';\n t['\\u2F4C'] = '\\u6B62';\n t['\\u2F4D'] = '\\u6B79';\n t['\\u2F4E'] = '\\u6BB3';\n t['\\u2F4F'] = '\\u6BCB';\n t['\\u2F50'] = '\\u6BD4';\n t['\\u2F51'] = '\\u6BDB';\n t['\\u2F52'] = '\\u6C0F';\n t['\\u2F53'] = '\\u6C14';\n t['\\u2F54'] = '\\u6C34';\n t['\\u2F55'] = '\\u706B';\n t['\\u2F56'] = '\\u722A';\n t['\\u2F57'] = '\\u7236';\n t['\\u2F58'] = '\\u723B';\n t['\\u2F59'] = '\\u723F';\n t['\\u2F5A'] = '\\u7247';\n t['\\u2F5B'] = '\\u7259';\n t['\\u2F5C'] = '\\u725B';\n t['\\u2F5D'] = '\\u72AC';\n t['\\u2F5E'] = '\\u7384';\n t['\\u2F5F'] = '\\u7389';\n t['\\u2F60'] = '\\u74DC';\n t['\\u2F61'] = '\\u74E6';\n t['\\u2F62'] = '\\u7518';\n t['\\u2F63'] = '\\u751F';\n t['\\u2F64'] = '\\u7528';\n t['\\u2F65'] = '\\u7530';\n t['\\u2F66'] = '\\u758B';\n t['\\u2F67'] = '\\u7592';\n t['\\u2F68'] = '\\u7676';\n t['\\u2F69'] = '\\u767D';\n t['\\u2F6A'] = '\\u76AE';\n t['\\u2F6B'] = '\\u76BF';\n t['\\u2F6C'] = '\\u76EE';\n t['\\u2F6D'] = '\\u77DB';\n t['\\u2F6E'] = '\\u77E2';\n t['\\u2F6F'] = '\\u77F3';\n t['\\u2F70'] = '\\u793A';\n t['\\u2F71'] = '\\u79B8';\n t['\\u2F72'] = '\\u79BE';\n t['\\u2F73'] = '\\u7A74';\n t['\\u2F74'] = '\\u7ACB';\n t['\\u2F75'] = '\\u7AF9';\n t['\\u2F76'] = '\\u7C73';\n t['\\u2F77'] = '\\u7CF8';\n t['\\u2F78'] = '\\u7F36';\n t['\\u2F79'] = '\\u7F51';\n t['\\u2F7A'] = '\\u7F8A';\n t['\\u2F7B'] = '\\u7FBD';\n t['\\u2F7C'] = '\\u8001';\n t['\\u2F7D'] = '\\u800C';\n t['\\u2F7E'] = '\\u8012';\n t['\\u2F7F'] = '\\u8033';\n t['\\u2F80'] = '\\u807F';\n t['\\u2F81'] = '\\u8089';\n t['\\u2F82'] = '\\u81E3';\n t['\\u2F83'] = '\\u81EA';\n t['\\u2F84'] = '\\u81F3';\n t['\\u2F85'] = '\\u81FC';\n t['\\u2F86'] = '\\u820C';\n t['\\u2F87'] = '\\u821B';\n t['\\u2F88'] = '\\u821F';\n t['\\u2F89'] = '\\u826E';\n t['\\u2F8A'] = '\\u8272';\n t['\\u2F8B'] = '\\u8278';\n t['\\u2F8C'] = '\\u864D';\n t['\\u2F8D'] = '\\u866B';\n t['\\u2F8E'] = '\\u8840';\n t['\\u2F8F'] = '\\u884C';\n t['\\u2F90'] = '\\u8863';\n t['\\u2F91'] = '\\u897E';\n t['\\u2F92'] = '\\u898B';\n t['\\u2F93'] = '\\u89D2';\n t['\\u2F94'] = '\\u8A00';\n t['\\u2F95'] = '\\u8C37';\n t['\\u2F96'] = '\\u8C46';\n t['\\u2F97'] = '\\u8C55';\n t['\\u2F98'] = '\\u8C78';\n t['\\u2F99'] = '\\u8C9D';\n t['\\u2F9A'] = '\\u8D64';\n t['\\u2F9B'] = '\\u8D70';\n t['\\u2F9C'] = '\\u8DB3';\n t['\\u2F9D'] = '\\u8EAB';\n t['\\u2F9E'] = '\\u8ECA';\n t['\\u2F9F'] = '\\u8F9B';\n t['\\u2FA0'] = '\\u8FB0';\n t['\\u2FA1'] = '\\u8FB5';\n t['\\u2FA2'] = '\\u9091';\n t['\\u2FA3'] = '\\u9149';\n t['\\u2FA4'] = '\\u91C6';\n t['\\u2FA5'] = '\\u91CC';\n t['\\u2FA6'] = '\\u91D1';\n t['\\u2FA7'] = '\\u9577';\n t['\\u2FA8'] = '\\u9580';\n t['\\u2FA9'] = '\\u961C';\n t['\\u2FAA'] = '\\u96B6';\n t['\\u2FAB'] = '\\u96B9';\n t['\\u2FAC'] = '\\u96E8';\n t['\\u2FAD'] = '\\u9751';\n t['\\u2FAE'] = '\\u975E';\n t['\\u2FAF'] = '\\u9762';\n t['\\u2FB0'] = '\\u9769';\n t['\\u2FB1'] = '\\u97CB';\n t['\\u2FB2'] = '\\u97ED';\n t['\\u2FB3'] = '\\u97F3';\n t['\\u2FB4'] = '\\u9801';\n t['\\u2FB5'] = '\\u98A8';\n t['\\u2FB6'] = '\\u98DB';\n t['\\u2FB7'] = '\\u98DF';\n t['\\u2FB8'] = '\\u9996';\n t['\\u2FB9'] = '\\u9999';\n t['\\u2FBA'] = '\\u99AC';\n t['\\u2FBB'] = '\\u9AA8';\n t['\\u2FBC'] = '\\u9AD8';\n t['\\u2FBD'] = '\\u9ADF';\n t['\\u2FBE'] = '\\u9B25';\n t['\\u2FBF'] = '\\u9B2F';\n t['\\u2FC0'] = '\\u9B32';\n t['\\u2FC1'] = '\\u9B3C';\n t['\\u2FC2'] = '\\u9B5A';\n t['\\u2FC3'] = '\\u9CE5';\n t['\\u2FC4'] = '\\u9E75';\n t['\\u2FC5'] = '\\u9E7F';\n t['\\u2FC6'] = '\\u9EA5';\n t['\\u2FC7'] = '\\u9EBB';\n t['\\u2FC8'] = '\\u9EC3';\n t['\\u2FC9'] = '\\u9ECD';\n t['\\u2FCA'] = '\\u9ED1';\n t['\\u2FCB'] = '\\u9EF9';\n t['\\u2FCC'] = '\\u9EFD';\n t['\\u2FCD'] = '\\u9F0E';\n t['\\u2FCE'] = '\\u9F13';\n t['\\u2FCF'] = '\\u9F20';\n t['\\u2FD0'] = '\\u9F3B';\n t['\\u2FD1'] = '\\u9F4A';\n t['\\u2FD2'] = '\\u9F52';\n t['\\u2FD3'] = '\\u9F8D';\n t['\\u2FD4'] = '\\u9F9C';\n t['\\u2FD5'] = '\\u9FA0';\n t['\\u3036'] = '\\u3012';\n t['\\u3038'] = '\\u5341';\n t['\\u3039'] = '\\u5344';\n t['\\u303A'] = '\\u5345';\n t['\\u309B'] = ' \\u3099';\n t['\\u309C'] = ' \\u309A';\n t['\\u3131'] = '\\u1100';\n t['\\u3132'] = '\\u1101';\n t['\\u3133'] = '\\u11AA';\n t['\\u3134'] = '\\u1102';\n t['\\u3135'] = '\\u11AC';\n t['\\u3136'] = '\\u11AD';\n t['\\u3137'] = '\\u1103';\n t['\\u3138'] = '\\u1104';\n t['\\u3139'] = '\\u1105';\n t['\\u313A'] = '\\u11B0';\n t['\\u313B'] = '\\u11B1';\n t['\\u313C'] = '\\u11B2';\n t['\\u313D'] = '\\u11B3';\n t['\\u313E'] = '\\u11B4';\n t['\\u313F'] = '\\u11B5';\n t['\\u3140'] = '\\u111A';\n t['\\u3141'] = '\\u1106';\n t['\\u3142'] = '\\u1107';\n t['\\u3143'] = '\\u1108';\n t['\\u3144'] = '\\u1121';\n t['\\u3145'] = '\\u1109';\n t['\\u3146'] = '\\u110A';\n t['\\u3147'] = '\\u110B';\n t['\\u3148'] = '\\u110C';\n t['\\u3149'] = '\\u110D';\n t['\\u314A'] = '\\u110E';\n t['\\u314B'] = '\\u110F';\n t['\\u314C'] = '\\u1110';\n t['\\u314D'] = '\\u1111';\n t['\\u314E'] = '\\u1112';\n t['\\u314F'] = '\\u1161';\n t['\\u3150'] = '\\u1162';\n t['\\u3151'] = '\\u1163';\n t['\\u3152'] = '\\u1164';\n t['\\u3153'] = '\\u1165';\n t['\\u3154'] = '\\u1166';\n t['\\u3155'] = '\\u1167';\n t['\\u3156'] = '\\u1168';\n t['\\u3157'] = '\\u1169';\n t['\\u3158'] = '\\u116A';\n t['\\u3159'] = '\\u116B';\n t['\\u315A'] = '\\u116C';\n t['\\u315B'] = '\\u116D';\n t['\\u315C'] = '\\u116E';\n t['\\u315D'] = '\\u116F';\n t['\\u315E'] = '\\u1170';\n t['\\u315F'] = '\\u1171';\n t['\\u3160'] = '\\u1172';\n t['\\u3161'] = '\\u1173';\n t['\\u3162'] = '\\u1174';\n t['\\u3163'] = '\\u1175';\n t['\\u3164'] = '\\u1160';\n t['\\u3165'] = '\\u1114';\n t['\\u3166'] = '\\u1115';\n t['\\u3167'] = '\\u11C7';\n t['\\u3168'] = '\\u11C8';\n t['\\u3169'] = '\\u11CC';\n t['\\u316A'] = '\\u11CE';\n t['\\u316B'] = '\\u11D3';\n t['\\u316C'] = '\\u11D7';\n t['\\u316D'] = '\\u11D9';\n t['\\u316E'] = '\\u111C';\n t['\\u316F'] = '\\u11DD';\n t['\\u3170'] = '\\u11DF';\n t['\\u3171'] = '\\u111D';\n t['\\u3172'] = '\\u111E';\n t['\\u3173'] = '\\u1120';\n t['\\u3174'] = '\\u1122';\n t['\\u3175'] = '\\u1123';\n t['\\u3176'] = '\\u1127';\n t['\\u3177'] = '\\u1129';\n t['\\u3178'] = '\\u112B';\n t['\\u3179'] = '\\u112C';\n t['\\u317A'] = '\\u112D';\n t['\\u317B'] = '\\u112E';\n t['\\u317C'] = '\\u112F';\n t['\\u317D'] = '\\u1132';\n t['\\u317E'] = '\\u1136';\n t['\\u317F'] = '\\u1140';\n t['\\u3180'] = '\\u1147';\n t['\\u3181'] = '\\u114C';\n t['\\u3182'] = '\\u11F1';\n t['\\u3183'] = '\\u11F2';\n t['\\u3184'] = '\\u1157';\n t['\\u3185'] = '\\u1158';\n t['\\u3186'] = '\\u1159';\n t['\\u3187'] = '\\u1184';\n t['\\u3188'] = '\\u1185';\n t['\\u3189'] = '\\u1188';\n t['\\u318A'] = '\\u1191';\n t['\\u318B'] = '\\u1192';\n t['\\u318C'] = '\\u1194';\n t['\\u318D'] = '\\u119E';\n t['\\u318E'] = '\\u11A1';\n t['\\u3200'] = '(\\u1100)';\n t['\\u3201'] = '(\\u1102)';\n t['\\u3202'] = '(\\u1103)';\n t['\\u3203'] = '(\\u1105)';\n t['\\u3204'] = '(\\u1106)';\n t['\\u3205'] = '(\\u1107)';\n t['\\u3206'] = '(\\u1109)';\n t['\\u3207'] = '(\\u110B)';\n t['\\u3208'] = '(\\u110C)';\n t['\\u3209'] = '(\\u110E)';\n t['\\u320A'] = '(\\u110F)';\n t['\\u320B'] = '(\\u1110)';\n t['\\u320C'] = '(\\u1111)';\n t['\\u320D'] = '(\\u1112)';\n t['\\u320E'] = '(\\u1100\\u1161)';\n t['\\u320F'] = '(\\u1102\\u1161)';\n t['\\u3210'] = '(\\u1103\\u1161)';\n t['\\u3211'] = '(\\u1105\\u1161)';\n t['\\u3212'] = '(\\u1106\\u1161)';\n t['\\u3213'] = '(\\u1107\\u1161)';\n t['\\u3214'] = '(\\u1109\\u1161)';\n t['\\u3215'] = '(\\u110B\\u1161)';\n t['\\u3216'] = '(\\u110C\\u1161)';\n t['\\u3217'] = '(\\u110E\\u1161)';\n t['\\u3218'] = '(\\u110F\\u1161)';\n t['\\u3219'] = '(\\u1110\\u1161)';\n t['\\u321A'] = '(\\u1111\\u1161)';\n t['\\u321B'] = '(\\u1112\\u1161)';\n t['\\u321C'] = '(\\u110C\\u116E)';\n t['\\u321D'] = '(\\u110B\\u1169\\u110C\\u1165\\u11AB)';\n t['\\u321E'] = '(\\u110B\\u1169\\u1112\\u116E)';\n t['\\u3220'] = '(\\u4E00)';\n t['\\u3221'] = '(\\u4E8C)';\n t['\\u3222'] = '(\\u4E09)';\n t['\\u3223'] = '(\\u56DB)';\n t['\\u3224'] = '(\\u4E94)';\n t['\\u3225'] = '(\\u516D)';\n t['\\u3226'] = '(\\u4E03)';\n t['\\u3227'] = '(\\u516B)';\n t['\\u3228'] = '(\\u4E5D)';\n t['\\u3229'] = '(\\u5341)';\n t['\\u322A'] = '(\\u6708)';\n t['\\u322B'] = '(\\u706B)';\n t['\\u322C'] = '(\\u6C34)';\n t['\\u322D'] = '(\\u6728)';\n t['\\u322E'] = '(\\u91D1)';\n t['\\u322F'] = '(\\u571F)';\n t['\\u3230'] = '(\\u65E5)';\n t['\\u3231'] = '(\\u682A)';\n t['\\u3232'] = '(\\u6709)';\n t['\\u3233'] = '(\\u793E)';\n t['\\u3234'] = '(\\u540D)';\n t['\\u3235'] = '(\\u7279)';\n t['\\u3236'] = '(\\u8CA1)';\n t['\\u3237'] = '(\\u795D)';\n t['\\u3238'] = '(\\u52B4)';\n t['\\u3239'] = '(\\u4EE3)';\n t['\\u323A'] = '(\\u547C)';\n t['\\u323B'] = '(\\u5B66)';\n t['\\u323C'] = '(\\u76E3)';\n t['\\u323D'] = '(\\u4F01)';\n t['\\u323E'] = '(\\u8CC7)';\n t['\\u323F'] = '(\\u5354)';\n t['\\u3240'] = '(\\u796D)';\n t['\\u3241'] = '(\\u4F11)';\n t['\\u3242'] = '(\\u81EA)';\n t['\\u3243'] = '(\\u81F3)';\n t['\\u32C0'] = '1\\u6708';\n t['\\u32C1'] = '2\\u6708';\n t['\\u32C2'] = '3\\u6708';\n t['\\u32C3'] = '4\\u6708';\n t['\\u32C4'] = '5\\u6708';\n t['\\u32C5'] = '6\\u6708';\n t['\\u32C6'] = '7\\u6708';\n t['\\u32C7'] = '8\\u6708';\n t['\\u32C8'] = '9\\u6708';\n t['\\u32C9'] = '10\\u6708';\n t['\\u32CA'] = '11\\u6708';\n t['\\u32CB'] = '12\\u6708';\n t['\\u3358'] = '0\\u70B9';\n t['\\u3359'] = '1\\u70B9';\n t['\\u335A'] = '2\\u70B9';\n t['\\u335B'] = '3\\u70B9';\n t['\\u335C'] = '4\\u70B9';\n t['\\u335D'] = '5\\u70B9';\n t['\\u335E'] = '6\\u70B9';\n t['\\u335F'] = '7\\u70B9';\n t['\\u3360'] = '8\\u70B9';\n t['\\u3361'] = '9\\u70B9';\n t['\\u3362'] = '10\\u70B9';\n t['\\u3363'] = '11\\u70B9';\n t['\\u3364'] = '12\\u70B9';\n t['\\u3365'] = '13\\u70B9';\n t['\\u3366'] = '14\\u70B9';\n t['\\u3367'] = '15\\u70B9';\n t['\\u3368'] = '16\\u70B9';\n t['\\u3369'] = '17\\u70B9';\n t['\\u336A'] = '18\\u70B9';\n t['\\u336B'] = '19\\u70B9';\n t['\\u336C'] = '20\\u70B9';\n t['\\u336D'] = '21\\u70B9';\n t['\\u336E'] = '22\\u70B9';\n t['\\u336F'] = '23\\u70B9';\n t['\\u3370'] = '24\\u70B9';\n t['\\u33E0'] = '1\\u65E5';\n t['\\u33E1'] = '2\\u65E5';\n t['\\u33E2'] = '3\\u65E5';\n t['\\u33E3'] = '4\\u65E5';\n t['\\u33E4'] = '5\\u65E5';\n t['\\u33E5'] = '6\\u65E5';\n t['\\u33E6'] = '7\\u65E5';\n t['\\u33E7'] = '8\\u65E5';\n t['\\u33E8'] = '9\\u65E5';\n t['\\u33E9'] = '10\\u65E5';\n t['\\u33EA'] = '11\\u65E5';\n t['\\u33EB'] = '12\\u65E5';\n t['\\u33EC'] = '13\\u65E5';\n t['\\u33ED'] = '14\\u65E5';\n t['\\u33EE'] = '15\\u65E5';\n t['\\u33EF'] = '16\\u65E5';\n t['\\u33F0'] = '17\\u65E5';\n t['\\u33F1'] = '18\\u65E5';\n t['\\u33F2'] = '19\\u65E5';\n t['\\u33F3'] = '20\\u65E5';\n t['\\u33F4'] = '21\\u65E5';\n t['\\u33F5'] = '22\\u65E5';\n t['\\u33F6'] = '23\\u65E5';\n t['\\u33F7'] = '24\\u65E5';\n t['\\u33F8'] = '25\\u65E5';\n t['\\u33F9'] = '26\\u65E5';\n t['\\u33FA'] = '27\\u65E5';\n t['\\u33FB'] = '28\\u65E5';\n t['\\u33FC'] = '29\\u65E5';\n t['\\u33FD'] = '30\\u65E5';\n t['\\u33FE'] = '31\\u65E5';\n t['\\uFB00'] = 'ff';\n t['\\uFB01'] = 'fi';\n t['\\uFB02'] = 'fl';\n t['\\uFB03'] = 'ffi';\n t['\\uFB04'] = 'ffl';\n t['\\uFB05'] = '\\u017Ft';\n t['\\uFB06'] = 'st';\n t['\\uFB13'] = '\\u0574\\u0576';\n t['\\uFB14'] = '\\u0574\\u0565';\n t['\\uFB15'] = '\\u0574\\u056B';\n t['\\uFB16'] = '\\u057E\\u0576';\n t['\\uFB17'] = '\\u0574\\u056D';\n t['\\uFB4F'] = '\\u05D0\\u05DC';\n t['\\uFB50'] = '\\u0671';\n t['\\uFB51'] = '\\u0671';\n t['\\uFB52'] = '\\u067B';\n t['\\uFB53'] = '\\u067B';\n t['\\uFB54'] = '\\u067B';\n t['\\uFB55'] = '\\u067B';\n t['\\uFB56'] = '\\u067E';\n t['\\uFB57'] = '\\u067E';\n t['\\uFB58'] = '\\u067E';\n t['\\uFB59'] = '\\u067E';\n t['\\uFB5A'] = '\\u0680';\n t['\\uFB5B'] = '\\u0680';\n t['\\uFB5C'] = '\\u0680';\n t['\\uFB5D'] = '\\u0680';\n t['\\uFB5E'] = '\\u067A';\n t['\\uFB5F'] = '\\u067A';\n t['\\uFB60'] = '\\u067A';\n t['\\uFB61'] = '\\u067A';\n t['\\uFB62'] = '\\u067F';\n t['\\uFB63'] = '\\u067F';\n t['\\uFB64'] = '\\u067F';\n t['\\uFB65'] = '\\u067F';\n t['\\uFB66'] = '\\u0679';\n t['\\uFB67'] = '\\u0679';\n t['\\uFB68'] = '\\u0679';\n t['\\uFB69'] = '\\u0679';\n t['\\uFB6A'] = '\\u06A4';\n t['\\uFB6B'] = '\\u06A4';\n t['\\uFB6C'] = '\\u06A4';\n t['\\uFB6D'] = '\\u06A4';\n t['\\uFB6E'] = '\\u06A6';\n t['\\uFB6F'] = '\\u06A6';\n t['\\uFB70'] = '\\u06A6';\n t['\\uFB71'] = '\\u06A6';\n t['\\uFB72'] = '\\u0684';\n t['\\uFB73'] = '\\u0684';\n t['\\uFB74'] = '\\u0684';\n t['\\uFB75'] = '\\u0684';\n t['\\uFB76'] = '\\u0683';\n t['\\uFB77'] = '\\u0683';\n t['\\uFB78'] = '\\u0683';\n t['\\uFB79'] = '\\u0683';\n t['\\uFB7A'] = '\\u0686';\n t['\\uFB7B'] = '\\u0686';\n t['\\uFB7C'] = '\\u0686';\n t['\\uFB7D'] = '\\u0686';\n t['\\uFB7E'] = '\\u0687';\n t['\\uFB7F'] = '\\u0687';\n t['\\uFB80'] = '\\u0687';\n t['\\uFB81'] = '\\u0687';\n t['\\uFB82'] = '\\u068D';\n t['\\uFB83'] = '\\u068D';\n t['\\uFB84'] = '\\u068C';\n t['\\uFB85'] = '\\u068C';\n t['\\uFB86'] = '\\u068E';\n t['\\uFB87'] = '\\u068E';\n t['\\uFB88'] = '\\u0688';\n t['\\uFB89'] = '\\u0688';\n t['\\uFB8A'] = '\\u0698';\n t['\\uFB8B'] = '\\u0698';\n t['\\uFB8C'] = '\\u0691';\n t['\\uFB8D'] = '\\u0691';\n t['\\uFB8E'] = '\\u06A9';\n t['\\uFB8F'] = '\\u06A9';\n t['\\uFB90'] = '\\u06A9';\n t['\\uFB91'] = '\\u06A9';\n t['\\uFB92'] = '\\u06AF';\n t['\\uFB93'] = '\\u06AF';\n t['\\uFB94'] = '\\u06AF';\n t['\\uFB95'] = '\\u06AF';\n t['\\uFB96'] = '\\u06B3';\n t['\\uFB97'] = '\\u06B3';\n t['\\uFB98'] = '\\u06B3';\n t['\\uFB99'] = '\\u06B3';\n t['\\uFB9A'] = '\\u06B1';\n t['\\uFB9B'] = '\\u06B1';\n t['\\uFB9C'] = '\\u06B1';\n t['\\uFB9D'] = '\\u06B1';\n t['\\uFB9E'] = '\\u06BA';\n t['\\uFB9F'] = '\\u06BA';\n t['\\uFBA0'] = '\\u06BB';\n t['\\uFBA1'] = '\\u06BB';\n t['\\uFBA2'] = '\\u06BB';\n t['\\uFBA3'] = '\\u06BB';\n t['\\uFBA4'] = '\\u06C0';\n t['\\uFBA5'] = '\\u06C0';\n t['\\uFBA6'] = '\\u06C1';\n t['\\uFBA7'] = '\\u06C1';\n t['\\uFBA8'] = '\\u06C1';\n t['\\uFBA9'] = '\\u06C1';\n t['\\uFBAA'] = '\\u06BE';\n t['\\uFBAB'] = '\\u06BE';\n t['\\uFBAC'] = '\\u06BE';\n t['\\uFBAD'] = '\\u06BE';\n t['\\uFBAE'] = '\\u06D2';\n t['\\uFBAF'] = '\\u06D2';\n t['\\uFBB0'] = '\\u06D3';\n t['\\uFBB1'] = '\\u06D3';\n t['\\uFBD3'] = '\\u06AD';\n t['\\uFBD4'] = '\\u06AD';\n t['\\uFBD5'] = '\\u06AD';\n t['\\uFBD6'] = '\\u06AD';\n t['\\uFBD7'] = '\\u06C7';\n t['\\uFBD8'] = '\\u06C7';\n t['\\uFBD9'] = '\\u06C6';\n t['\\uFBDA'] = '\\u06C6';\n t['\\uFBDB'] = '\\u06C8';\n t['\\uFBDC'] = '\\u06C8';\n t['\\uFBDD'] = '\\u0677';\n t['\\uFBDE'] = '\\u06CB';\n t['\\uFBDF'] = '\\u06CB';\n t['\\uFBE0'] = '\\u06C5';\n t['\\uFBE1'] = '\\u06C5';\n t['\\uFBE2'] = '\\u06C9';\n t['\\uFBE3'] = '\\u06C9';\n t['\\uFBE4'] = '\\u06D0';\n t['\\uFBE5'] = '\\u06D0';\n t['\\uFBE6'] = '\\u06D0';\n t['\\uFBE7'] = '\\u06D0';\n t['\\uFBE8'] = '\\u0649';\n t['\\uFBE9'] = '\\u0649';\n t['\\uFBEA'] = '\\u0626\\u0627';\n t['\\uFBEB'] = '\\u0626\\u0627';\n t['\\uFBEC'] = '\\u0626\\u06D5';\n t['\\uFBED'] = '\\u0626\\u06D5';\n t['\\uFBEE'] = '\\u0626\\u0648';\n t['\\uFBEF'] = '\\u0626\\u0648';\n t['\\uFBF0'] = '\\u0626\\u06C7';\n t['\\uFBF1'] = '\\u0626\\u06C7';\n t['\\uFBF2'] = '\\u0626\\u06C6';\n t['\\uFBF3'] = '\\u0626\\u06C6';\n t['\\uFBF4'] = '\\u0626\\u06C8';\n t['\\uFBF5'] = '\\u0626\\u06C8';\n t['\\uFBF6'] = '\\u0626\\u06D0';\n t['\\uFBF7'] = '\\u0626\\u06D0';\n t['\\uFBF8'] = '\\u0626\\u06D0';\n t['\\uFBF9'] = '\\u0626\\u0649';\n t['\\uFBFA'] = '\\u0626\\u0649';\n t['\\uFBFB'] = '\\u0626\\u0649';\n t['\\uFBFC'] = '\\u06CC';\n t['\\uFBFD'] = '\\u06CC';\n t['\\uFBFE'] = '\\u06CC';\n t['\\uFBFF'] = '\\u06CC';\n t['\\uFC00'] = '\\u0626\\u062C';\n t['\\uFC01'] = '\\u0626\\u062D';\n t['\\uFC02'] = '\\u0626\\u0645';\n t['\\uFC03'] = '\\u0626\\u0649';\n t['\\uFC04'] = '\\u0626\\u064A';\n t['\\uFC05'] = '\\u0628\\u062C';\n t['\\uFC06'] = '\\u0628\\u062D';\n t['\\uFC07'] = '\\u0628\\u062E';\n t['\\uFC08'] = '\\u0628\\u0645';\n t['\\uFC09'] = '\\u0628\\u0649';\n t['\\uFC0A'] = '\\u0628\\u064A';\n t['\\uFC0B'] = '\\u062A\\u062C';\n t['\\uFC0C'] = '\\u062A\\u062D';\n t['\\uFC0D'] = '\\u062A\\u062E';\n t['\\uFC0E'] = '\\u062A\\u0645';\n t['\\uFC0F'] = '\\u062A\\u0649';\n t['\\uFC10'] = '\\u062A\\u064A';\n t['\\uFC11'] = '\\u062B\\u062C';\n t['\\uFC12'] = '\\u062B\\u0645';\n t['\\uFC13'] = '\\u062B\\u0649';\n t['\\uFC14'] = '\\u062B\\u064A';\n t['\\uFC15'] = '\\u062C\\u062D';\n t['\\uFC16'] = '\\u062C\\u0645';\n t['\\uFC17'] = '\\u062D\\u062C';\n t['\\uFC18'] = '\\u062D\\u0645';\n t['\\uFC19'] = '\\u062E\\u062C';\n t['\\uFC1A'] = '\\u062E\\u062D';\n t['\\uFC1B'] = '\\u062E\\u0645';\n t['\\uFC1C'] = '\\u0633\\u062C';\n t['\\uFC1D'] = '\\u0633\\u062D';\n t['\\uFC1E'] = '\\u0633\\u062E';\n t['\\uFC1F'] = '\\u0633\\u0645';\n t['\\uFC20'] = '\\u0635\\u062D';\n t['\\uFC21'] = '\\u0635\\u0645';\n t['\\uFC22'] = '\\u0636\\u062C';\n t['\\uFC23'] = '\\u0636\\u062D';\n t['\\uFC24'] = '\\u0636\\u062E';\n t['\\uFC25'] = '\\u0636\\u0645';\n t['\\uFC26'] = '\\u0637\\u062D';\n t['\\uFC27'] = '\\u0637\\u0645';\n t['\\uFC28'] = '\\u0638\\u0645';\n t['\\uFC29'] = '\\u0639\\u062C';\n t['\\uFC2A'] = '\\u0639\\u0645';\n t['\\uFC2B'] = '\\u063A\\u062C';\n t['\\uFC2C'] = '\\u063A\\u0645';\n t['\\uFC2D'] = '\\u0641\\u062C';\n t['\\uFC2E'] = '\\u0641\\u062D';\n t['\\uFC2F'] = '\\u0641\\u062E';\n t['\\uFC30'] = '\\u0641\\u0645';\n t['\\uFC31'] = '\\u0641\\u0649';\n t['\\uFC32'] = '\\u0641\\u064A';\n t['\\uFC33'] = '\\u0642\\u062D';\n t['\\uFC34'] = '\\u0642\\u0645';\n t['\\uFC35'] = '\\u0642\\u0649';\n t['\\uFC36'] = '\\u0642\\u064A';\n t['\\uFC37'] = '\\u0643\\u0627';\n t['\\uFC38'] = '\\u0643\\u062C';\n t['\\uFC39'] = '\\u0643\\u062D';\n t['\\uFC3A'] = '\\u0643\\u062E';\n t['\\uFC3B'] = '\\u0643\\u0644';\n t['\\uFC3C'] = '\\u0643\\u0645';\n t['\\uFC3D'] = '\\u0643\\u0649';\n t['\\uFC3E'] = '\\u0643\\u064A';\n t['\\uFC3F'] = '\\u0644\\u062C';\n t['\\uFC40'] = '\\u0644\\u062D';\n t['\\uFC41'] = '\\u0644\\u062E';\n t['\\uFC42'] = '\\u0644\\u0645';\n t['\\uFC43'] = '\\u0644\\u0649';\n t['\\uFC44'] = '\\u0644\\u064A';\n t['\\uFC45'] = '\\u0645\\u062C';\n t['\\uFC46'] = '\\u0645\\u062D';\n t['\\uFC47'] = '\\u0645\\u062E';\n t['\\uFC48'] = '\\u0645\\u0645';\n t['\\uFC49'] = '\\u0645\\u0649';\n t['\\uFC4A'] = '\\u0645\\u064A';\n t['\\uFC4B'] = '\\u0646\\u062C';\n t['\\uFC4C'] = '\\u0646\\u062D';\n t['\\uFC4D'] = '\\u0646\\u062E';\n t['\\uFC4E'] = '\\u0646\\u0645';\n t['\\uFC4F'] = '\\u0646\\u0649';\n t['\\uFC50'] = '\\u0646\\u064A';\n t['\\uFC51'] = '\\u0647\\u062C';\n t['\\uFC52'] = '\\u0647\\u0645';\n t['\\uFC53'] = '\\u0647\\u0649';\n t['\\uFC54'] = '\\u0647\\u064A';\n t['\\uFC55'] = '\\u064A\\u062C';\n t['\\uFC56'] = '\\u064A\\u062D';\n t['\\uFC57'] = '\\u064A\\u062E';\n t['\\uFC58'] = '\\u064A\\u0645';\n t['\\uFC59'] = '\\u064A\\u0649';\n t['\\uFC5A'] = '\\u064A\\u064A';\n t['\\uFC5B'] = '\\u0630\\u0670';\n t['\\uFC5C'] = '\\u0631\\u0670';\n t['\\uFC5D'] = '\\u0649\\u0670';\n t['\\uFC5E'] = ' \\u064C\\u0651';\n t['\\uFC5F'] = ' \\u064D\\u0651';\n t['\\uFC60'] = ' \\u064E\\u0651';\n t['\\uFC61'] = ' \\u064F\\u0651';\n t['\\uFC62'] = ' \\u0650\\u0651';\n t['\\uFC63'] = ' \\u0651\\u0670';\n t['\\uFC64'] = '\\u0626\\u0631';\n t['\\uFC65'] = '\\u0626\\u0632';\n t['\\uFC66'] = '\\u0626\\u0645';\n t['\\uFC67'] = '\\u0626\\u0646';\n t['\\uFC68'] = '\\u0626\\u0649';\n t['\\uFC69'] = '\\u0626\\u064A';\n t['\\uFC6A'] = '\\u0628\\u0631';\n t['\\uFC6B'] = '\\u0628\\u0632';\n t['\\uFC6C'] = '\\u0628\\u0645';\n t['\\uFC6D'] = '\\u0628\\u0646';\n t['\\uFC6E'] = '\\u0628\\u0649';\n t['\\uFC6F'] = '\\u0628\\u064A';\n t['\\uFC70'] = '\\u062A\\u0631';\n t['\\uFC71'] = '\\u062A\\u0632';\n t['\\uFC72'] = '\\u062A\\u0645';\n t['\\uFC73'] = '\\u062A\\u0646';\n t['\\uFC74'] = '\\u062A\\u0649';\n t['\\uFC75'] = '\\u062A\\u064A';\n t['\\uFC76'] = '\\u062B\\u0631';\n t['\\uFC77'] = '\\u062B\\u0632';\n t['\\uFC78'] = '\\u062B\\u0645';\n t['\\uFC79'] = '\\u062B\\u0646';\n t['\\uFC7A'] = '\\u062B\\u0649';\n t['\\uFC7B'] = '\\u062B\\u064A';\n t['\\uFC7C'] = '\\u0641\\u0649';\n t['\\uFC7D'] = '\\u0641\\u064A';\n t['\\uFC7E'] = '\\u0642\\u0649';\n t['\\uFC7F'] = '\\u0642\\u064A';\n t['\\uFC80'] = '\\u0643\\u0627';\n t['\\uFC81'] = '\\u0643\\u0644';\n t['\\uFC82'] = '\\u0643\\u0645';\n t['\\uFC83'] = '\\u0643\\u0649';\n t['\\uFC84'] = '\\u0643\\u064A';\n t['\\uFC85'] = '\\u0644\\u0645';\n t['\\uFC86'] = '\\u0644\\u0649';\n t['\\uFC87'] = '\\u0644\\u064A';\n t['\\uFC88'] = '\\u0645\\u0627';\n t['\\uFC89'] = '\\u0645\\u0645';\n t['\\uFC8A'] = '\\u0646\\u0631';\n t['\\uFC8B'] = '\\u0646\\u0632';\n t['\\uFC8C'] = '\\u0646\\u0645';\n t['\\uFC8D'] = '\\u0646\\u0646';\n t['\\uFC8E'] = '\\u0646\\u0649';\n t['\\uFC8F'] = '\\u0646\\u064A';\n t['\\uFC90'] = '\\u0649\\u0670';\n t['\\uFC91'] = '\\u064A\\u0631';\n t['\\uFC92'] = '\\u064A\\u0632';\n t['\\uFC93'] = '\\u064A\\u0645';\n t['\\uFC94'] = '\\u064A\\u0646';\n t['\\uFC95'] = '\\u064A\\u0649';\n t['\\uFC96'] = '\\u064A\\u064A';\n t['\\uFC97'] = '\\u0626\\u062C';\n t['\\uFC98'] = '\\u0626\\u062D';\n t['\\uFC99'] = '\\u0626\\u062E';\n t['\\uFC9A'] = '\\u0626\\u0645';\n t['\\uFC9B'] = '\\u0626\\u0647';\n t['\\uFC9C'] = '\\u0628\\u062C';\n t['\\uFC9D'] = '\\u0628\\u062D';\n t['\\uFC9E'] = '\\u0628\\u062E';\n t['\\uFC9F'] = '\\u0628\\u0645';\n t['\\uFCA0'] = '\\u0628\\u0647';\n t['\\uFCA1'] = '\\u062A\\u062C';\n t['\\uFCA2'] = '\\u062A\\u062D';\n t['\\uFCA3'] = '\\u062A\\u062E';\n t['\\uFCA4'] = '\\u062A\\u0645';\n t['\\uFCA5'] = '\\u062A\\u0647';\n t['\\uFCA6'] = '\\u062B\\u0645';\n t['\\uFCA7'] = '\\u062C\\u062D';\n t['\\uFCA8'] = '\\u062C\\u0645';\n t['\\uFCA9'] = '\\u062D\\u062C';\n t['\\uFCAA'] = '\\u062D\\u0645';\n t['\\uFCAB'] = '\\u062E\\u062C';\n t['\\uFCAC'] = '\\u062E\\u0645';\n t['\\uFCAD'] = '\\u0633\\u062C';\n t['\\uFCAE'] = '\\u0633\\u062D';\n t['\\uFCAF'] = '\\u0633\\u062E';\n t['\\uFCB0'] = '\\u0633\\u0645';\n t['\\uFCB1'] = '\\u0635\\u062D';\n t['\\uFCB2'] = '\\u0635\\u062E';\n t['\\uFCB3'] = '\\u0635\\u0645';\n t['\\uFCB4'] = '\\u0636\\u062C';\n t['\\uFCB5'] = '\\u0636\\u062D';\n t['\\uFCB6'] = '\\u0636\\u062E';\n t['\\uFCB7'] = '\\u0636\\u0645';\n t['\\uFCB8'] = '\\u0637\\u062D';\n t['\\uFCB9'] = '\\u0638\\u0645';\n t['\\uFCBA'] = '\\u0639\\u062C';\n t['\\uFCBB'] = '\\u0639\\u0645';\n t['\\uFCBC'] = '\\u063A\\u062C';\n t['\\uFCBD'] = '\\u063A\\u0645';\n t['\\uFCBE'] = '\\u0641\\u062C';\n t['\\uFCBF'] = '\\u0641\\u062D';\n t['\\uFCC0'] = '\\u0641\\u062E';\n t['\\uFCC1'] = '\\u0641\\u0645';\n t['\\uFCC2'] = '\\u0642\\u062D';\n t['\\uFCC3'] = '\\u0642\\u0645';\n t['\\uFCC4'] = '\\u0643\\u062C';\n t['\\uFCC5'] = '\\u0643\\u062D';\n t['\\uFCC6'] = '\\u0643\\u062E';\n t['\\uFCC7'] = '\\u0643\\u0644';\n t['\\uFCC8'] = '\\u0643\\u0645';\n t['\\uFCC9'] = '\\u0644\\u062C';\n t['\\uFCCA'] = '\\u0644\\u062D';\n t['\\uFCCB'] = '\\u0644\\u062E';\n t['\\uFCCC'] = '\\u0644\\u0645';\n t['\\uFCCD'] = '\\u0644\\u0647';\n t['\\uFCCE'] = '\\u0645\\u062C';\n t['\\uFCCF'] = '\\u0645\\u062D';\n t['\\uFCD0'] = '\\u0645\\u062E';\n t['\\uFCD1'] = '\\u0645\\u0645';\n t['\\uFCD2'] = '\\u0646\\u062C';\n t['\\uFCD3'] = '\\u0646\\u062D';\n t['\\uFCD4'] = '\\u0646\\u062E';\n t['\\uFCD5'] = '\\u0646\\u0645';\n t['\\uFCD6'] = '\\u0646\\u0647';\n t['\\uFCD7'] = '\\u0647\\u062C';\n t['\\uFCD8'] = '\\u0647\\u0645';\n t['\\uFCD9'] = '\\u0647\\u0670';\n t['\\uFCDA'] = '\\u064A\\u062C';\n t['\\uFCDB'] = '\\u064A\\u062D';\n t['\\uFCDC'] = '\\u064A\\u062E';\n t['\\uFCDD'] = '\\u064A\\u0645';\n t['\\uFCDE'] = '\\u064A\\u0647';\n t['\\uFCDF'] = '\\u0626\\u0645';\n t['\\uFCE0'] = '\\u0626\\u0647';\n t['\\uFCE1'] = '\\u0628\\u0645';\n t['\\uFCE2'] = '\\u0628\\u0647';\n t['\\uFCE3'] = '\\u062A\\u0645';\n t['\\uFCE4'] = '\\u062A\\u0647';\n t['\\uFCE5'] = '\\u062B\\u0645';\n t['\\uFCE6'] = '\\u062B\\u0647';\n t['\\uFCE7'] = '\\u0633\\u0645';\n t['\\uFCE8'] = '\\u0633\\u0647';\n t['\\uFCE9'] = '\\u0634\\u0645';\n t['\\uFCEA'] = '\\u0634\\u0647';\n t['\\uFCEB'] = '\\u0643\\u0644';\n t['\\uFCEC'] = '\\u0643\\u0645';\n t['\\uFCED'] = '\\u0644\\u0645';\n t['\\uFCEE'] = '\\u0646\\u0645';\n t['\\uFCEF'] = '\\u0646\\u0647';\n t['\\uFCF0'] = '\\u064A\\u0645';\n t['\\uFCF1'] = '\\u064A\\u0647';\n t['\\uFCF2'] = '\\u0640\\u064E\\u0651';\n t['\\uFCF3'] = '\\u0640\\u064F\\u0651';\n t['\\uFCF4'] = '\\u0640\\u0650\\u0651';\n t['\\uFCF5'] = '\\u0637\\u0649';\n t['\\uFCF6'] = '\\u0637\\u064A';\n t['\\uFCF7'] = '\\u0639\\u0649';\n t['\\uFCF8'] = '\\u0639\\u064A';\n t['\\uFCF9'] = '\\u063A\\u0649';\n t['\\uFCFA'] = '\\u063A\\u064A';\n t['\\uFCFB'] = '\\u0633\\u0649';\n t['\\uFCFC'] = '\\u0633\\u064A';\n t['\\uFCFD'] = '\\u0634\\u0649';\n t['\\uFCFE'] = '\\u0634\\u064A';\n t['\\uFCFF'] = '\\u062D\\u0649';\n t['\\uFD00'] = '\\u062D\\u064A';\n t['\\uFD01'] = '\\u062C\\u0649';\n t['\\uFD02'] = '\\u062C\\u064A';\n t['\\uFD03'] = '\\u062E\\u0649';\n t['\\uFD04'] = '\\u062E\\u064A';\n t['\\uFD05'] = '\\u0635\\u0649';\n t['\\uFD06'] = '\\u0635\\u064A';\n t['\\uFD07'] = '\\u0636\\u0649';\n t['\\uFD08'] = '\\u0636\\u064A';\n t['\\uFD09'] = '\\u0634\\u062C';\n t['\\uFD0A'] = '\\u0634\\u062D';\n t['\\uFD0B'] = '\\u0634\\u062E';\n t['\\uFD0C'] = '\\u0634\\u0645';\n t['\\uFD0D'] = '\\u0634\\u0631';\n t['\\uFD0E'] = '\\u0633\\u0631';\n t['\\uFD0F'] = '\\u0635\\u0631';\n t['\\uFD10'] = '\\u0636\\u0631';\n t['\\uFD11'] = '\\u0637\\u0649';\n t['\\uFD12'] = '\\u0637\\u064A';\n t['\\uFD13'] = '\\u0639\\u0649';\n t['\\uFD14'] = '\\u0639\\u064A';\n t['\\uFD15'] = '\\u063A\\u0649';\n t['\\uFD16'] = '\\u063A\\u064A';\n t['\\uFD17'] = '\\u0633\\u0649';\n t['\\uFD18'] = '\\u0633\\u064A';\n t['\\uFD19'] = '\\u0634\\u0649';\n t['\\uFD1A'] = '\\u0634\\u064A';\n t['\\uFD1B'] = '\\u062D\\u0649';\n t['\\uFD1C'] = '\\u062D\\u064A';\n t['\\uFD1D'] = '\\u062C\\u0649';\n t['\\uFD1E'] = '\\u062C\\u064A';\n t['\\uFD1F'] = '\\u062E\\u0649';\n t['\\uFD20'] = '\\u062E\\u064A';\n t['\\uFD21'] = '\\u0635\\u0649';\n t['\\uFD22'] = '\\u0635\\u064A';\n t['\\uFD23'] = '\\u0636\\u0649';\n t['\\uFD24'] = '\\u0636\\u064A';\n t['\\uFD25'] = '\\u0634\\u062C';\n t['\\uFD26'] = '\\u0634\\u062D';\n t['\\uFD27'] = '\\u0634\\u062E';\n t['\\uFD28'] = '\\u0634\\u0645';\n t['\\uFD29'] = '\\u0634\\u0631';\n t['\\uFD2A'] = '\\u0633\\u0631';\n t['\\uFD2B'] = '\\u0635\\u0631';\n t['\\uFD2C'] = '\\u0636\\u0631';\n t['\\uFD2D'] = '\\u0634\\u062C';\n t['\\uFD2E'] = '\\u0634\\u062D';\n t['\\uFD2F'] = '\\u0634\\u062E';\n t['\\uFD30'] = '\\u0634\\u0645';\n t['\\uFD31'] = '\\u0633\\u0647';\n t['\\uFD32'] = '\\u0634\\u0647';\n t['\\uFD33'] = '\\u0637\\u0645';\n t['\\uFD34'] = '\\u0633\\u062C';\n t['\\uFD35'] = '\\u0633\\u062D';\n t['\\uFD36'] = '\\u0633\\u062E';\n t['\\uFD37'] = '\\u0634\\u062C';\n t['\\uFD38'] = '\\u0634\\u062D';\n t['\\uFD39'] = '\\u0634\\u062E';\n t['\\uFD3A'] = '\\u0637\\u0645';\n t['\\uFD3B'] = '\\u0638\\u0645';\n t['\\uFD3C'] = '\\u0627\\u064B';\n t['\\uFD3D'] = '\\u0627\\u064B';\n t['\\uFD50'] = '\\u062A\\u062C\\u0645';\n t['\\uFD51'] = '\\u062A\\u062D\\u062C';\n t['\\uFD52'] = '\\u062A\\u062D\\u062C';\n t['\\uFD53'] = '\\u062A\\u062D\\u0645';\n t['\\uFD54'] = '\\u062A\\u062E\\u0645';\n t['\\uFD55'] = '\\u062A\\u0645\\u062C';\n t['\\uFD56'] = '\\u062A\\u0645\\u062D';\n t['\\uFD57'] = '\\u062A\\u0645\\u062E';\n t['\\uFD58'] = '\\u062C\\u0645\\u062D';\n t['\\uFD59'] = '\\u062C\\u0645\\u062D';\n t['\\uFD5A'] = '\\u062D\\u0645\\u064A';\n t['\\uFD5B'] = '\\u062D\\u0645\\u0649';\n t['\\uFD5C'] = '\\u0633\\u062D\\u062C';\n t['\\uFD5D'] = '\\u0633\\u062C\\u062D';\n t['\\uFD5E'] = '\\u0633\\u062C\\u0649';\n t['\\uFD5F'] = '\\u0633\\u0645\\u062D';\n t['\\uFD60'] = '\\u0633\\u0645\\u062D';\n t['\\uFD61'] = '\\u0633\\u0645\\u062C';\n t['\\uFD62'] = '\\u0633\\u0645\\u0645';\n t['\\uFD63'] = '\\u0633\\u0645\\u0645';\n t['\\uFD64'] = '\\u0635\\u062D\\u062D';\n t['\\uFD65'] = '\\u0635\\u062D\\u062D';\n t['\\uFD66'] = '\\u0635\\u0645\\u0645';\n t['\\uFD67'] = '\\u0634\\u062D\\u0645';\n t['\\uFD68'] = '\\u0634\\u062D\\u0645';\n t['\\uFD69'] = '\\u0634\\u062C\\u064A';\n t['\\uFD6A'] = '\\u0634\\u0645\\u062E';\n t['\\uFD6B'] = '\\u0634\\u0645\\u062E';\n t['\\uFD6C'] = '\\u0634\\u0645\\u0645';\n t['\\uFD6D'] = '\\u0634\\u0645\\u0645';\n t['\\uFD6E'] = '\\u0636\\u062D\\u0649';\n t['\\uFD6F'] = '\\u0636\\u062E\\u0645';\n t['\\uFD70'] = '\\u0636\\u062E\\u0645';\n t['\\uFD71'] = '\\u0637\\u0645\\u062D';\n t['\\uFD72'] = '\\u0637\\u0645\\u062D';\n t['\\uFD73'] = '\\u0637\\u0645\\u0645';\n t['\\uFD74'] = '\\u0637\\u0645\\u064A';\n t['\\uFD75'] = '\\u0639\\u062C\\u0645';\n t['\\uFD76'] = '\\u0639\\u0645\\u0645';\n t['\\uFD77'] = '\\u0639\\u0645\\u0645';\n t['\\uFD78'] = '\\u0639\\u0645\\u0649';\n t['\\uFD79'] = '\\u063A\\u0645\\u0645';\n t['\\uFD7A'] = '\\u063A\\u0645\\u064A';\n t['\\uFD7B'] = '\\u063A\\u0645\\u0649';\n t['\\uFD7C'] = '\\u0641\\u062E\\u0645';\n t['\\uFD7D'] = '\\u0641\\u062E\\u0645';\n t['\\uFD7E'] = '\\u0642\\u0645\\u062D';\n t['\\uFD7F'] = '\\u0642\\u0645\\u0645';\n t['\\uFD80'] = '\\u0644\\u062D\\u0645';\n t['\\uFD81'] = '\\u0644\\u062D\\u064A';\n t['\\uFD82'] = '\\u0644\\u062D\\u0649';\n t['\\uFD83'] = '\\u0644\\u062C\\u062C';\n t['\\uFD84'] = '\\u0644\\u062C\\u062C';\n t['\\uFD85'] = '\\u0644\\u062E\\u0645';\n t['\\uFD86'] = '\\u0644\\u062E\\u0645';\n t['\\uFD87'] = '\\u0644\\u0645\\u062D';\n t['\\uFD88'] = '\\u0644\\u0645\\u062D';\n t['\\uFD89'] = '\\u0645\\u062D\\u062C';\n t['\\uFD8A'] = '\\u0645\\u062D\\u0645';\n t['\\uFD8B'] = '\\u0645\\u062D\\u064A';\n t['\\uFD8C'] = '\\u0645\\u062C\\u062D';\n t['\\uFD8D'] = '\\u0645\\u062C\\u0645';\n t['\\uFD8E'] = '\\u0645\\u062E\\u062C';\n t['\\uFD8F'] = '\\u0645\\u062E\\u0645';\n t['\\uFD92'] = '\\u0645\\u062C\\u062E';\n t['\\uFD93'] = '\\u0647\\u0645\\u062C';\n t['\\uFD94'] = '\\u0647\\u0645\\u0645';\n t['\\uFD95'] = '\\u0646\\u062D\\u0645';\n t['\\uFD96'] = '\\u0646\\u062D\\u0649';\n t['\\uFD97'] = '\\u0646\\u062C\\u0645';\n t['\\uFD98'] = '\\u0646\\u062C\\u0645';\n t['\\uFD99'] = '\\u0646\\u062C\\u0649';\n t['\\uFD9A'] = '\\u0646\\u0645\\u064A';\n t['\\uFD9B'] = '\\u0646\\u0645\\u0649';\n t['\\uFD9C'] = '\\u064A\\u0645\\u0645';\n t['\\uFD9D'] = '\\u064A\\u0645\\u0645';\n t['\\uFD9E'] = '\\u0628\\u062E\\u064A';\n t['\\uFD9F'] = '\\u062A\\u062C\\u064A';\n t['\\uFDA0'] = '\\u062A\\u062C\\u0649';\n t['\\uFDA1'] = '\\u062A\\u062E\\u064A';\n t['\\uFDA2'] = '\\u062A\\u062E\\u0649';\n t['\\uFDA3'] = '\\u062A\\u0645\\u064A';\n t['\\uFDA4'] = '\\u062A\\u0645\\u0649';\n t['\\uFDA5'] = '\\u062C\\u0645\\u064A';\n t['\\uFDA6'] = '\\u062C\\u062D\\u0649';\n t['\\uFDA7'] = '\\u062C\\u0645\\u0649';\n t['\\uFDA8'] = '\\u0633\\u062E\\u0649';\n t['\\uFDA9'] = '\\u0635\\u062D\\u064A';\n t['\\uFDAA'] = '\\u0634\\u062D\\u064A';\n t['\\uFDAB'] = '\\u0636\\u062D\\u064A';\n t['\\uFDAC'] = '\\u0644\\u062C\\u064A';\n t['\\uFDAD'] = '\\u0644\\u0645\\u064A';\n t['\\uFDAE'] = '\\u064A\\u062D\\u064A';\n t['\\uFDAF'] = '\\u064A\\u062C\\u064A';\n t['\\uFDB0'] = '\\u064A\\u0645\\u064A';\n t['\\uFDB1'] = '\\u0645\\u0645\\u064A';\n t['\\uFDB2'] = '\\u0642\\u0645\\u064A';\n t['\\uFDB3'] = '\\u0646\\u062D\\u064A';\n t['\\uFDB4'] = '\\u0642\\u0645\\u062D';\n t['\\uFDB5'] = '\\u0644\\u062D\\u0645';\n t['\\uFDB6'] = '\\u0639\\u0645\\u064A';\n t['\\uFDB7'] = '\\u0643\\u0645\\u064A';\n t['\\uFDB8'] = '\\u0646\\u062C\\u062D';\n t['\\uFDB9'] = '\\u0645\\u062E\\u064A';\n t['\\uFDBA'] = '\\u0644\\u062C\\u0645';\n t['\\uFDBB'] = '\\u0643\\u0645\\u0645';\n t['\\uFDBC'] = '\\u0644\\u062C\\u0645';\n t['\\uFDBD'] = '\\u0646\\u062C\\u062D';\n t['\\uFDBE'] = '\\u062C\\u062D\\u064A';\n t['\\uFDBF'] = '\\u062D\\u062C\\u064A';\n t['\\uFDC0'] = '\\u0645\\u062C\\u064A';\n t['\\uFDC1'] = '\\u0641\\u0645\\u064A';\n t['\\uFDC2'] = '\\u0628\\u062D\\u064A';\n t['\\uFDC3'] = '\\u0643\\u0645\\u0645';\n t['\\uFDC4'] = '\\u0639\\u062C\\u0645';\n t['\\uFDC5'] = '\\u0635\\u0645\\u0645';\n t['\\uFDC6'] = '\\u0633\\u062E\\u064A';\n t['\\uFDC7'] = '\\u0646\\u062C\\u064A';\n t['\\uFE49'] = '\\u203E';\n t['\\uFE4A'] = '\\u203E';\n t['\\uFE4B'] = '\\u203E';\n t['\\uFE4C'] = '\\u203E';\n t['\\uFE4D'] = '_';\n t['\\uFE4E'] = '_';\n t['\\uFE4F'] = '_';\n t['\\uFE80'] = '\\u0621';\n t['\\uFE81'] = '\\u0622';\n t['\\uFE82'] = '\\u0622';\n t['\\uFE83'] = '\\u0623';\n t['\\uFE84'] = '\\u0623';\n t['\\uFE85'] = '\\u0624';\n t['\\uFE86'] = '\\u0624';\n t['\\uFE87'] = '\\u0625';\n t['\\uFE88'] = '\\u0625';\n t['\\uFE89'] = '\\u0626';\n t['\\uFE8A'] = '\\u0626';\n t['\\uFE8B'] = '\\u0626';\n t['\\uFE8C'] = '\\u0626';\n t['\\uFE8D'] = '\\u0627';\n t['\\uFE8E'] = '\\u0627';\n t['\\uFE8F'] = '\\u0628';\n t['\\uFE90'] = '\\u0628';\n t['\\uFE91'] = '\\u0628';\n t['\\uFE92'] = '\\u0628';\n t['\\uFE93'] = '\\u0629';\n t['\\uFE94'] = '\\u0629';\n t['\\uFE95'] = '\\u062A';\n t['\\uFE96'] = '\\u062A';\n t['\\uFE97'] = '\\u062A';\n t['\\uFE98'] = '\\u062A';\n t['\\uFE99'] = '\\u062B';\n t['\\uFE9A'] = '\\u062B';\n t['\\uFE9B'] = '\\u062B';\n t['\\uFE9C'] = '\\u062B';\n t['\\uFE9D'] = '\\u062C';\n t['\\uFE9E'] = '\\u062C';\n t['\\uFE9F'] = '\\u062C';\n t['\\uFEA0'] = '\\u062C';\n t['\\uFEA1'] = '\\u062D';\n t['\\uFEA2'] = '\\u062D';\n t['\\uFEA3'] = '\\u062D';\n t['\\uFEA4'] = '\\u062D';\n t['\\uFEA5'] = '\\u062E';\n t['\\uFEA6'] = '\\u062E';\n t['\\uFEA7'] = '\\u062E';\n t['\\uFEA8'] = '\\u062E';\n t['\\uFEA9'] = '\\u062F';\n t['\\uFEAA'] = '\\u062F';\n t['\\uFEAB'] = '\\u0630';\n t['\\uFEAC'] = '\\u0630';\n t['\\uFEAD'] = '\\u0631';\n t['\\uFEAE'] = '\\u0631';\n t['\\uFEAF'] = '\\u0632';\n t['\\uFEB0'] = '\\u0632';\n t['\\uFEB1'] = '\\u0633';\n t['\\uFEB2'] = '\\u0633';\n t['\\uFEB3'] = '\\u0633';\n t['\\uFEB4'] = '\\u0633';\n t['\\uFEB5'] = '\\u0634';\n t['\\uFEB6'] = '\\u0634';\n t['\\uFEB7'] = '\\u0634';\n t['\\uFEB8'] = '\\u0634';\n t['\\uFEB9'] = '\\u0635';\n t['\\uFEBA'] = '\\u0635';\n t['\\uFEBB'] = '\\u0635';\n t['\\uFEBC'] = '\\u0635';\n t['\\uFEBD'] = '\\u0636';\n t['\\uFEBE'] = '\\u0636';\n t['\\uFEBF'] = '\\u0636';\n t['\\uFEC0'] = '\\u0636';\n t['\\uFEC1'] = '\\u0637';\n t['\\uFEC2'] = '\\u0637';\n t['\\uFEC3'] = '\\u0637';\n t['\\uFEC4'] = '\\u0637';\n t['\\uFEC5'] = '\\u0638';\n t['\\uFEC6'] = '\\u0638';\n t['\\uFEC7'] = '\\u0638';\n t['\\uFEC8'] = '\\u0638';\n t['\\uFEC9'] = '\\u0639';\n t['\\uFECA'] = '\\u0639';\n t['\\uFECB'] = '\\u0639';\n t['\\uFECC'] = '\\u0639';\n t['\\uFECD'] = '\\u063A';\n t['\\uFECE'] = '\\u063A';\n t['\\uFECF'] = '\\u063A';\n t['\\uFED0'] = '\\u063A';\n t['\\uFED1'] = '\\u0641';\n t['\\uFED2'] = '\\u0641';\n t['\\uFED3'] = '\\u0641';\n t['\\uFED4'] = '\\u0641';\n t['\\uFED5'] = '\\u0642';\n t['\\uFED6'] = '\\u0642';\n t['\\uFED7'] = '\\u0642';\n t['\\uFED8'] = '\\u0642';\n t['\\uFED9'] = '\\u0643';\n t['\\uFEDA'] = '\\u0643';\n t['\\uFEDB'] = '\\u0643';\n t['\\uFEDC'] = '\\u0643';\n t['\\uFEDD'] = '\\u0644';\n t['\\uFEDE'] = '\\u0644';\n t['\\uFEDF'] = '\\u0644';\n t['\\uFEE0'] = '\\u0644';\n t['\\uFEE1'] = '\\u0645';\n t['\\uFEE2'] = '\\u0645';\n t['\\uFEE3'] = '\\u0645';\n t['\\uFEE4'] = '\\u0645';\n t['\\uFEE5'] = '\\u0646';\n t['\\uFEE6'] = '\\u0646';\n t['\\uFEE7'] = '\\u0646';\n t['\\uFEE8'] = '\\u0646';\n t['\\uFEE9'] = '\\u0647';\n t['\\uFEEA'] = '\\u0647';\n t['\\uFEEB'] = '\\u0647';\n t['\\uFEEC'] = '\\u0647';\n t['\\uFEED'] = '\\u0648';\n t['\\uFEEE'] = '\\u0648';\n t['\\uFEEF'] = '\\u0649';\n t['\\uFEF0'] = '\\u0649';\n t['\\uFEF1'] = '\\u064A';\n t['\\uFEF2'] = '\\u064A';\n t['\\uFEF3'] = '\\u064A';\n t['\\uFEF4'] = '\\u064A';\n t['\\uFEF5'] = '\\u0644\\u0622';\n t['\\uFEF6'] = '\\u0644\\u0622';\n t['\\uFEF7'] = '\\u0644\\u0623';\n t['\\uFEF8'] = '\\u0644\\u0623';\n t['\\uFEF9'] = '\\u0644\\u0625';\n t['\\uFEFA'] = '\\u0644\\u0625';\n t['\\uFEFB'] = '\\u0644\\u0627';\n t['\\uFEFC'] = '\\u0644\\u0627';\n });\n function reverseIfRtl(chars) {\n var charsLength = chars.length;\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n return chars;\n }\n var s = '';\n for (var ii = charsLength - 1; ii >= 0; ii--) {\n s += chars[ii];\n }\n return s;\n }\n exports.mapSpecialUnicodeValues = mapSpecialUnicodeValues;\n exports.reverseIfRtl = reverseIfRtl;\n exports.getUnicodeRangeFor = getUnicodeRangeFor;\n exports.getNormalizedUnicodes = getNormalizedUnicodes;\n exports.getUnicodeForGlyph = getUnicodeForGlyph;\n\n /***/\n }, /* 61 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.WorkerMessageHandler = exports.WorkerTask = undefined;\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _util = __w_pdfjs_require__(0);\n var _pdf_manager = __w_pdfjs_require__(100);\n var _primitives = __w_pdfjs_require__(1);\n var WorkerTask = function WorkerTaskClosure() {\n function WorkerTask(name) {\n this.name = name;\n this.terminated = false;\n this._capability = (0, _util.createPromiseCapability)();\n }\n WorkerTask.prototype = {\n get finished() {\n return this._capability.promise;\n },\n finish: function finish() {\n this._capability.resolve();\n },\n terminate: function terminate() {\n this.terminated = true;\n },\n ensureNotTerminated: function ensureNotTerminated() {\n if (this.terminated) {\n throw new Error('Worker task was terminated');\n }\n }\n };\n return WorkerTask;\n }();\n ;\n var PDFWorkerStream = function PDFWorkerStreamClosure() {\n function PDFWorkerStream(msgHandler) {\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n PDFWorkerStream.prototype = {\n getFullReader: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n return this._fullRequestReader;\n },\n getRangeReader: function getRangeReader(begin, end) {\n var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n this._rangeRequestReaders.push(reader);\n return reader;\n },\n cancelAllRequests: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n var readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n };\n function PDFWorkerStreamReader(msgHandler) {\n var _this = this;\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n var readableStream = this._msgHandler.sendWithStream('GetReader');\n this._reader = readableStream.getReader();\n this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {\n _this._isStreamingSupported = data.isStreamingSupported;\n _this._isRangeSupported = data.isRangeSupported;\n _this._contentLength = data.contentLength;\n });\n }\n PDFWorkerStreamReader.prototype = {\n get headersReady() {\n return this._headersReady;\n },\n get contentLength() {\n return this._contentLength;\n },\n get isStreamingSupported() {\n return this._isStreamingSupported;\n },\n get isRangeSupported() {\n return this._isRangeSupported;\n },\n read: function read() {\n return this._reader.read().then(function (_ref) {\n var value = _ref.value,\n done = _ref.done;\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n return {\n value: value.buffer,\n done: false\n };\n });\n },\n cancel: function cancel(reason) {\n this._reader.cancel(reason);\n }\n };\n function PDFWorkerStreamRangeReader(begin, end, msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {\n begin: begin,\n end: end\n });\n this._reader = readableStream.getReader();\n }\n PDFWorkerStreamRangeReader.prototype = {\n get isStreamingSupported() {\n return false;\n },\n read: function read() {\n return this._reader.read().then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n return {\n value: value.buffer,\n done: false\n };\n });\n },\n cancel: function cancel(reason) {\n this._reader.cancel(reason);\n }\n };\n return PDFWorkerStream;\n }();\n var WorkerMessageHandler = {\n setup: function setup(handler, port) {\n var testMessageProcessed = false;\n handler.on('test', function wphSetupTest(data) {\n if (testMessageProcessed) {\n return;\n }\n testMessageProcessed = true;\n if (!(data instanceof Uint8Array)) {\n handler.send('test', 'main', false);\n return;\n }\n var supportTransfers = data[0] === 255;\n handler.postMessageTransfers = supportTransfers;\n var xhr = new XMLHttpRequest();\n var responseExists = ('response' in xhr);\n try {\n xhr.responseType;\n } catch (e) {\n responseExists = false;\n }\n if (!responseExists) {\n handler.send('test', false);\n return;\n }\n handler.send('test', {\n supportTypedArray: true,\n supportTransfers: supportTransfers\n });\n });\n handler.on('configure', function wphConfigure(data) {\n (0, _util.setVerbosityLevel)(data.verbosity);\n });\n handler.on('GetDocRequest', function wphSetupDoc(data) {\n return WorkerMessageHandler.createDocumentHandler(data, port);\n });\n },\n createDocumentHandler: function createDocumentHandler(docParams, port) {\n var pdfManager;\n var terminated = false;\n var cancelXHRs = null;\n var WorkerTasks = [];\n var docId = docParams.docId;\n var docBaseUrl = docParams.docBaseUrl;\n var workerHandlerName = docParams.docId + '_worker';\n var handler = new _util.MessageHandler(workerHandlerName, docId, port);\n handler.postMessageTransfers = docParams.postMessageTransfers;\n function ensureNotTerminated() {\n if (terminated) {\n throw new Error('Worker was terminated');\n }\n }\n function startWorkerTask(task) {\n WorkerTasks.push(task);\n }\n function finishWorkerTask(task) {\n task.finish();\n var i = WorkerTasks.indexOf(task);\n WorkerTasks.splice(i, 1);\n }\n function loadDocument(recoveryMode) {\n var loadDocumentCapability = (0, _util.createPromiseCapability)();\n var parseSuccess = function parseSuccess() {\n var numPagesPromise = pdfManager.ensureDoc('numPages');\n var fingerprintPromise = pdfManager.ensureDoc('fingerprint');\n var encryptedPromise = pdfManager.ensureXRef('encrypt');\n Promise.all([numPagesPromise, fingerprintPromise, encryptedPromise]).then(function onDocReady(results) {\n var doc = {\n numPages: results[0],\n fingerprint: results[1],\n encrypted: !!results[2]\n };\n loadDocumentCapability.resolve(doc);\n }, parseFailure);\n };\n var parseFailure = function parseFailure(e) {\n loadDocumentCapability.reject(e);\n };\n pdfManager.ensureDoc('checkHeader', []).then(function () {\n pdfManager.ensureDoc('parseStartXRef', []).then(function () {\n pdfManager.ensureDoc('parse', [recoveryMode]).then(parseSuccess, parseFailure);\n }, parseFailure);\n }, parseFailure);\n return loadDocumentCapability.promise;\n }\n function getPdfManager(data, evaluatorOptions) {\n var pdfManagerCapability = (0, _util.createPromiseCapability)();\n var pdfManager;\n var source = data.source;\n if (source.data) {\n try {\n pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(pdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n return pdfManagerCapability.promise;\n }\n var pdfStream,\n cachedChunks = [];\n try {\n pdfStream = new PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n var fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady.then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;\n pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {\n msgHandler: handler,\n url: source.url,\n password: source.password,\n length: fullRequest.contentLength,\n disableAutoFetch: disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize\n }, evaluatorOptions, docBaseUrl);\n for (var i = 0; i < cachedChunks.length; i++) {\n pdfManager.sendProgressiveData(cachedChunks[i]);\n }\n cachedChunks = [];\n pdfManagerCapability.resolve(pdfManager);\n cancelXHRs = null;\n }).catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n var loaded = 0;\n var flushChunks = function flushChunks() {\n var pdfFile = (0, _util.arraysToBytes)(cachedChunks);\n if (source.length && pdfFile.length !== source.length) {\n (0, _util.warn)('reported HTTP length is different from actual');\n }\n try {\n pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(pdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n cachedChunks = [];\n };\n var readPromise = new Promise(function (resolve, reject) {\n var readChunk = function readChunk(chunk) {\n try {\n ensureNotTerminated();\n if (chunk.done) {\n if (!pdfManager) {\n flushChunks();\n }\n cancelXHRs = null;\n return;\n }\n var data = chunk.value;\n loaded += (0, _util.arrayByteLength)(data);\n if (!fullRequest.isStreamingSupported) {\n handler.send('DocProgress', {\n loaded: loaded,\n total: Math.max(loaded, fullRequest.contentLength || 0)\n });\n }\n if (pdfManager) {\n pdfManager.sendProgressiveData(data);\n } else {\n cachedChunks.push(data);\n }\n fullRequest.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n fullRequest.read().then(readChunk, reject);\n });\n readPromise.catch(function (e) {\n pdfManagerCapability.reject(e);\n cancelXHRs = null;\n });\n cancelXHRs = function cancelXHRs() {\n pdfStream.cancelAllRequests('abort');\n };\n return pdfManagerCapability.promise;\n }\n function setupDoc(data) {\n function onSuccess(doc) {\n ensureNotTerminated();\n handler.send('GetDoc', {\n pdfInfo: doc\n });\n }\n function onFailure(e) {\n ensureNotTerminated();\n if (e instanceof _util.PasswordException) {\n var task = new WorkerTask('PasswordException: response ' + e.code);\n startWorkerTask(task);\n handler.sendWithPromise('PasswordRequest', e).then(function (data) {\n finishWorkerTask(task);\n pdfManager.updatePassword(data.password);\n pdfManagerReady();\n }).catch(function (ex) {\n finishWorkerTask(task);\n handler.send('PasswordException', ex);\n }.bind(null, e));\n } else if (e instanceof _util.InvalidPDFException) {\n handler.send('InvalidPDF', e);\n } else if (e instanceof _util.MissingPDFException) {\n handler.send('MissingPDF', e);\n } else if (e instanceof _util.UnexpectedResponseException) {\n handler.send('UnexpectedResponse', e);\n } else {\n handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));\n }\n }\n function pdfManagerReady() {\n ensureNotTerminated();\n loadDocument(false).then(onSuccess, function loadFailure(ex) {\n ensureNotTerminated();\n if (!(ex instanceof _util.XRefParseException)) {\n onFailure(ex);\n return;\n }\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n loadDocument(true).then(onSuccess, onFailure);\n });\n }, onFailure);\n }\n ensureNotTerminated();\n var evaluatorOptions = {\n forceDataSchema: data.disableCreateObjectURL,\n maxImageSize: data.maxImageSize === undefined ? -1 : data.maxImageSize,\n disableFontFace: data.disableFontFace,\n nativeImageDecoderSupport: data.nativeImageDecoderSupport,\n ignoreErrors: data.ignoreErrors\n };\n getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {\n if (terminated) {\n newPdfManager.terminate();\n throw new Error('Worker was terminated');\n }\n pdfManager = newPdfManager;\n handler.send('PDFManagerReady', null);\n pdfManager.onLoadedStream().then(function (stream) {\n handler.send('DataLoaded', {\n length: stream.bytes.byteLength\n });\n });\n }).then(pdfManagerReady, onFailure);\n }\n handler.on('GetPage', function wphSetupGetPage(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n var rotatePromise = pdfManager.ensure(page, 'rotate');\n var refPromise = pdfManager.ensure(page, 'ref');\n var userUnitPromise = pdfManager.ensure(page, 'userUnit');\n var viewPromise = pdfManager.ensure(page, 'view');\n return Promise.all([rotatePromise, refPromise, userUnitPromise, viewPromise]).then(function (results) {\n return {\n rotate: results[0],\n ref: results[1],\n userUnit: results[2],\n view: results[3]\n };\n });\n });\n });\n handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {\n var ref = new _primitives.Ref(data.ref.num, data.ref.gen);\n var catalog = pdfManager.pdfDocument.catalog;\n return catalog.getPageIndex(ref);\n });\n handler.on('GetDestinations', function wphSetupGetDestinations(data) {\n return pdfManager.ensureCatalog('destinations');\n });\n handler.on('GetDestination', function wphSetupGetDestination(data) {\n return pdfManager.ensureCatalog('getDestination', [data.id]);\n });\n handler.on('GetPageLabels', function wphSetupGetPageLabels(data) {\n return pdfManager.ensureCatalog('pageLabels');\n });\n handler.on('GetPageMode', function wphSetupGetPageMode(data) {\n return pdfManager.ensureCatalog('pageMode');\n });\n handler.on('GetAttachments', function wphSetupGetAttachments(data) {\n return pdfManager.ensureCatalog('attachments');\n });\n handler.on('GetJavaScript', function wphSetupGetJavaScript(data) {\n return pdfManager.ensureCatalog('javaScript');\n });\n handler.on('GetOutline', function wphSetupGetOutline(data) {\n return pdfManager.ensureCatalog('documentOutline');\n });\n handler.on('GetMetadata', function wphSetupGetMetadata(data) {\n return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]);\n });\n handler.on('GetData', function wphSetupGetData(data) {\n pdfManager.requestLoadedStream();\n return pdfManager.onLoadedStream().then(function (stream) {\n return stream.bytes;\n });\n });\n handler.on('GetStats', function wphSetupGetStats(data) {\n return pdfManager.pdfDocument.xref.stats;\n });\n handler.on('GetAnnotations', function wphSetupGetAnnotations(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return pdfManager.ensure(page, 'getAnnotationsData', [data.intent]);\n });\n });\n handler.on('RenderPageRequest', function wphSetupRenderPage(data) {\n var pageIndex = data.pageIndex;\n pdfManager.getPage(pageIndex).then(function (page) {\n var task = new WorkerTask('RenderPageRequest: page ' + pageIndex);\n startWorkerTask(task);\n var pageNum = pageIndex + 1;\n var start = Date.now();\n page.getOperatorList({\n handler: handler,\n task: task,\n intent: data.intent,\n renderInteractiveForms: data.renderInteractiveForms\n }).then(function (operatorList) {\n finishWorkerTask(task);\n (0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);\n }, function (e) {\n finishWorkerTask(task);\n if (task.terminated) {\n return;\n }\n handler.send('UnsupportedFeature', {\n featureId: _util.UNSUPPORTED_FEATURES.unknown\n });\n var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';\n var wrappedException;\n if (typeof e === 'string') {\n wrappedException = {\n message: e,\n stack: minimumStackMessage\n };\n } else if ((typeof e === 'undefined' ? 'undefined' : _typeof(e)) === 'object') {\n wrappedException = {\n message: e.message || e.toString(),\n stack: e.stack || minimumStackMessage\n };\n } else {\n wrappedException = {\n message: 'Unknown exception type: ' + (typeof e === 'undefined' ? 'undefined' : _typeof(e)),\n stack: minimumStackMessage\n };\n }\n handler.send('PageError', {\n pageNum: pageNum,\n error: wrappedException,\n intent: data.intent\n });\n });\n });\n }, this);\n handler.on('GetTextContent', function wphExtractText(data, sink) {\n var pageIndex = data.pageIndex;\n sink.onPull = function (desiredSize) {};\n sink.onCancel = function (reason) {};\n pdfManager.getPage(pageIndex).then(function (page) {\n var task = new WorkerTask('GetTextContent: page ' + pageIndex);\n startWorkerTask(task);\n var pageNum = pageIndex + 1;\n var start = Date.now();\n page.extractTextContent({\n handler: handler,\n task: task,\n sink: sink,\n normalizeWhitespace: data.normalizeWhitespace,\n combineTextItems: data.combineTextItems\n }).then(function () {\n finishWorkerTask(task);\n (0, _util.info)('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms');\n sink.close();\n }, function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return;\n }\n sink.error(reason);\n throw reason;\n });\n });\n });\n handler.on('Cleanup', function wphCleanup(data) {\n return pdfManager.cleanup();\n });\n handler.on('Terminate', function wphTerminate(data) {\n terminated = true;\n if (pdfManager) {\n pdfManager.terminate();\n pdfManager = null;\n }\n if (cancelXHRs) {\n cancelXHRs();\n }\n var waitOn = [];\n WorkerTasks.forEach(function (task) {\n waitOn.push(task.finished);\n task.terminate();\n });\n return Promise.all(waitOn).then(function () {\n handler.destroy();\n handler = null;\n });\n });\n handler.on('Ready', function wphReady(data) {\n setupDoc(docParams);\n docParams = null;\n });\n return workerHandlerName;\n },\n initializeFromPort: function initializeFromPort(port) {\n var handler = new _util.MessageHandler('worker', 'main', port);\n WorkerMessageHandler.setup(handler, port);\n handler.send('ready', null);\n }\n };\n function isMessagePort(maybePort) {\n return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;\n }\n if (typeof window === 'undefined' && !(0, _util.isNodeJS)() && typeof self !== 'undefined' && isMessagePort(self)) {\n WorkerMessageHandler.initializeFromPort(self);\n }\n exports.WorkerTask = WorkerTask;\n exports.WorkerMessageHandler = WorkerMessageHandler;\n\n /***/\n }, /* 62 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n (function (e, a) {\n for (var i in a) {\n e[i] = a[i];\n }\n })(exports, function (modules) {\n var installedModules = {};\n function __w_pdfjs_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: false,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n module.l = true;\n return module.exports;\n }\n __w_pdfjs_require__.m = modules;\n __w_pdfjs_require__.c = installedModules;\n __w_pdfjs_require__.i = function (value) {\n return value;\n };\n __w_pdfjs_require__.d = function (exports, name, getter) {\n if (!__w_pdfjs_require__.o(exports, name)) {\n Object.defineProperty(exports, name, {\n configurable: false,\n enumerable: true,\n get: getter\n });\n }\n };\n __w_pdfjs_require__.n = function (module) {\n var getter = module && module.__esModule ? function getDefault() {\n return module['default'];\n } : function getModuleExports() {\n return module;\n };\n __w_pdfjs_require__.d(getter, 'a', getter);\n return getter;\n };\n __w_pdfjs_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n __w_pdfjs_require__.p = \"\";\n return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n }([function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n };\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n function IsPropertyKey(argument) {\n return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n }\n exports.typeIsObject = function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n };\n exports.createDataProperty = function (o, p, v) {\n assert(exports.typeIsObject(o));\n Object.defineProperty(o, p, {\n value: v,\n writable: true,\n enumerable: true,\n configurable: true\n });\n };\n exports.createArrayFromList = function (elements) {\n return elements.slice();\n };\n exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n };\n exports.CreateIterResultObject = function (value, done) {\n assert(typeof done === 'boolean');\n var obj = {};\n Object.defineProperty(obj, 'value', {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n });\n Object.defineProperty(obj, 'done', {\n value: done,\n enumerable: true,\n writable: true,\n configurable: true\n });\n return obj;\n };\n exports.IsFiniteNonNegativeNumber = function (v) {\n if (Number.isNaN(v)) {\n return false;\n }\n if (v === Infinity) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n };\n function Call(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n exports.InvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n var method = O[P];\n if (method === undefined) {\n return undefined;\n }\n return Call(method, O, args);\n };\n exports.PromiseInvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n try {\n return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n } catch (returnValueE) {\n return Promise.reject(returnValueE);\n }\n };\n exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n assert(Array.isArray(argsF));\n var method = void 0;\n try {\n method = O[P];\n } catch (methodE) {\n return Promise.reject(methodE);\n }\n if (method === undefined) {\n return F.apply(null, argsF);\n }\n try {\n return Promise.resolve(Call(method, O, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n exports.TransferArrayBuffer = function (O) {\n return O.slice();\n };\n exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n highWaterMark = Number(highWaterMark);\n if (Number.isNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n }\n return highWaterMark;\n };\n exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {\n if (size !== undefined && typeof size !== 'function') {\n throw new TypeError('size property of a queuing strategy must be a function');\n }\n highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);\n return {\n size: size,\n highWaterMark: highWaterMark\n };\n };\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n function rethrowAssertionErrorRejection(e) {\n if (e && e.constructor === AssertionError) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n function AssertionError(message) {\n this.name = 'AssertionError';\n this.message = message || '';\n this.stack = new Error().stack;\n }\n AssertionError.prototype = Object.create(Error.prototype);\n AssertionError.prototype.constructor = AssertionError;\n function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n }\n module.exports = {\n rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n AssertionError: AssertionError,\n assert: assert\n };\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = __w_pdfjs_require__(0),\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n typeIsObject = _require.typeIsObject;\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert,\n rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n var _require3 = __w_pdfjs_require__(3),\n DequeueValue = _require3.DequeueValue,\n EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n PeekQueueValue = _require3.PeekQueueValue,\n ResetQueue = _require3.ResetQueue;\n var WritableStream = function () {\n function WritableStream() {\n var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n _ref$highWaterMark = _ref.highWaterMark,\n highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;\n _classCallCheck(this, WritableStream);\n this._state = 'writable';\n this._storedError = undefined;\n this._writer = undefined;\n this._writableStreamController = undefined;\n this._writeRequests = [];\n this._inFlightWriteRequest = undefined;\n this._closeRequest = undefined;\n this._inFlightCloseRequest = undefined;\n this._pendingAbortRequest = undefined;\n this._backpressure = false;\n var type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n this._writableStreamController.__startSteps();\n }\n _createClass(WritableStream, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('abort'));\n }\n if (IsWritableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n }\n }, {\n key: 'getWriter',\n value: function getWriter() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n return IsWritableStreamLocked(this);\n }\n }]);\n return WritableStream;\n }();\n module.exports = {\n AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,\n IsWritableStream: IsWritableStream,\n IsWritableStreamLocked: IsWritableStreamLocked,\n WritableStream: WritableStream,\n WritableStreamAbort: WritableStreamAbort,\n WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,\n WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight\n };\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return true;\n }\n function IsWritableStreamLocked(stream) {\n assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var state = stream._state;\n if (state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n var error = new TypeError('Requested to abort');\n if (stream._pendingAbortRequest !== undefined) {\n return Promise.reject(error);\n }\n assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n reason = undefined;\n }\n var promise = new Promise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n if (wasAlreadyErroring === false) {\n WritableStreamStartErroring(stream, error);\n }\n return promise;\n }\n function WritableStreamAddWriteRequest(stream) {\n assert(IsWritableStreamLocked(stream) === true);\n assert(stream._state === 'writable');\n var promise = new Promise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n assert(state === 'erroring');\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n assert(stream._state === 'writable', 'state must be writable');\n var controller = stream._writableStreamController;\n assert(controller !== undefined, 'controller must not be undefined');\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n assert(stream._state === 'erroring', 'stream._state === erroring');\n assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');\n stream._state = 'errored';\n stream._writableStreamController.__errorSteps();\n var storedError = stream._storedError;\n for (var i = 0; i < stream._writeRequests.length; i++) {\n var writeRequest = stream._writeRequests[i];\n writeRequest._reject(storedError);\n }\n stream._writeRequests = [];\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring === true) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n promise.then(function () {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n if (state === 'erroring') {\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n assert(stream._inFlightCloseRequest === undefined);\n assert(stream._closeRequest !== undefined);\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');\n assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n if (stream._closeRequest !== undefined) {\n assert(stream._inFlightCloseRequest === undefined);\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n writer._closedPromise.catch(function () {});\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n assert(stream._state === 'writable');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure === true) {\n defaultWriterReadyPromiseReset(writer);\n } else {\n assert(backpressure === false);\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n var WritableStreamDefaultWriter = function () {\n function WritableStreamDefaultWriter(stream) {\n _classCallCheck(this, WritableStreamDefaultWriter);\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n }\n if (IsWritableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n var state = stream._state;\n if (state === 'writable') {\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n defaultWriterReadyPromiseInitialize(this);\n } else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n } else {\n assert(state === 'errored', 'state must be errored');\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n this._closedPromise.catch(function () {});\n }\n }\n _createClass(WritableStreamDefaultWriter, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('close'));\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return Promise.reject(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n return Promise.reject(new TypeError('cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n assert(stream._writer !== undefined);\n WritableStreamDefaultWriterRelease(this);\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n }, {\n key: 'ready',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n }\n }]);\n return WritableStreamDefaultWriter;\n }();\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return true;\n }\n function WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));\n }\n assert(state === 'writable' || state === 'erroring');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var promise = new Promise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n if (stream._backpressure === true && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.resolve();\n }\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n assert(state === 'writable' || state === 'erroring');\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n } else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n writer._closedPromise.catch(function () {});\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n } else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n writer._readyPromise.catch(function () {});\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n assert(stream._writer === writer);\n var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var controller = stream._writableStreamController;\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n var state = stream._state;\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return Promise.reject(stream._storedError);\n }\n assert(state === 'writable');\n var promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n var WritableStreamDefaultController = function () {\n function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n _classCallCheck(this, WritableStreamDefaultController);\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n }\n if (stream._writableStreamController !== undefined) {\n throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\n }\n this._controlledWritableStream = stream;\n this._underlyingSink = underlyingSink;\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n this._started = false;\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n var backpressure = WritableStreamDefaultControllerGetBackpressure(this);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n _createClass(WritableStreamDefaultController, [{\n key: 'error',\n value: function error(e) {\n if (IsWritableStreamDefaultController(this) === false) {\n throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n }\n var state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__abortSteps',\n value: function __abortSteps(reason) {\n return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);\n }\n }, {\n key: '__errorSteps',\n value: function __errorSteps() {\n ResetQueue(this);\n }\n }, {\n key: '__startSteps',\n value: function __startSteps() {\n var _this = this;\n var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);\n var stream = this._controlledWritableStream;\n Promise.resolve(startResult).then(function () {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);\n }, function (r) {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDealWithRejection(stream, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n }]);\n return WritableStreamDefaultController;\n }();\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, 'close', 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n var strategySize = controller._strategySize;\n if (strategySize === undefined) {\n return 1;\n }\n try {\n return strategySize(chunk);\n } catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n var writeRecord = {\n chunk: chunk\n };\n try {\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\n } catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n var stream = controller._controlledWritableStream;\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n return false;\n }\n return true;\n }\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n if (controller._started === false) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return;\n }\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n var writeRecord = PeekQueueValue(controller);\n if (writeRecord === 'close') {\n WritableStreamDefaultControllerProcessClose(controller);\n } else {\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);\n sinkClosePromise.then(function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n sinkWritePromise.then(function () {\n WritableStreamFinishInFlightWrite(stream);\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n DequeueValue(controller);\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n function WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n assert(stream._state === 'writable');\n WritableStreamStartErroring(stream, error);\n }\n function streamBrandCheckException(name) {\n return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n }\n function defaultWriterBrandCheckException(name) {\n return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = new Promise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n writer._closedPromise = Promise.resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');\n assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');\n assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResolve(writer) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n writer._readyPromise = Promise.resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseResolve(writer) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _require = __w_pdfjs_require__(0),\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert;\n exports.DequeueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');\n var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n };\n exports.EnqueueValueWithSize = function (container, value, size) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');\n size = Number(size);\n if (!IsFiniteNonNegativeNumber(size)) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({\n value: value,\n size: size\n });\n container._queueTotalSize += size;\n };\n exports.PeekQueueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');\n var pair = container._queue[0];\n return pair.value;\n };\n exports.ResetQueue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n container._queue = [];\n container._queueTotalSize = 0;\n };\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = __w_pdfjs_require__(0),\n ArrayBufferCopy = _require.ArrayBufferCopy,\n CreateIterResultObject = _require.CreateIterResultObject,\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n TransferArrayBuffer = _require.TransferArrayBuffer,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;\n var _require2 = __w_pdfjs_require__(0),\n createArrayFromList = _require2.createArrayFromList,\n createDataProperty = _require2.createDataProperty,\n typeIsObject = _require2.typeIsObject;\n var _require3 = __w_pdfjs_require__(1),\n assert = _require3.assert,\n rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n var _require4 = __w_pdfjs_require__(3),\n DequeueValue = _require4.DequeueValue,\n EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n ResetQueue = _require4.ResetQueue;\n var _require5 = __w_pdfjs_require__(2),\n AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,\n IsWritableStream = _require5.IsWritableStream,\n IsWritableStreamLocked = _require5.IsWritableStreamLocked,\n WritableStreamAbort = _require5.WritableStreamAbort,\n WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;\n var ReadableStream = function () {\n function ReadableStream() {\n var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n highWaterMark = _ref.highWaterMark;\n _classCallCheck(this, ReadableStream);\n this._state = 'readable';\n this._reader = undefined;\n this._storedError = undefined;\n this._disturbed = false;\n this._readableStreamController = undefined;\n var type = underlyingSource.type;\n var typeString = String(type);\n if (typeString === 'bytes') {\n if (highWaterMark === undefined) {\n highWaterMark = 0;\n }\n this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n } else if (type === undefined) {\n if (highWaterMark === undefined) {\n highWaterMark = 1;\n }\n this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n } else {\n throw new RangeError('Invalid type is specified');\n }\n }\n _createClass(ReadableStream, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('cancel'));\n }\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n }\n }, {\n key: 'getReader',\n value: function getReader() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mode = _ref2.mode;\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('getReader');\n }\n if (mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n mode = String(mode);\n if (mode === 'byob') {\n return AcquireReadableStreamBYOBReader(this);\n }\n throw new RangeError('Invalid mode is specified');\n }\n }, {\n key: 'pipeThrough',\n value: function pipeThrough(_ref3, options) {\n var writable = _ref3.writable,\n readable = _ref3.readable;\n var promise = this.pipeTo(writable, options);\n ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n return readable;\n }\n }, {\n key: 'pipeTo',\n value: function pipeTo(dest) {\n var _this = this;\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n preventClose = _ref4.preventClose,\n preventAbort = _ref4.preventAbort,\n preventCancel = _ref4.preventCancel;\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('pipeTo'));\n }\n if (IsWritableStream(dest) === false) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n }\n preventClose = Boolean(preventClose);\n preventAbort = Boolean(preventAbort);\n preventCancel = Boolean(preventCancel);\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(dest) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n var reader = AcquireReadableStreamDefaultReader(this);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n var shuttingDown = false;\n var currentWrite = Promise.resolve();\n return new Promise(function (resolve, reject) {\n function pipeLoop() {\n currentWrite = Promise.resolve();\n if (shuttingDown === true) {\n return Promise.resolve();\n }\n return writer._readyPromise.then(function () {\n return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n var value = _ref5.value,\n done = _ref5.done;\n if (done === true) {\n return;\n }\n currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});\n });\n }).then(pipeLoop);\n }\n isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {\n if (preventAbort === false) {\n shutdownWithAction(function () {\n return WritableStreamAbort(dest, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesClosed(_this, reader._closedPromise, function () {\n if (preventClose === false) {\n shutdownWithAction(function () {\n return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);\n });\n } else {\n shutdown();\n }\n });\n if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, destClosed);\n }, true, destClosed);\n } else {\n shutdown(true, destClosed);\n }\n }\n pipeLoop().catch(function (err) {\n currentWrite = Promise.resolve();\n rethrowAssertionErrorRejection(err);\n });\n function waitForWritesToFinish() {\n var oldCurrentWrite = currentWrite;\n return currentWrite.then(function () {\n return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n });\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n } else {\n promise.catch(action).catch(rethrowAssertionErrorRejection);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n } else {\n promise.then(action).catch(rethrowAssertionErrorRejection);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(doTheRest);\n } else {\n doTheRest();\n }\n function doTheRest() {\n action().then(function () {\n return finalize(originalIsError, originalError);\n }, function (newError) {\n return finalize(true, newError);\n }).catch(rethrowAssertionErrorRejection);\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(function () {\n return finalize(isError, error);\n }).catch(rethrowAssertionErrorRejection);\n } else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (isError) {\n reject(error);\n } else {\n resolve(undefined);\n }\n }\n });\n }\n }, {\n key: 'tee',\n value: function tee() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('tee');\n }\n var branches = ReadableStreamTee(this, false);\n return createArrayFromList(branches);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n return IsReadableStreamLocked(this);\n }\n }]);\n return ReadableStream;\n }();\n module.exports = {\n ReadableStream: ReadableStream,\n IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n };\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamDisturbed(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n return stream._disturbed;\n }\n function IsReadableStreamLocked(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n function ReadableStreamTee(stream, cloneForBranch2) {\n assert(IsReadableStream(stream) === true);\n assert(typeof cloneForBranch2 === 'boolean');\n var reader = AcquireReadableStreamDefaultReader(stream);\n var teeState = {\n closedOrErrored: false,\n canceled1: false,\n canceled2: false,\n reason1: undefined,\n reason2: undefined\n };\n teeState.promise = new Promise(function (resolve) {\n teeState._resolve = resolve;\n });\n var pull = create_ReadableStreamTeePullFunction();\n pull._reader = reader;\n pull._teeState = teeState;\n pull._cloneForBranch2 = cloneForBranch2;\n var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n cancel1._stream = stream;\n cancel1._teeState = teeState;\n var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n cancel2._stream = stream;\n cancel2._teeState = teeState;\n var underlyingSource1 = Object.create(Object.prototype);\n createDataProperty(underlyingSource1, 'pull', pull);\n createDataProperty(underlyingSource1, 'cancel', cancel1);\n var branch1Stream = new ReadableStream(underlyingSource1);\n var underlyingSource2 = Object.create(Object.prototype);\n createDataProperty(underlyingSource2, 'pull', pull);\n createDataProperty(underlyingSource2, 'cancel', cancel2);\n var branch2Stream = new ReadableStream(underlyingSource2);\n pull._branch1 = branch1Stream._readableStreamController;\n pull._branch2 = branch2Stream._readableStreamController;\n reader._closedPromise.catch(function (r) {\n if (teeState.closedOrErrored === true) {\n return;\n }\n ReadableStreamDefaultControllerError(pull._branch1, r);\n ReadableStreamDefaultControllerError(pull._branch2, r);\n teeState.closedOrErrored = true;\n });\n return [branch1Stream, branch2Stream];\n }\n function create_ReadableStreamTeePullFunction() {\n function f() {\n var reader = f._reader,\n branch1 = f._branch1,\n branch2 = f._branch2,\n teeState = f._teeState;\n return ReadableStreamDefaultReaderRead(reader).then(function (result) {\n assert(typeIsObject(result));\n var value = result.value;\n var done = result.done;\n assert(typeof done === 'boolean');\n if (done === true && teeState.closedOrErrored === false) {\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerClose(branch1);\n }\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerClose(branch2);\n }\n teeState.closedOrErrored = true;\n }\n if (teeState.closedOrErrored === true) {\n return;\n }\n var value1 = value;\n var value2 = value;\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerEnqueue(branch1, value1);\n }\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerEnqueue(branch2, value2);\n }\n });\n }\n return f;\n }\n function create_ReadableStreamTeeBranch1CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n teeState.canceled1 = true;\n teeState.reason1 = reason;\n if (teeState.canceled2 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\n }\n function create_ReadableStreamTeeBranch2CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n teeState.canceled2 = true;\n teeState.reason2 = reason;\n if (teeState.canceled1 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\n }\n function ReadableStreamAddReadIntoRequest(stream) {\n assert(IsReadableStreamBYOBReader(stream._reader) === true);\n assert(stream._state === 'readable' || stream._state === 'closed');\n var promise = new Promise(function (resolve, reject) {\n var readIntoRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._reader._readIntoRequests.push(readIntoRequest);\n });\n return promise;\n }\n function ReadableStreamAddReadRequest(stream) {\n assert(IsReadableStreamDefaultReader(stream._reader) === true);\n assert(stream._state === 'readable');\n var promise = new Promise(function (resolve, reject) {\n var readRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._reader._readRequests.push(readRequest);\n });\n return promise;\n }\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n ReadableStreamClose(stream);\n var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n return sourceCancelPromise.then(function () {\n return undefined;\n });\n }\n function ReadableStreamClose(stream) {\n assert(stream._state === 'readable');\n stream._state = 'closed';\n var reader = stream._reader;\n if (reader === undefined) {\n return undefined;\n }\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var _resolve = reader._readRequests[i]._resolve;\n _resolve(CreateIterResultObject(undefined, true));\n }\n reader._readRequests = [];\n }\n defaultReaderClosedPromiseResolve(reader);\n return undefined;\n }\n function ReadableStreamError(stream, e) {\n assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n assert(stream._state === 'readable', 'state must be readable');\n stream._state = 'errored';\n stream._storedError = e;\n var reader = stream._reader;\n if (reader === undefined) {\n return undefined;\n }\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var readRequest = reader._readRequests[i];\n readRequest._reject(e);\n }\n reader._readRequests = [];\n } else {\n assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n var readIntoRequest = reader._readIntoRequests[_i];\n readIntoRequest._reject(e);\n }\n reader._readIntoRequests = [];\n }\n defaultReaderClosedPromiseReject(reader, e);\n reader._closedPromise.catch(function () {});\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readIntoRequests.length > 0);\n var readIntoRequest = reader._readIntoRequests.shift();\n readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readRequests.length > 0);\n var readRequest = reader._readRequests.shift();\n readRequest._resolve(CreateIterResultObject(chunk, done));\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (IsReadableStreamBYOBReader(reader) === false) {\n return false;\n }\n return true;\n }\n function ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (IsReadableStreamDefaultReader(reader) === false) {\n return false;\n }\n return true;\n }\n var ReadableStreamDefaultReader = function () {\n function ReadableStreamDefaultReader(stream) {\n _classCallCheck(this, ReadableStreamDefaultReader);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n }\n if (IsReadableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = [];\n }\n _createClass(ReadableStreamDefaultReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n return ReadableStreamDefaultReaderRead(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsReadableStreamDefaultReader(this) === false) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }]);\n return ReadableStreamDefaultReader;\n }();\n var ReadableStreamBYOBReader = function () {\n function ReadableStreamBYOBReader(stream) {\n _classCallCheck(this, ReadableStreamBYOBReader);\n if (!IsReadableStream(stream)) {\n throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');\n }\n if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n }\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = [];\n }\n _createClass(ReadableStreamBYOBReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n if (!ArrayBuffer.isView(view)) {\n return Promise.reject(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return Promise.reject(new TypeError('view must have non-zero byteLength'));\n }\n return ReadableStreamBYOBReaderRead(this, view);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }]);\n return ReadableStreamBYOBReader;\n }();\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return true;\n }\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n } else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n } else {\n assert(stream._state === 'errored', 'state must be errored');\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n reader._closedPromise.catch(function () {});\n }\n }\n function ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n assert(reader._ownerReadableStream !== undefined);\n assert(reader._ownerReadableStream._reader === reader);\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n } else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n }\n reader._closedPromise.catch(function () {});\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n function ReadableStreamBYOBReaderRead(reader, view) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n }\n function ReadableStreamDefaultReaderRead(reader) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return Promise.resolve(CreateIterResultObject(undefined, true));\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n assert(stream._state === 'readable');\n return stream._readableStreamController.__pullSteps();\n }\n var ReadableStreamDefaultController = function () {\n function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n _classCallCheck(this, ReadableStreamDefaultController);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n }\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\n }\n this._controlledReadableStream = stream;\n this._underlyingSource = underlyingSource;\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n this._started = false;\n this._closeRequested = false;\n this._pullAgain = false;\n this._pulling = false;\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n var controller = this;\n var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n _createClass(ReadableStreamDefaultController, [{\n key: 'close',\n value: function close() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n ReadableStreamDefaultControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n ReadableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n if (this._closeRequested === true && this._queue.length === 0) {\n ReadableStreamClose(stream);\n } else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n return Promise.resolve(CreateIterResultObject(chunk, false));\n }\n var pendingPromise = ReadableStreamAddReadRequest(stream);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n return pendingPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n }]);\n return ReadableStreamDefaultController;\n }();\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n assert(controller._pullAgain === false);\n controller._pulling = true;\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n return ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n return undefined;\n }, function (e) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n }).catch(rethrowAssertionErrorRejection);\n return undefined;\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return false;\n }\n if (controller._closeRequested === true) {\n return false;\n }\n if (controller._started === false) {\n return false;\n }\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n } else {\n var chunkSize = 1;\n if (controller._strategySize !== undefined) {\n var strategySize = controller._strategySize;\n try {\n chunkSize = strategySize(chunk);\n } catch (chunkSizeE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n throw chunkSizeE;\n }\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n return undefined;\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n assert(stream._state === 'readable');\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableStreamDefaultControllerError(controller, e);\n }\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n var ReadableStreamBYOBRequest = function () {\n function ReadableStreamBYOBRequest(controller, view) {\n _classCallCheck(this, ReadableStreamBYOBRequest);\n this._associatedReadableByteStreamController = controller;\n this._view = view;\n }\n _createClass(ReadableStreamBYOBRequest, [{\n key: 'respond',\n value: function respond(bytesWritten) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n }, {\n key: 'respondWithNewView',\n value: function respondWithNewView(view) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }, {\n key: 'view',\n get: function get() {\n return this._view;\n }\n }]);\n return ReadableStreamBYOBRequest;\n }();\n var ReadableByteStreamController = function () {\n function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n _classCallCheck(this, ReadableByteStreamController);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\n }\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');\n }\n this._controlledReadableStream = stream;\n this._underlyingByteSource = underlyingByteSource;\n this._pullAgain = false;\n this._pulling = false;\n ReadableByteStreamControllerClearPendingPullIntos(this);\n this._queue = this._queueTotalSize = undefined;\n ResetQueue(this);\n this._closeRequested = false;\n this._started = false;\n this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n throw new RangeError('autoAllocateChunkSize must be a positive integer');\n }\n }\n this._autoAllocateChunkSize = autoAllocateChunkSize;\n this._pendingPullIntos = [];\n var controller = this;\n var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n if (stream._state === 'readable') {\n ReadableByteStreamControllerError(controller, r);\n }\n }).catch(rethrowAssertionErrorRejection);\n }\n _createClass(ReadableByteStreamController, [{\n key: 'close',\n value: function close() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n ReadableByteStreamControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('error');\n }\n var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n ReadableByteStreamControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n if (this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n firstDescriptor.bytesFilled = 0;\n }\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n assert(ReadableStreamHasDefaultReader(stream) === true);\n if (this._queueTotalSize > 0) {\n assert(ReadableStreamGetNumReadRequests(stream) === 0);\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n var view = void 0;\n try {\n view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n } catch (viewE) {\n return Promise.reject(viewE);\n }\n return Promise.resolve(CreateIterResultObject(view, false));\n }\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n } catch (bufferE) {\n return Promise.reject(bufferE);\n }\n var pullIntoDescriptor = {\n buffer: buffer,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n ctor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n var promise = ReadableStreamAddReadRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n return promise;\n }\n }, {\n key: 'byobRequest',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n this._byobRequest = new ReadableStreamBYOBRequest(this, view);\n }\n return this._byobRequest;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n }]);\n return ReadableByteStreamController;\n }();\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return true;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n assert(controller._pullAgain === false);\n controller._pulling = true;\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableByteStreamControllerError(controller, e);\n }\n }).catch(rethrowAssertionErrorRejection);\n return undefined;\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = [];\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n assert(stream._state !== 'errored', 'state must not be errored');\n var done = false;\n if (stream._state === 'closed') {\n assert(pullIntoDescriptor.bytesFilled === 0);\n done = true;\n }\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n } else {\n assert(pullIntoDescriptor.readerType === 'byob');\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n assert(bytesFilled <= pullIntoDescriptor.byteLength);\n assert(bytesFilled % elementSize === 0);\n return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength\n });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n var queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue[0];\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n } else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n if (ready === false) {\n assert(controller._queueTotalSize === 0, 'queue must be empty');\n assert(pullIntoDescriptor.bytesFilled > 0);\n assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n assert(controller._controlledReadableStream._state === 'readable');\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n ReadableStreamClose(controller._controlledReadableStream);\n } else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === undefined) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = undefined;\n controller._byobRequest = undefined;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n assert(controller._closeRequested === false);\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n var pullIntoDescriptor = controller._pendingPullIntos[0];\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view) {\n var stream = controller._controlledReadableStream;\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n var ctor = view.constructor;\n var pullIntoDescriptor = {\n buffer: view.buffer,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n ctor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n return ReadableStreamAddReadIntoRequest(stream);\n }\n if (stream._state === 'closed') {\n var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n return Promise.resolve(CreateIterResultObject(emptyView, true));\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n return Promise.resolve(CreateIterResultObject(filledView, false));\n }\n if (controller._closeRequested === true) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n return Promise.reject(e);\n }\n }\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n var promise = ReadableStreamAddReadIntoRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n return promise;\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n var stream = controller._controlledReadableStream;\n if (ReadableStreamHasBYOBReader(stream) === true) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos[0];\n var stream = controller._controlledReadableStream;\n if (stream._state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n } else {\n assert(stream._state === 'readable');\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested === true) {\n return false;\n }\n if (controller._started === false) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos[0];\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n if (ReadableStreamHasDefaultReader(stream) === true) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n } else {\n assert(controller._queue.length === 0);\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n } else if (ReadableStreamHasBYOBReader(stream) === true) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n } else {\n assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n }\n function ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n assert(stream._state === 'readable');\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n bytesWritten = Number(bytesWritten);\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n throw new RangeError('bytesWritten must be a finite');\n }\n assert(controller._pendingPullIntos.length > 0);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n assert(controller._pendingPullIntos.length > 0);\n var firstDescriptor = controller._pendingPullIntos[0];\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.byteLength !== view.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n firstDescriptor.buffer = view.buffer;\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n }\n function streamBrandCheckException(name) {\n return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n }\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n function defaultReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n }\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = new Promise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n reader._closedPromise = Promise.reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n reader._closedPromise = Promise.resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n assert(reader._closedPromise_resolve === undefined);\n assert(reader._closedPromise_reject === undefined);\n reader._closedPromise = Promise.reject(reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function byobReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n }\n function defaultControllerBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n }\n function byobRequestBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n }\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n }\n function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n try {\n Promise.prototype.then.call(promise, undefined, function () {});\n } catch (e) {}\n }\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var transformStream = __w_pdfjs_require__(6);\n var readableStream = __w_pdfjs_require__(4);\n var writableStream = __w_pdfjs_require__(2);\n exports.TransformStream = transformStream.TransformStream;\n exports.ReadableStream = readableStream.ReadableStream;\n exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\n exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\n exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\n exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\n exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\n exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\n exports.IsWritableStream = writableStream.IsWritableStream;\n exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\n exports.WritableStream = writableStream.WritableStream;\n exports.WritableStreamAbort = writableStream.WritableStreamAbort;\n exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\n exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\n exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\n exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n }, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n var _require2 = __w_pdfjs_require__(0),\n InvokeOrNoop = _require2.InvokeOrNoop,\n PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n typeIsObject = _require2.typeIsObject;\n var _require3 = __w_pdfjs_require__(4),\n ReadableStream = _require3.ReadableStream,\n ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;\n var _require4 = __w_pdfjs_require__(2),\n WritableStream = _require4.WritableStream,\n WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n function TransformStreamCloseReadable(transformStream) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n TransformStreamCloseReadableInternal(transformStream);\n }\n function TransformStreamEnqueueToReadable(transformStream, chunk) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n var controller = transformStream._readableController;\n try {\n ReadableStreamDefaultControllerEnqueue(controller, chunk);\n } catch (e) {\n transformStream._readableClosed = true;\n TransformStreamErrorIfNeeded(transformStream, e);\n throw transformStream._storedError;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n var maybeBackpressure = desiredSize <= 0;\n if (maybeBackpressure === true && transformStream._backpressure === false) {\n TransformStreamSetBackpressure(transformStream, true);\n }\n }\n function TransformStreamError(transformStream, e) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n TransformStreamErrorInternal(transformStream, e);\n }\n function TransformStreamCloseReadableInternal(transformStream) {\n assert(transformStream._errored === false);\n assert(transformStream._readableClosed === false);\n try {\n ReadableStreamDefaultControllerClose(transformStream._readableController);\n } catch (e) {\n assert(false);\n }\n transformStream._readableClosed = true;\n }\n function TransformStreamErrorIfNeeded(transformStream, e) {\n if (transformStream._errored === false) {\n TransformStreamErrorInternal(transformStream, e);\n }\n }\n function TransformStreamErrorInternal(transformStream, e) {\n assert(transformStream._errored === false);\n transformStream._errored = true;\n transformStream._storedError = e;\n if (transformStream._writableDone === false) {\n WritableStreamDefaultControllerError(transformStream._writableController, e);\n }\n if (transformStream._readableClosed === false) {\n ReadableStreamDefaultControllerError(transformStream._readableController, e);\n }\n }\n function TransformStreamReadableReadyPromise(transformStream) {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n if (transformStream._backpressure === false) {\n return Promise.resolve();\n }\n assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n }\n function TransformStreamSetBackpressure(transformStream, backpressure) {\n assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n if (transformStream._backpressureChangePromise !== undefined) {\n transformStream._backpressureChangePromise_resolve(backpressure);\n }\n transformStream._backpressureChangePromise = new Promise(function (resolve) {\n transformStream._backpressureChangePromise_resolve = resolve;\n });\n transformStream._backpressureChangePromise.then(function (resolution) {\n assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n });\n transformStream._backpressure = backpressure;\n }\n function TransformStreamDefaultTransform(chunk, transformStreamController) {\n var transformStream = transformStreamController._controlledTransformStream;\n TransformStreamEnqueueToReadable(transformStream, chunk);\n return Promise.resolve();\n }\n function TransformStreamTransform(transformStream, chunk) {\n assert(transformStream._errored === false);\n assert(transformStream._transforming === false);\n assert(transformStream._backpressure === false);\n transformStream._transforming = true;\n var transformer = transformStream._transformer;\n var controller = transformStream._transformStreamController;\n var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n return transformPromise.then(function () {\n transformStream._transforming = false;\n return TransformStreamReadableReadyPromise(transformStream);\n }, function (e) {\n TransformStreamErrorIfNeeded(transformStream, e);\n return Promise.reject(e);\n });\n }\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return true;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return true;\n }\n var TransformStreamSink = function () {\n function TransformStreamSink(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSink);\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n _createClass(TransformStreamSink, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n transformStream._writableController = c;\n return this._startPromise.then(function () {\n return TransformStreamReadableReadyPromise(transformStream);\n });\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n var transformStream = this._transformStream;\n return TransformStreamTransform(transformStream, chunk);\n }\n }, {\n key: 'abort',\n value: function abort() {\n var transformStream = this._transformStream;\n transformStream._writableDone = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));\n }\n }, {\n key: 'close',\n value: function close() {\n var transformStream = this._transformStream;\n assert(transformStream._transforming === false);\n transformStream._writableDone = true;\n var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n return flushPromise.then(function () {\n if (transformStream._errored === true) {\n return Promise.reject(transformStream._storedError);\n }\n if (transformStream._readableClosed === false) {\n TransformStreamCloseReadableInternal(transformStream);\n }\n return Promise.resolve();\n }).catch(function (r) {\n TransformStreamErrorIfNeeded(transformStream, r);\n return Promise.reject(transformStream._storedError);\n });\n }\n }]);\n return TransformStreamSink;\n }();\n var TransformStreamSource = function () {\n function TransformStreamSource(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSource);\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n _createClass(TransformStreamSource, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n transformStream._readableController = c;\n return this._startPromise.then(function () {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n if (transformStream._backpressure === true) {\n return Promise.resolve();\n }\n assert(transformStream._backpressure === false, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n });\n }\n }, {\n key: 'pull',\n value: function pull() {\n var transformStream = this._transformStream;\n assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n TransformStreamSetBackpressure(transformStream, false);\n return transformStream._backpressureChangePromise;\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n var transformStream = this._transformStream;\n transformStream._readableClosed = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));\n }\n }]);\n return TransformStreamSource;\n }();\n var TransformStreamDefaultController = function () {\n function TransformStreamDefaultController(transformStream) {\n _classCallCheck(this, TransformStreamDefaultController);\n if (IsTransformStream(transformStream) === false) {\n throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n }\n if (transformStream._transformStreamController !== undefined) {\n throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n }\n this._controlledTransformStream = transformStream;\n }\n _createClass(TransformStreamDefaultController, [{\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n TransformStreamCloseReadable(this._controlledTransformStream);\n }\n }, {\n key: 'error',\n value: function error(reason) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamError(this._controlledTransformStream, reason);\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n var transformStream = this._controlledTransformStream;\n var readableController = transformStream._readableController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n }]);\n return TransformStreamDefaultController;\n }();\n var TransformStream = function () {\n function TransformStream() {\n var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, TransformStream);\n this._transformer = transformer;\n var readableStrategy = transformer.readableStrategy,\n writableStrategy = transformer.writableStrategy;\n this._transforming = false;\n this._errored = false;\n this._storedError = undefined;\n this._writableController = undefined;\n this._readableController = undefined;\n this._transformStreamController = undefined;\n this._writableDone = false;\n this._readableClosed = false;\n this._backpressure = undefined;\n this._backpressureChangePromise = undefined;\n this._backpressureChangePromise_resolve = undefined;\n this._transformStreamController = new TransformStreamDefaultController(this);\n var startPromise_resolve = void 0;\n var startPromise = new Promise(function (resolve) {\n startPromise_resolve = resolve;\n });\n var source = new TransformStreamSource(this, startPromise);\n this._readable = new ReadableStream(source, readableStrategy);\n var sink = new TransformStreamSink(this, startPromise);\n this._writable = new WritableStream(sink, writableStrategy);\n assert(this._writableController !== undefined);\n assert(this._readableController !== undefined);\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n TransformStreamSetBackpressure(this, desiredSize <= 0);\n var transformStream = this;\n var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n startPromise_resolve(startResult);\n startPromise.catch(function (e) {\n if (transformStream._errored === false) {\n transformStream._errored = true;\n transformStream._storedError = e;\n }\n });\n }\n _createClass(TransformStream, [{\n key: 'readable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n }\n }, {\n key: 'writable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n }\n }]);\n return TransformStream;\n }();\n module.exports = {\n TransformStream: TransformStream\n };\n function defaultControllerBrandCheckException(name) {\n return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n }\n function streamBrandCheckException(name) {\n return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n }\n }, function (module, exports, __w_pdfjs_require__) {\n module.exports = __w_pdfjs_require__(5);\n }]));\n\n /***/\n }, /* 63 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(86);\n module.exports = __w_pdfjs_require__(18).Uint8ClampedArray;\n\n /***/\n }, /* 64 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var UNSCOPABLES = __w_pdfjs_require__(2)('unscopables');\n var ArrayProto = Array.prototype;\n if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(6)(ArrayProto, UNSCOPABLES, {});\n module.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n };\n\n /***/\n }, /* 65 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var toObject = __w_pdfjs_require__(13);\n var toAbsoluteIndex = __w_pdfjs_require__(21);\n var toLength = __w_pdfjs_require__(8);\n module.exports = [].copyWithin || function copyWithin(target, start) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];else delete O[to];\n to += inc;\n from += inc;\n }\n return O;\n };\n\n /***/\n }, /* 66 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var ctx = __w_pdfjs_require__(25);\n var IObject = __w_pdfjs_require__(43);\n var toObject = __w_pdfjs_require__(13);\n var toLength = __w_pdfjs_require__(8);\n var asc = __w_pdfjs_require__(68);\n module.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (; length > index; index++) {\n if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {\n case 3:\n return true;\n case 5:\n return val;\n case 6:\n return index;\n case 2:\n result.push(val);\n } else if (IS_EVERY) return false;\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n };\n\n /***/\n }, /* 67 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isObject = __w_pdfjs_require__(10);\n var isArray = __w_pdfjs_require__(71);\n var SPECIES = __w_pdfjs_require__(2)('species');\n module.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n return C === undefined ? Array : C;\n };\n\n /***/\n }, /* 68 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var speciesConstructor = __w_pdfjs_require__(67);\n module.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n };\n\n /***/\n }, /* 69 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var document = __w_pdfjs_require__(4).document;\n module.exports = document && document.documentElement;\n\n /***/\n }, /* 70 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var Iterators = __w_pdfjs_require__(11);\n var ITERATOR = __w_pdfjs_require__(2)('iterator');\n var ArrayProto = Array.prototype;\n module.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n };\n\n /***/\n }, /* 71 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var cof = __w_pdfjs_require__(24);\n module.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n };\n\n /***/\n }, /* 72 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var create = __w_pdfjs_require__(44);\n var descriptor = __w_pdfjs_require__(20);\n var setToStringTag = __w_pdfjs_require__(29);\n var IteratorPrototype = {};\n __w_pdfjs_require__(6)(IteratorPrototype, __w_pdfjs_require__(2)('iterator'), function () {\n return this;\n });\n module.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, {\n next: descriptor(1, next)\n });\n setToStringTag(Constructor, NAME + ' Iterator');\n };\n\n /***/\n }, /* 73 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var LIBRARY = __w_pdfjs_require__(27);\n var $export = __w_pdfjs_require__(41);\n var redefine = __w_pdfjs_require__(28);\n var hide = __w_pdfjs_require__(6);\n var has = __w_pdfjs_require__(7);\n var Iterators = __w_pdfjs_require__(11);\n var $iterCreate = __w_pdfjs_require__(72);\n var setToStringTag = __w_pdfjs_require__(29);\n var getPrototypeOf = __w_pdfjs_require__(46);\n var ITERATOR = __w_pdfjs_require__(2)('iterator');\n var BUGGY = !([].keys && 'next' in [].keys());\n var FF_ITERATOR = '@@iterator';\n var KEYS = 'keys';\n var VALUES = 'values';\n var returnThis = function returnThis() {\n return this;\n };\n module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function getMethod(kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS:\n return function keys() {\n return new Constructor(this, kind);\n };\n case VALUES:\n return function values() {\n return new Constructor(this, kind);\n };\n }\n return function entries() {\n return new Constructor(this, kind);\n };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n setToStringTag(IteratorPrototype, TAG, true);\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() {\n return $native.call(this);\n };\n }\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n };\n\n /***/\n }, /* 74 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var ITERATOR = __w_pdfjs_require__(2)('iterator');\n var SAFE_CLOSING = false;\n try {\n var riter = [7][ITERATOR]();\n riter['return'] = function () {\n SAFE_CLOSING = true;\n };\n Array.from(riter, function () {\n throw 2;\n });\n } catch (e) {}\n module.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () {\n return {\n done: safe = true\n };\n };\n arr[ITERATOR] = function () {\n return iter;\n };\n exec(arr);\n } catch (e) {}\n return safe;\n };\n\n /***/\n }, /* 75 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = function (done, value) {\n return {\n value: value,\n done: !!done\n };\n };\n\n /***/\n }, /* 76 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var dP = __w_pdfjs_require__(9);\n var anObject = __w_pdfjs_require__(17);\n var getKeys = __w_pdfjs_require__(78);\n module.exports = __w_pdfjs_require__(5) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) {\n dP.f(O, P = keys[i++], Properties[P]);\n }\n return O;\n };\n\n /***/\n }, /* 77 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var pIE = __w_pdfjs_require__(79);\n var createDesc = __w_pdfjs_require__(20);\n var toIObject = __w_pdfjs_require__(22);\n var toPrimitive = __w_pdfjs_require__(31);\n var has = __w_pdfjs_require__(7);\n var IE8_DOM_DEFINE = __w_pdfjs_require__(42);\n var gOPD = Object.getOwnPropertyDescriptor;\n exports.f = __w_pdfjs_require__(5) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) {}\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n };\n\n /***/\n }, /* 78 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var $keys = __w_pdfjs_require__(47);\n var enumBugKeys = __w_pdfjs_require__(26);\n module.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n };\n\n /***/\n }, /* 79 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n exports.f = {}.propertyIsEnumerable;\n\n /***/\n }, /* 80 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(4);\n var dP = __w_pdfjs_require__(9);\n var DESCRIPTORS = __w_pdfjs_require__(5);\n var SPECIES = __w_pdfjs_require__(2)('species');\n module.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function get() {\n return this;\n }\n });\n };\n\n /***/\n }, /* 81 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var anObject = __w_pdfjs_require__(17);\n var aFunction = __w_pdfjs_require__(34);\n var SPECIES = __w_pdfjs_require__(2)('species');\n module.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n };\n\n /***/\n }, /* 82 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n if (__w_pdfjs_require__(5)) {\n var LIBRARY = __w_pdfjs_require__(27);\n var global = __w_pdfjs_require__(4);\n var fails = __w_pdfjs_require__(19);\n var $export = __w_pdfjs_require__(41);\n var $typed = __w_pdfjs_require__(51);\n var $buffer = __w_pdfjs_require__(83);\n var ctx = __w_pdfjs_require__(25);\n var anInstance = __w_pdfjs_require__(35);\n var propertyDesc = __w_pdfjs_require__(20);\n var hide = __w_pdfjs_require__(6);\n var redefineAll = __w_pdfjs_require__(48);\n var toInteger = __w_pdfjs_require__(12);\n var toLength = __w_pdfjs_require__(8);\n var toIndex = __w_pdfjs_require__(50);\n var toAbsoluteIndex = __w_pdfjs_require__(21);\n var toPrimitive = __w_pdfjs_require__(31);\n var has = __w_pdfjs_require__(7);\n var classof = __w_pdfjs_require__(38);\n var isObject = __w_pdfjs_require__(10);\n var toObject = __w_pdfjs_require__(13);\n var isArrayIter = __w_pdfjs_require__(70);\n var create = __w_pdfjs_require__(44);\n var getPrototypeOf = __w_pdfjs_require__(46);\n var gOPN = __w_pdfjs_require__(45).f;\n var getIterFn = __w_pdfjs_require__(84);\n var uid = __w_pdfjs_require__(14);\n var wks = __w_pdfjs_require__(2);\n var createArrayMethod = __w_pdfjs_require__(66);\n var createArrayIncludes = __w_pdfjs_require__(37);\n var speciesConstructor = __w_pdfjs_require__(81);\n var ArrayIterators = __w_pdfjs_require__(85);\n var Iterators = __w_pdfjs_require__(11);\n var $iterDetect = __w_pdfjs_require__(74);\n var setSpecies = __w_pdfjs_require__(80);\n var arrayFill = __w_pdfjs_require__(36);\n var arrayCopyWithin = __w_pdfjs_require__(65);\n var $DP = __w_pdfjs_require__(9);\n var $GOPD = __w_pdfjs_require__(77);\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n var LITTLE_ENDIAN = fails(function () {\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n var toOffset = function toOffset(it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n var validate = function validate(it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n var allocate = function allocate(C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n }\n return new C(length);\n };\n var speciesFromList = function speciesFromList(O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n var fromList = function fromList(C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) {\n result[index] = list[index++];\n }\n return result;\n };\n var addGetter = function addGetter(it, key, internal) {\n dP(it, key, {\n get: function get() {\n return this._d[internal];\n }\n });\n };\n var $from = function from(source) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n }\n O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n var $of = function of() {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) {\n result[index] = arguments[index++];\n }\n return result;\n };\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () {\n arrayToLocaleString.call(new Uint8Array(1));\n });\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n var proto = {\n copyWithin: function copyWithin(target, start) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value) {\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) {\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement) {\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn) {\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn) {\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n }\n return that;\n },\n some: function some(callbackfn) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(O.buffer, O.byteOffset + $begin * O.BYTES_PER_ELEMENT, toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin));\n }\n };\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n var $set = function set(arrayLike) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) {\n this[offset + index] = src[index++];\n }\n };\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n var isTAIndex = function isTAIndex(target, key) {\n return isObject(target) && target[TYPED_ARRAY] && (typeof key === 'undefined' ? 'undefined' : _typeof(key)) != 'symbol' && key in target && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true)) ? propertyDesc(2, target[key]) : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true)) && isObject(desc) && has(desc, 'value') && !has(desc, 'get') && !has(desc, 'set') && !desc.configurable && (!has(desc, 'writable') || desc.writable) && (!has(desc, 'enumerable') || desc.enumerable)) {\n target[key] = desc.value;\n return target;\n }\n return dP(target, key, desc);\n };\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n if (fails(function () {\n arrayToString.call({});\n })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function constructor() {},\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function get() {\n return this[TYPED_ARRAY];\n }\n });\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function getter(that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function setter(that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function addElement(that, index) {\n dP(that, index, {\n get: function get() {\n return getter(this, index);\n },\n set: function set(value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) {\n addElement(that, index++);\n }\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1);\n }) || !$iterDetect(function (iter) {\n new TypedArray();\n new TypedArray(null);\n new TypedArray(1.5);\n new TypedArray(iter);\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined ? new Base(data, toOffset($offset, BYTES), $length) : $offset !== undefined ? new Base(data, toOffset($offset, BYTES)) : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function get() {\n return NAME;\n }\n });\n }\n O[NAME] = TypedArray;\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n $export($export.S + $export.F * fails(function () {\n Base.of.call(TypedArray, 1);\n }), NAME, {\n from: $from,\n of: $of\n });\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n $export($export.P, NAME, proto);\n setSpecies(NAME);\n $export($export.P + $export.F * FORCED_SET, NAME, {\n set: $set\n });\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, {\n slice: $slice\n });\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, {\n toLocaleString: $toLocaleString\n });\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n } else module.exports = function () {};\n\n /***/\n }, /* 83 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var global = __w_pdfjs_require__(4);\n var DESCRIPTORS = __w_pdfjs_require__(5);\n var LIBRARY = __w_pdfjs_require__(27);\n var $typed = __w_pdfjs_require__(51);\n var hide = __w_pdfjs_require__(6);\n var redefineAll = __w_pdfjs_require__(48);\n var fails = __w_pdfjs_require__(19);\n var anInstance = __w_pdfjs_require__(35);\n var toInteger = __w_pdfjs_require__(12);\n var toLength = __w_pdfjs_require__(8);\n var toIndex = __w_pdfjs_require__(50);\n var gOPN = __w_pdfjs_require__(45).f;\n var dP = __w_pdfjs_require__(9).f;\n var arrayFill = __w_pdfjs_require__(36);\n var setToStringTag = __w_pdfjs_require__(29);\n var ARRAY_BUFFER = 'ArrayBuffer';\n var DATA_VIEW = 'DataView';\n var PROTOTYPE = 'prototype';\n var WRONG_LENGTH = 'Wrong length!';\n var WRONG_INDEX = 'Wrong index!';\n var $ArrayBuffer = global[ARRAY_BUFFER];\n var $DataView = global[DATA_VIEW];\n var Math = global.Math;\n var RangeError = global.RangeError;\n var Infinity = global.Infinity;\n var BaseBuffer = $ArrayBuffer;\n var abs = Math.abs;\n var pow = Math.pow;\n var floor = Math.floor;\n var log = Math.log;\n var LN2 = Math.LN2;\n var BUFFER = 'buffer';\n var BYTE_LENGTH = 'byteLength';\n var BYTE_OFFSET = 'byteOffset';\n var $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\n var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\n var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n function packIEEE754(value, mLen, nBytes) {\n var buffer = Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n if (value != value || value === Infinity) {\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8) {}\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8) {}\n buffer[--i] |= s * 128;\n return buffer;\n }\n function unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8) {}\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8) {}\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * pow(2, e - mLen);\n }\n function unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n }\n function packI8(it) {\n return [it & 0xff];\n }\n function packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n }\n function packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n }\n function packF64(it) {\n return packIEEE754(it, 52, 8);\n }\n function packF32(it) {\n return packIEEE754(it, 23, 4);\n }\n function addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, {\n get: function get() {\n return this[internal];\n }\n });\n }\n function get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n }\n function set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) {\n store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n }\n }\n if (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n } else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1);\n }) || fails(function () {\n new $ArrayBuffer();\n new $ArrayBuffer(1.5);\n new $ArrayBuffer(NaN);\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n }\n setToStringTag($ArrayBuffer, ARRAY_BUFFER);\n setToStringTag($DataView, DATA_VIEW);\n hide($DataView[PROTOTYPE], $typed.VIEW, true);\n exports[ARRAY_BUFFER] = $ArrayBuffer;\n exports[DATA_VIEW] = $DataView;\n\n /***/\n }, /* 84 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var classof = __w_pdfjs_require__(38);\n var ITERATOR = __w_pdfjs_require__(2)('iterator');\n var Iterators = __w_pdfjs_require__(11);\n module.exports = __w_pdfjs_require__(18).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n };\n\n /***/\n }, /* 85 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var addToUnscopables = __w_pdfjs_require__(64);\n var step = __w_pdfjs_require__(75);\n var Iterators = __w_pdfjs_require__(11);\n var toIObject = __w_pdfjs_require__(22);\n module.exports = __w_pdfjs_require__(73)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated);\n this._i = 0;\n this._k = kind;\n }, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n }, 'values');\n Iterators.Arguments = Iterators.Array;\n addToUnscopables('keys');\n addToUnscopables('values');\n addToUnscopables('entries');\n\n /***/\n }, /* 86 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n __w_pdfjs_require__(82)('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n }, true);\n\n /***/\n }, /* 87 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = undefined;\n var _util = __w_pdfjs_require__(0);\n var _obj = __w_pdfjs_require__(58);\n var _primitives = __w_pdfjs_require__(1);\n var _colorspace = __w_pdfjs_require__(15);\n var _evaluator = __w_pdfjs_require__(56);\n var _stream = __w_pdfjs_require__(3);\n function AnnotationFactory() {}\n AnnotationFactory.prototype = {\n create: function AnnotationFactory_create(xref, ref, pdfManager, idFactory) {\n var dict = xref.fetchIfRef(ref);\n if (!(0, _primitives.isDict)(dict)) {\n return;\n }\n var id = (0, _primitives.isRef)(ref) ? ref.toString() : 'annot_' + idFactory.createObjId();\n var subtype = dict.get('Subtype');\n subtype = (0, _primitives.isName)(subtype) ? subtype.name : null;\n var parameters = {\n xref: xref,\n dict: dict,\n ref: (0, _primitives.isRef)(ref) ? ref : null,\n subtype: subtype,\n id: id,\n pdfManager: pdfManager\n };\n switch (subtype) {\n case 'Link':\n return new LinkAnnotation(parameters);\n case 'Text':\n return new TextAnnotation(parameters);\n case 'Widget':\n var fieldType = _util.Util.getInheritableProperty(dict, 'FT');\n fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n switch (fieldType) {\n case 'Tx':\n return new TextWidgetAnnotation(parameters);\n case 'Btn':\n return new ButtonWidgetAnnotation(parameters);\n case 'Ch':\n return new ChoiceWidgetAnnotation(parameters);\n }\n (0, _util.warn)('Unimplemented widget field type \"' + fieldType + '\", ' + 'falling back to base field type.');\n return new WidgetAnnotation(parameters);\n case 'Popup':\n return new PopupAnnotation(parameters);\n case 'Line':\n return new LineAnnotation(parameters);\n case 'Highlight':\n return new HighlightAnnotation(parameters);\n case 'Underline':\n return new UnderlineAnnotation(parameters);\n case 'Squiggly':\n return new SquigglyAnnotation(parameters);\n case 'StrikeOut':\n return new StrikeOutAnnotation(parameters);\n case 'FileAttachment':\n return new FileAttachmentAnnotation(parameters);\n default:\n if (!subtype) {\n (0, _util.warn)('Annotation is missing the required /Subtype.');\n } else {\n (0, _util.warn)('Unimplemented annotation type \"' + subtype + '\", ' + 'falling back to base annotation.');\n }\n return new Annotation(parameters);\n }\n }\n };\n var Annotation = function AnnotationClosure() {\n function getTransformMatrix(rect, bbox, matrix) {\n var bounds = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);\n var minX = bounds[0];\n var minY = bounds[1];\n var maxX = bounds[2];\n var maxY = bounds[3];\n if (minX === maxX || minY === maxY) {\n return [1, 0, 0, 1, rect[0], rect[1]];\n }\n var xRatio = (rect[2] - rect[0]) / (maxX - minX);\n var yRatio = (rect[3] - rect[1]) / (maxY - minY);\n return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n }\n function Annotation(params) {\n var dict = params.dict;\n this.setFlags(dict.get('F'));\n this.setRectangle(dict.getArray('Rect'));\n this.setColor(dict.getArray('C'));\n this.setBorderStyle(dict);\n this.setAppearance(dict);\n this.data = {};\n this.data.id = params.id;\n this.data.subtype = params.subtype;\n this.data.annotationFlags = this.flags;\n this.data.rect = this.rectangle;\n this.data.color = this.color;\n this.data.borderStyle = this.borderStyle;\n this.data.hasAppearance = !!this.appearance;\n }\n Annotation.prototype = {\n _hasFlag: function Annotation_hasFlag(flags, flag) {\n return !!(flags & flag);\n },\n _isViewable: function Annotation_isViewable(flags) {\n return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW);\n },\n _isPrintable: function AnnotationFlag_isPrintable(flags) {\n return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN);\n },\n get viewable() {\n if (this.flags === 0) {\n return true;\n }\n return this._isViewable(this.flags);\n },\n get printable() {\n if (this.flags === 0) {\n return false;\n }\n return this._isPrintable(this.flags);\n },\n setFlags: function Annotation_setFlags(flags) {\n this.flags = (0, _util.isInt)(flags) && flags > 0 ? flags : 0;\n },\n hasFlag: function Annotation_hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n },\n setRectangle: function Annotation_setRectangle(rectangle) {\n if ((0, _util.isArray)(rectangle) && rectangle.length === 4) {\n this.rectangle = _util.Util.normalizeRect(rectangle);\n } else {\n this.rectangle = [0, 0, 0, 0];\n }\n },\n setColor: function Annotation_setColor(color) {\n var rgbColor = new Uint8Array(3);\n if (!(0, _util.isArray)(color)) {\n this.color = rgbColor;\n return;\n }\n switch (color.length) {\n case 0:\n this.color = null;\n break;\n case 1:\n _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n this.color = rgbColor;\n break;\n case 3:\n _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n this.color = rgbColor;\n break;\n case 4:\n _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n this.color = rgbColor;\n break;\n default:\n this.color = rgbColor;\n break;\n }\n },\n setBorderStyle: function Annotation_setBorderStyle(borderStyle) {\n this.borderStyle = new AnnotationBorderStyle();\n if (!(0, _primitives.isDict)(borderStyle)) {\n return;\n }\n if (borderStyle.has('BS')) {\n var dict = borderStyle.get('BS');\n var dictType = dict.get('Type');\n if (!dictType || (0, _primitives.isName)(dictType, 'Border')) {\n this.borderStyle.setWidth(dict.get('W'));\n this.borderStyle.setStyle(dict.get('S'));\n this.borderStyle.setDashArray(dict.getArray('D'));\n }\n } else if (borderStyle.has('Border')) {\n var array = borderStyle.getArray('Border');\n if ((0, _util.isArray)(array) && array.length >= 3) {\n this.borderStyle.setHorizontalCornerRadius(array[0]);\n this.borderStyle.setVerticalCornerRadius(array[1]);\n this.borderStyle.setWidth(array[2]);\n if (array.length === 4) {\n this.borderStyle.setDashArray(array[3]);\n }\n }\n } else {\n this.borderStyle.setWidth(0);\n }\n },\n setAppearance: function Annotation_setAppearance(dict) {\n this.appearance = null;\n var appearanceStates = dict.get('AP');\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n var normalAppearanceState = appearanceStates.get('N');\n if ((0, _primitives.isStream)(normalAppearanceState)) {\n this.appearance = normalAppearanceState;\n return;\n }\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n var as = dict.get('AS');\n if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) {\n return;\n }\n this.appearance = normalAppearanceState.get(as.name);\n },\n _preparePopup: function Annotation_preparePopup(dict) {\n if (!dict.has('C')) {\n this.data.color = null;\n }\n this.data.hasPopup = dict.has('Popup');\n this.data.title = (0, _util.stringToPDFString)(dict.get('T') || '');\n this.data.contents = (0, _util.stringToPDFString)(dict.get('Contents') || '');\n },\n loadResources: function Annotation_loadResources(keys) {\n return this.appearance.dict.getAsync('Resources').then(function (resources) {\n if (!resources) {\n return;\n }\n var objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n },\n getOperatorList: function Annotation_getOperatorList(evaluator, task, renderForms) {\n var _this = this;\n if (!this.appearance) {\n return Promise.resolve(new _evaluator.OperatorList());\n }\n var data = this.data;\n var appearanceDict = this.appearance.dict;\n var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);\n var bbox = appearanceDict.getArray('BBox') || [0, 0, 1, 1];\n var matrix = appearanceDict.getArray('Matrix') || [1, 0, 0, 1, 0, 0];\n var transform = getTransformMatrix(data.rect, bbox, matrix);\n return resourcesPromise.then(function (resources) {\n var opList = new _evaluator.OperatorList();\n opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]);\n return evaluator.getOperatorList({\n stream: _this.appearance,\n task: task,\n resources: resources,\n operatorList: opList\n }).then(function () {\n opList.addOp(_util.OPS.endAnnotation, []);\n _this.appearance.reset();\n return opList;\n });\n });\n }\n };\n return Annotation;\n }();\n var AnnotationBorderStyle = function AnnotationBorderStyleClosure() {\n function AnnotationBorderStyle() {\n this.width = 1;\n this.style = _util.AnnotationBorderStyleType.SOLID;\n this.dashArray = [3];\n this.horizontalCornerRadius = 0;\n this.verticalCornerRadius = 0;\n }\n AnnotationBorderStyle.prototype = {\n setWidth: function AnnotationBorderStyle_setWidth(width) {\n if (width === (width | 0)) {\n this.width = width;\n }\n },\n setStyle: function AnnotationBorderStyle_setStyle(style) {\n if (!style) {\n return;\n }\n switch (style.name) {\n case 'S':\n this.style = _util.AnnotationBorderStyleType.SOLID;\n break;\n case 'D':\n this.style = _util.AnnotationBorderStyleType.DASHED;\n break;\n case 'B':\n this.style = _util.AnnotationBorderStyleType.BEVELED;\n break;\n case 'I':\n this.style = _util.AnnotationBorderStyleType.INSET;\n break;\n case 'U':\n this.style = _util.AnnotationBorderStyleType.UNDERLINE;\n break;\n default:\n break;\n }\n },\n setDashArray: function AnnotationBorderStyle_setDashArray(dashArray) {\n if ((0, _util.isArray)(dashArray) && dashArray.length > 0) {\n var isValid = true;\n var allZeros = true;\n for (var i = 0, len = dashArray.length; i < len; i++) {\n var element = dashArray[i];\n var validNumber = +element >= 0;\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n } else {\n this.width = 0;\n }\n } else if (dashArray) {\n this.width = 0;\n }\n },\n setHorizontalCornerRadius: function AnnotationBorderStyle_setHorizontalCornerRadius(radius) {\n if (radius === (radius | 0)) {\n this.horizontalCornerRadius = radius;\n }\n },\n setVerticalCornerRadius: function AnnotationBorderStyle_setVerticalCornerRadius(radius) {\n if (radius === (radius | 0)) {\n this.verticalCornerRadius = radius;\n }\n }\n };\n return AnnotationBorderStyle;\n }();\n var WidgetAnnotation = function WidgetAnnotationClosure() {\n function WidgetAnnotation(params) {\n Annotation.call(this, params);\n var dict = params.dict;\n var data = this.data;\n data.annotationType = _util.AnnotationType.WIDGET;\n data.fieldName = this._constructFieldName(dict);\n data.fieldValue = _util.Util.getInheritableProperty(dict, 'V', true);\n data.alternativeText = (0, _util.stringToPDFString)(dict.get('TU') || '');\n data.defaultAppearance = _util.Util.getInheritableProperty(dict, 'DA') || '';\n var fieldType = _util.Util.getInheritableProperty(dict, 'FT');\n data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n this.fieldResources = _util.Util.getInheritableProperty(dict, 'DR') || _primitives.Dict.empty;\n data.fieldFlags = _util.Util.getInheritableProperty(dict, 'Ff');\n if (!(0, _util.isInt)(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n data.readOnly = this.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);\n if (data.fieldType === 'Sig') {\n this.setFlags(_util.AnnotationFlag.HIDDEN);\n }\n }\n _util.Util.inherit(WidgetAnnotation, Annotation, {\n _constructFieldName: function WidgetAnnotation_constructFieldName(dict) {\n if (!dict.has('T') && !dict.has('Parent')) {\n (0, _util.warn)('Unknown field name, falling back to empty field name.');\n return '';\n }\n if (!dict.has('Parent')) {\n return (0, _util.stringToPDFString)(dict.get('T'));\n }\n var fieldName = [];\n if (dict.has('T')) {\n fieldName.unshift((0, _util.stringToPDFString)(dict.get('T')));\n }\n var loopDict = dict;\n while (loopDict.has('Parent')) {\n loopDict = loopDict.get('Parent');\n if (!(0, _primitives.isDict)(loopDict)) {\n break;\n }\n if (loopDict.has('T')) {\n fieldName.unshift((0, _util.stringToPDFString)(loopDict.get('T')));\n }\n }\n return fieldName.join('.');\n },\n hasFieldFlag: function WidgetAnnotation_hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n });\n return WidgetAnnotation;\n }();\n var TextWidgetAnnotation = function TextWidgetAnnotationClosure() {\n function TextWidgetAnnotation(params) {\n WidgetAnnotation.call(this, params);\n this.data.fieldValue = (0, _util.stringToPDFString)(this.data.fieldValue || '');\n var alignment = _util.Util.getInheritableProperty(params.dict, 'Q');\n if (!(0, _util.isInt)(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n this.data.textAlignment = alignment;\n var maximumLength = _util.Util.getInheritableProperty(params.dict, 'MaxLen');\n if (!(0, _util.isInt)(maximumLength) || maximumLength < 0) {\n maximumLength = null;\n }\n this.data.maxLen = maximumLength;\n this.data.multiLine = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);\n this.data.comb = this.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !this.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== null;\n }\n _util.Util.inherit(TextWidgetAnnotation, WidgetAnnotation, {\n getOperatorList: function TextWidgetAnnotation_getOperatorList(evaluator, task, renderForms) {\n var operatorList = new _evaluator.OperatorList();\n if (renderForms) {\n return Promise.resolve(operatorList);\n }\n if (this.appearance) {\n return Annotation.prototype.getOperatorList.call(this, evaluator, task, renderForms);\n }\n if (!this.data.defaultAppearance) {\n return Promise.resolve(operatorList);\n }\n var stream = new _stream.Stream((0, _util.stringToBytes)(this.data.defaultAppearance));\n return evaluator.getOperatorList({\n stream: stream,\n task: task,\n resources: this.fieldResources,\n operatorList: operatorList\n }).then(function () {\n return operatorList;\n });\n }\n });\n return TextWidgetAnnotation;\n }();\n var ButtonWidgetAnnotation = function ButtonWidgetAnnotationClosure() {\n function ButtonWidgetAnnotation(params) {\n WidgetAnnotation.call(this, params);\n this.data.checkBox = !this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n if (this.data.checkBox) {\n if (!(0, _primitives.isName)(this.data.fieldValue)) {\n return;\n }\n this.data.fieldValue = this.data.fieldValue.name;\n }\n this.data.radioButton = this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n if (this.data.radioButton) {\n this.data.fieldValue = this.data.buttonValue = null;\n var fieldParent = params.dict.get('Parent');\n if ((0, _primitives.isDict)(fieldParent) && fieldParent.has('V')) {\n var fieldParentValue = fieldParent.get('V');\n if ((0, _primitives.isName)(fieldParentValue)) {\n this.data.fieldValue = fieldParentValue.name;\n }\n }\n var appearanceStates = params.dict.get('AP');\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n var normalAppearanceState = appearanceStates.get('N');\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n var keys = normalAppearanceState.getKeys();\n for (var i = 0, ii = keys.length; i < ii; i++) {\n if (keys[i] !== 'Off') {\n this.data.buttonValue = keys[i];\n break;\n }\n }\n }\n }\n _util.Util.inherit(ButtonWidgetAnnotation, WidgetAnnotation, {\n getOperatorList: function ButtonWidgetAnnotation_getOperatorList(evaluator, task, renderForms) {\n var operatorList = new _evaluator.OperatorList();\n if (renderForms) {\n return Promise.resolve(operatorList);\n }\n if (this.appearance) {\n return Annotation.prototype.getOperatorList.call(this, evaluator, task, renderForms);\n }\n return Promise.resolve(operatorList);\n }\n });\n return ButtonWidgetAnnotation;\n }();\n var ChoiceWidgetAnnotation = function ChoiceWidgetAnnotationClosure() {\n function ChoiceWidgetAnnotation(params) {\n WidgetAnnotation.call(this, params);\n this.data.options = [];\n var options = _util.Util.getInheritableProperty(params.dict, 'Opt');\n if ((0, _util.isArray)(options)) {\n var xref = params.xref;\n for (var i = 0, ii = options.length; i < ii; i++) {\n var option = xref.fetchIfRef(options[i]);\n var isOptionArray = (0, _util.isArray)(option);\n this.data.options[i] = {\n exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option,\n displayValue: isOptionArray ? xref.fetchIfRef(option[1]) : option\n };\n }\n }\n if (!(0, _util.isArray)(this.data.fieldValue)) {\n this.data.fieldValue = [this.data.fieldValue];\n }\n this.data.combo = this.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n }\n _util.Util.inherit(ChoiceWidgetAnnotation, WidgetAnnotation, {\n getOperatorList: function ChoiceWidgetAnnotation_getOperatorList(evaluator, task, renderForms) {\n var operatorList = new _evaluator.OperatorList();\n if (renderForms) {\n return Promise.resolve(operatorList);\n }\n return Annotation.prototype.getOperatorList.call(this, evaluator, task, renderForms);\n }\n });\n return ChoiceWidgetAnnotation;\n }();\n var TextAnnotation = function TextAnnotationClosure() {\n var DEFAULT_ICON_SIZE = 22;\n function TextAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.TEXT;\n if (this.data.hasAppearance) {\n this.data.name = 'NoIcon';\n } else {\n this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n this.data.name = parameters.dict.has('Name') ? parameters.dict.get('Name').name : 'Note';\n }\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(TextAnnotation, Annotation, {});\n return TextAnnotation;\n }();\n var LinkAnnotation = function LinkAnnotationClosure() {\n function LinkAnnotation(params) {\n Annotation.call(this, params);\n var data = this.data;\n data.annotationType = _util.AnnotationType.LINK;\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n }\n _util.Util.inherit(LinkAnnotation, Annotation, {});\n return LinkAnnotation;\n }();\n var PopupAnnotation = function PopupAnnotationClosure() {\n function PopupAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.POPUP;\n var dict = parameters.dict;\n var parentItem = dict.get('Parent');\n if (!parentItem) {\n (0, _util.warn)('Popup annotation has a missing or invalid parent annotation.');\n return;\n }\n var parentSubtype = parentItem.get('Subtype');\n this.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null;\n this.data.parentId = dict.getRaw('Parent').toString();\n this.data.title = (0, _util.stringToPDFString)(parentItem.get('T') || '');\n this.data.contents = (0, _util.stringToPDFString)(parentItem.get('Contents') || '');\n if (!parentItem.has('C')) {\n this.data.color = null;\n } else {\n this.setColor(parentItem.getArray('C'));\n this.data.color = this.color;\n }\n if (!this.viewable) {\n var parentFlags = parentItem.get('F');\n if (this._isViewable(parentFlags)) {\n this.setFlags(parentFlags);\n }\n }\n }\n _util.Util.inherit(PopupAnnotation, Annotation, {});\n return PopupAnnotation;\n }();\n var LineAnnotation = function LineAnnotationClosure() {\n function LineAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.LINE;\n var dict = parameters.dict;\n this.data.lineCoordinates = _util.Util.normalizeRect(dict.getArray('L'));\n this._preparePopup(dict);\n }\n _util.Util.inherit(LineAnnotation, Annotation, {});\n return LineAnnotation;\n }();\n var HighlightAnnotation = function HighlightAnnotationClosure() {\n function HighlightAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.HIGHLIGHT;\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(HighlightAnnotation, Annotation, {});\n return HighlightAnnotation;\n }();\n var UnderlineAnnotation = function UnderlineAnnotationClosure() {\n function UnderlineAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.UNDERLINE;\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(UnderlineAnnotation, Annotation, {});\n return UnderlineAnnotation;\n }();\n var SquigglyAnnotation = function SquigglyAnnotationClosure() {\n function SquigglyAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.SQUIGGLY;\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(SquigglyAnnotation, Annotation, {});\n return SquigglyAnnotation;\n }();\n var StrikeOutAnnotation = function StrikeOutAnnotationClosure() {\n function StrikeOutAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.STRIKEOUT;\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(StrikeOutAnnotation, Annotation, {});\n return StrikeOutAnnotation;\n }();\n var FileAttachmentAnnotation = function FileAttachmentAnnotationClosure() {\n function FileAttachmentAnnotation(parameters) {\n Annotation.call(this, parameters);\n var file = new _obj.FileSpec(parameters.dict.get('FS'), parameters.xref);\n this.data.annotationType = _util.AnnotationType.FILEATTACHMENT;\n this.data.file = file.serializable;\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(FileAttachmentAnnotation, Annotation, {});\n return FileAttachmentAnnotation;\n }();\n exports.Annotation = Annotation;\n exports.AnnotationBorderStyle = AnnotationBorderStyle;\n exports.AnnotationFactory = AnnotationFactory;\n\n /***/\n }, /* 88 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.bidi = undefined;\n var _util = __w_pdfjs_require__(0);\n var 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'];\n var arabicTypes = ['AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ON', 'ON', 'AL', 'ET', 'ET', 'AL', 'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', '', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'NSM', 'NSM', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL'];\n function isOdd(i) {\n return (i & 1) !== 0;\n }\n function isEven(i) {\n return (i & 1) === 0;\n }\n function findUnequal(arr, start, value) {\n for (var j = start, jj = arr.length; j < jj; ++j) {\n if (arr[j] !== value) {\n return j;\n }\n }\n return j;\n }\n function setValues(arr, start, end, value) {\n for (var j = start; j < end; ++j) {\n arr[j] = value;\n }\n }\n function reverseValues(arr, start, end) {\n for (var i = start, j = end - 1; i < j; ++i, --j) {\n var temp = arr[i];\n arr[i] = arr[j];\n arr[j] = temp;\n }\n }\n function createBidiText(str, isLTR, vertical) {\n return {\n str: str,\n dir: vertical ? 'ttb' : isLTR ? 'ltr' : 'rtl'\n };\n }\n var chars = [];\n var types = [];\n function bidi(str, startLevel, vertical) {\n var isLTR = true;\n var strLength = str.length;\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n chars.length = strLength;\n types.length = strLength;\n var numBidi = 0;\n var i, ii;\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n var charCode = str.charCodeAt(i);\n var charType = 'L';\n if (charCode <= 0x00ff) {\n charType = baseTypes[charCode];\n } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n charType = 'R';\n } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n charType = arabicTypes[charCode & 0xff];\n if (!charType) {\n (0, _util.warn)('Bidi: invalid Unicode character ' + charCode.toString(16));\n }\n } else if (0x0700 <= charCode && charCode <= 0x08AC) {\n charType = 'AL';\n }\n if (charType === 'R' || charType === 'AL' || charType === 'AN') {\n numBidi++;\n }\n types[i] = charType;\n }\n if (numBidi === 0) {\n isLTR = true;\n return createBidiText(str, isLTR);\n }\n if (startLevel === -1) {\n if (numBidi / strLength < 0.3) {\n isLTR = true;\n startLevel = 0;\n } else {\n isLTR = false;\n startLevel = 1;\n }\n }\n var levels = [];\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n var e = isOdd(startLevel) ? 'R' : 'L';\n var sor = e;\n var eor = sor;\n var lastType = sor;\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'NSM') {\n types[i] = lastType;\n } else {\n lastType = types[i];\n }\n }\n lastType = sor;\n var t;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'EN') {\n types[i] = lastType === 'AL' ? 'AN' : 'EN';\n } else if (t === 'R' || t === 'L' || t === 'AL') {\n lastType = t;\n }\n }\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'AL') {\n types[i] = 'R';\n }\n }\n for (i = 1; i < strLength - 1; ++i) {\n if (types[i] === 'ES' && types[i - 1] === 'EN' && types[i + 1] === 'EN') {\n types[i] = 'EN';\n }\n if (types[i] === 'CS' && (types[i - 1] === 'EN' || types[i - 1] === 'AN') && types[i + 1] === types[i - 1]) {\n types[i] = types[i - 1];\n }\n }\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'EN') {\n var j;\n for (j = i - 1; j >= 0; --j) {\n if (types[j] !== 'ET') {\n break;\n }\n types[j] = 'EN';\n }\n for (j = i + 1; j < strLength; ++j) {\n if (types[j] !== 'ET') {\n break;\n }\n types[j] = 'EN';\n }\n }\n }\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS') {\n types[i] = 'ON';\n }\n }\n lastType = sor;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'EN') {\n types[i] = lastType === 'L' ? 'L' : 'EN';\n } else if (t === 'R' || t === 'L') {\n lastType = t;\n }\n }\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'ON') {\n var end = findUnequal(types, i + 1, 'ON');\n var before = sor;\n if (i > 0) {\n before = types[i - 1];\n }\n var after = eor;\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n if (before !== 'L') {\n before = 'R';\n }\n if (after !== 'L') {\n after = 'R';\n }\n if (before === after) {\n setValues(types, i, end, before);\n }\n i = end - 1;\n }\n }\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'ON') {\n types[i] = e;\n }\n }\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (isEven(levels[i])) {\n if (t === 'R') {\n levels[i] += 1;\n } else if (t === 'AN' || t === 'EN') {\n levels[i] += 2;\n }\n } else {\n if (t === 'L' || t === 'AN' || t === 'EN') {\n levels[i] += 1;\n }\n }\n }\n var highestLevel = -1;\n var lowestOddLevel = 99;\n var level;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n if (highestLevel < level) {\n highestLevel = level;\n }\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n var start = -1;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n if (levels[i] < level) {\n if (start >= 0) {\n reverseValues(chars, start, i);\n start = -1;\n }\n } else if (start < 0) {\n start = i;\n }\n }\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n for (i = 0, ii = chars.length; i < ii; ++i) {\n var ch = chars[i];\n if (ch === '<' || ch === '>') {\n chars[i] = '';\n }\n }\n return createBidiText(chars.join(''), isLTR);\n }\n exports.bidi = bidi;\n\n /***/\n }, /* 89 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var 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'];\n var 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'];\n var 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'];\n exports.ISOAdobeCharset = ISOAdobeCharset;\n exports.ExpertCharset = ExpertCharset;\n exports.ExpertSubsetCharset = ExpertSubsetCharset;\n\n /***/\n }, /* 90 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.CMapFactory = exports.IdentityCMap = exports.CMap = undefined;\n var _util = __w_pdfjs_require__(0);\n var _primitives = __w_pdfjs_require__(1);\n var _parser = __w_pdfjs_require__(23);\n var _stream = __w_pdfjs_require__(3);\n var 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'];\n var CMap = function CMapClosure() {\n function CMap(builtInCMap) {\n this.codespaceRanges = [[], [], [], []];\n this.numCodespaceRanges = 0;\n this._map = [];\n this.name = '';\n this.vertical = false;\n this.useCMap = null;\n this.builtInCMap = builtInCMap;\n }\n CMap.prototype = {\n addCodespaceRange: function addCodespaceRange(n, low, high) {\n this.codespaceRanges[n - 1].push(low, high);\n this.numCodespaceRanges++;\n },\n mapCidRange: function mapCidRange(low, high, dstLow) {\n while (low <= high) {\n this._map[low++] = dstLow++;\n }\n },\n mapBfRange: function mapBfRange(low, high, dstLow) {\n var lastByte = dstLow.length - 1;\n while (low <= high) {\n this._map[low++] = dstLow;\n dstLow = dstLow.substr(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);\n }\n },\n mapBfRangeToArray: function mapBfRangeToArray(low, high, array) {\n var i = 0,\n ii = array.length;\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n },\n mapOne: function mapOne(src, dst) {\n this._map[src] = dst;\n },\n lookup: function lookup(code) {\n return this._map[code];\n },\n contains: function contains(code) {\n return this._map[code] !== undefined;\n },\n forEach: function forEach(callback) {\n var map = this._map;\n var length = map.length;\n if (length <= 0x10000) {\n for (var i = 0; i < length; i++) {\n if (map[i] !== undefined) {\n callback(i, map[i]);\n }\n }\n } else {\n for (var _i in map) {\n callback(_i, map[_i]);\n }\n }\n },\n charCodeOf: function charCodeOf(value) {\n var map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (var charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n },\n getMap: function getMap() {\n return this._map;\n },\n readCharCode: function readCharCode(str, offset, out) {\n var c = 0;\n var codespaceRanges = this.codespaceRanges;\n var codespaceRangesLen = this.codespaceRanges.length;\n for (var n = 0; n < codespaceRangesLen; n++) {\n c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n var codespaceRange = codespaceRanges[n];\n for (var k = 0, kk = codespaceRange.length; k < kk;) {\n var low = codespaceRange[k++];\n var high = codespaceRange[k++];\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\n }\n }\n out.charcode = 0;\n out.length = 1;\n },\n get length() {\n return this._map.length;\n },\n get isIdentityCMap() {\n if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) {\n return false;\n }\n if (this._map.length !== 0x10000) {\n return false;\n }\n for (var i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n return true;\n }\n };\n return CMap;\n }();\n var IdentityCMap = function IdentityCMapClosure() {\n function IdentityCMap(vertical, n) {\n CMap.call(this);\n this.vertical = vertical;\n this.addCodespaceRange(n, 0, 0xffff);\n }\n _util.Util.inherit(IdentityCMap, CMap, {});\n IdentityCMap.prototype = {\n addCodespaceRange: CMap.prototype.addCodespaceRange,\n mapCidRange: function mapCidRange(low, high, dstLow) {\n throw new Error('should not call mapCidRange');\n },\n mapBfRange: function mapBfRange(low, high, dstLow) {\n throw new Error('should not call mapBfRange');\n },\n mapBfRangeToArray: function mapBfRangeToArray(low, high, array) {\n throw new Error('should not call mapBfRangeToArray');\n },\n mapOne: function mapOne(src, dst) {\n throw new Error('should not call mapCidOne');\n },\n lookup: function lookup(code) {\n return (0, _util.isInt)(code) && code <= 0xffff ? code : undefined;\n },\n contains: function contains(code) {\n return (0, _util.isInt)(code) && code <= 0xffff;\n },\n forEach: function forEach(callback) {\n for (var i = 0; i <= 0xffff; i++) {\n callback(i, i);\n }\n },\n charCodeOf: function charCodeOf(value) {\n return (0, _util.isInt)(value) && value <= 0xffff ? value : -1;\n },\n getMap: function getMap() {\n var map = new Array(0x10000);\n for (var i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n return map;\n },\n readCharCode: CMap.prototype.readCharCode,\n get length() {\n return 0x10000;\n },\n get isIdentityCMap() {\n throw new Error('should not access .isIdentityCMap');\n }\n };\n return IdentityCMap;\n }();\n var BinaryCMapReader = function BinaryCMapReaderClosure() {\n function hexToInt(a, size) {\n var n = 0;\n for (var i = 0; i <= size; i++) {\n n = n << 8 | a[i];\n }\n return n >>> 0;\n }\n function hexToStr(a, size) {\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\n return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n }\n function addHex(a, b, size) {\n var c = 0;\n for (var i = size; i >= 0; i--) {\n c += a[i] + b[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n function incHex(a, size) {\n var c = 1;\n for (var i = size; i >= 0 && c > 0; i--) {\n c += a[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n var MAX_NUM_SIZE = 16;\n var MAX_ENCODED_NUM_SIZE = 19;\n function BinaryCMapStream(data) {\n this.buffer = data;\n this.pos = 0;\n this.end = data.length;\n this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n }\n BinaryCMapStream.prototype = {\n readByte: function readByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.buffer[this.pos++];\n },\n readNumber: function readNumber() {\n var n = 0;\n var last;\n do {\n var b = this.readByte();\n if (b < 0) {\n throw new _util.FormatError('unexpected EOF in bcmap');\n }\n last = !(b & 0x80);\n n = n << 7 | b & 0x7F;\n } while (!last);\n return n;\n },\n readSigned: function readSigned() {\n var n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n },\n readHex: function readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n },\n readHexNumber: function readHexNumber(num, size) {\n var last;\n var stack = this.tmpBuf,\n sp = 0;\n do {\n var b = this.readByte();\n if (b < 0) {\n throw new _util.FormatError('unexpected EOF in bcmap');\n }\n last = !(b & 0x80);\n stack[sp++] = b & 0x7F;\n } while (!last);\n var i = size,\n buffer = 0,\n bufferSize = 0;\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer = stack[--sp] << bufferSize | buffer;\n bufferSize += 7;\n }\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n },\n readHexSigned: function readHexSigned(num, size) {\n this.readHexNumber(num, size);\n var sign = num[size] & 1 ? 255 : 0;\n var c = 0;\n for (var i = 0; i <= size; i++) {\n c = (c & 1) << 8 | num[i];\n num[i] = c >> 1 ^ sign;\n }\n },\n readString: function readString() {\n var len = this.readNumber();\n var s = '';\n for (var i = 0; i < len; i++) {\n s += String.fromCharCode(this.readNumber());\n }\n return s;\n }\n };\n function processBinaryCMap(data, cMap, extend) {\n return new Promise(function (resolve, reject) {\n var stream = new BinaryCMapStream(data);\n var header = stream.readByte();\n cMap.vertical = !!(header & 1);\n var useCMap = null;\n var start = new Uint8Array(MAX_NUM_SIZE);\n var end = new Uint8Array(MAX_NUM_SIZE);\n var char = new Uint8Array(MAX_NUM_SIZE);\n var charCode = new Uint8Array(MAX_NUM_SIZE);\n var tmp = new Uint8Array(MAX_NUM_SIZE);\n var code;\n var b;\n while ((b = stream.readByte()) >= 0) {\n var type = b >> 5;\n if (type === 7) {\n switch (b & 0x1F) {\n case 0:\n stream.readString();\n break;\n case 1:\n useCMap = stream.readString();\n break;\n }\n continue;\n }\n var sequence = !!(b & 0x10);\n var dataSize = b & 15;\n if (dataSize + 1 > MAX_NUM_SIZE) {\n throw new Error('processBinaryCMap: Invalid dataSize.');\n }\n var ucs2DataSize = 1;\n var subitemsCount = stream.readNumber();\n var i;\n switch (type) {\n case 0:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n }\n break;\n case 1:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n }\n break;\n case 2:\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n break;\n case 3:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n }\n break;\n case 4:\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n break;\n case 5:\n stream.readHex(start, ucs2DataSize);\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n break;\n default:\n reject(new Error('processBinaryCMap: Unknown type: ' + type));\n return;\n }\n }\n if (useCMap) {\n resolve(extend(useCMap));\n return;\n }\n resolve(cMap);\n });\n }\n function BinaryCMapReader() {}\n BinaryCMapReader.prototype = {\n process: processBinaryCMap\n };\n return BinaryCMapReader;\n }();\n var CMapFactory = function CMapFactoryClosure() {\n function strToInt(str) {\n var a = 0;\n for (var i = 0; i < str.length; i++) {\n a = a << 8 | str.charCodeAt(i);\n }\n return a >>> 0;\n }\n function expectString(obj) {\n if (!(0, _util.isString)(obj)) {\n throw new _util.FormatError('Malformed CMap: expected string.');\n }\n }\n function expectInt(obj) {\n if (!(0, _util.isInt)(obj)) {\n throw new _util.FormatError('Malformed CMap: expected int.');\n }\n }\n function parseBfChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endbfchar')) {\n return;\n }\n expectString(obj);\n var src = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n function parseBfRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endbfrange')) {\n return;\n }\n expectString(obj);\n var low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var high = strToInt(obj);\n obj = lexer.getObj();\n if ((0, _util.isInt)(obj) || (0, _util.isString)(obj)) {\n var dstLow = (0, _util.isInt)(obj) ? String.fromCharCode(obj) : obj;\n cMap.mapBfRange(low, high, dstLow);\n } else if ((0, _primitives.isCmd)(obj, '[')) {\n obj = lexer.getObj();\n var array = [];\n while (!(0, _primitives.isCmd)(obj, ']') && !(0, _primitives.isEOF)(obj)) {\n array.push(obj);\n obj = lexer.getObj();\n }\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n throw new _util.FormatError('Invalid bf range.');\n }\n function parseCidChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endcidchar')) {\n return;\n }\n expectString(obj);\n var src = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n var dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n function parseCidRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endcidrange')) {\n return;\n }\n expectString(obj);\n var low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var high = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n var dstLow = obj;\n cMap.mapCidRange(low, high, dstLow);\n }\n }\n function parseCodespaceRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endcodespacerange')) {\n return;\n }\n if (!(0, _util.isString)(obj)) {\n break;\n }\n var low = strToInt(obj);\n obj = lexer.getObj();\n if (!(0, _util.isString)(obj)) {\n break;\n }\n var high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n throw new _util.FormatError('Invalid codespace range.');\n }\n function parseWMode(cMap, lexer) {\n var obj = lexer.getObj();\n if ((0, _util.isInt)(obj)) {\n cMap.vertical = !!obj;\n }\n }\n function parseCMapName(cMap, lexer) {\n var obj = lexer.getObj();\n if ((0, _primitives.isName)(obj) && (0, _util.isString)(obj.name)) {\n cMap.name = obj.name;\n }\n }\n function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n var previous;\n var embededUseCMap;\n objLoop: while (true) {\n try {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n } else if ((0, _primitives.isName)(obj)) {\n if (obj.name === 'WMode') {\n parseWMode(cMap, lexer);\n } else if (obj.name === 'CMapName') {\n parseCMapName(cMap, lexer);\n }\n previous = obj;\n } else if ((0, _primitives.isCmd)(obj)) {\n switch (obj.cmd) {\n case 'endcmap':\n break objLoop;\n case 'usecmap':\n if ((0, _primitives.isName)(previous)) {\n embededUseCMap = previous.name;\n }\n break;\n case 'begincodespacerange':\n parseCodespaceRange(cMap, lexer);\n break;\n case 'beginbfchar':\n parseBfChar(cMap, lexer);\n break;\n case 'begincidchar':\n parseCidChar(cMap, lexer);\n break;\n case 'beginbfrange':\n parseBfRange(cMap, lexer);\n break;\n case 'begincidrange':\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Invalid cMap data: ' + ex);\n continue;\n }\n }\n if (!useCMap && embededUseCMap) {\n useCMap = embededUseCMap;\n }\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n return Promise.resolve(cMap);\n }\n function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) {\n cMap.useCMap = newCMap;\n if (cMap.numCodespaceRanges === 0) {\n var useCodespaceRanges = cMap.useCMap.codespaceRanges;\n for (var i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n cMap.useCMap.forEach(function (key, value) {\n if (!cMap.contains(key)) {\n cMap.mapOne(key, cMap.useCMap.lookup(key));\n }\n });\n return cMap;\n });\n }\n function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === 'Identity-H') {\n return Promise.resolve(new IdentityCMap(false, 2));\n } else if (name === 'Identity-V') {\n return Promise.resolve(new IdentityCMap(true, 2));\n }\n if (BUILT_IN_CMAPS.indexOf(name) === -1) {\n return Promise.reject(new Error('Unknown CMap name: ' + name));\n }\n if (!fetchBuiltInCMap) {\n return Promise.reject(new Error('Built-in CMap parameters are not provided.'));\n }\n return fetchBuiltInCMap(name).then(function (data) {\n var cMapData = data.cMapData,\n compressionType = data.compressionType;\n var cMap = new CMap(true);\n if (compressionType === _util.CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n });\n }\n if (compressionType === _util.CMapCompressionType.NONE) {\n var lexer = new _parser.Lexer(new _stream.Stream(cMapData));\n return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n }\n return Promise.reject(new Error('TODO: Only BINARY/NONE CMap compression is currently supported.'));\n });\n }\n return {\n create: function create(params) {\n var encoding = params.encoding;\n var fetchBuiltInCMap = params.fetchBuiltInCMap;\n var useCMap = params.useCMap;\n if ((0, _primitives.isName)(encoding)) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if ((0, _primitives.isStream)(encoding)) {\n var cMap = new CMap();\n var lexer = new _parser.Lexer(encoding);\n return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (parsedCMap) {\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n return parsedCMap;\n });\n }\n return Promise.reject(new Error('Encoding required.'));\n }\n };\n }();\n exports.CMap = CMap;\n exports.IdentityCMap = IdentityCMap;\n exports.CMapFactory = CMapFactory;\n\n /***/\n }, /* 91 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PDFDocument = exports.Page = undefined;\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _obj = __w_pdfjs_require__(58);\n var _primitives = __w_pdfjs_require__(1);\n var _util = __w_pdfjs_require__(0);\n var _stream = __w_pdfjs_require__(3);\n var _evaluator = __w_pdfjs_require__(56);\n var _annotation = __w_pdfjs_require__(87);\n var _crypto = __w_pdfjs_require__(55);\n var _parser = __w_pdfjs_require__(23);\n var Page = function PageClosure() {\n var DEFAULT_USER_UNIT = 1.0;\n var LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n function isAnnotationRenderable(annotation, intent) {\n return intent === 'display' && annotation.viewable || intent === 'print' && annotation.printable;\n }\n function Page(pdfManager, xref, pageIndex, pageDict, ref, fontCache, builtInCMapCache) {\n this.pdfManager = pdfManager;\n this.pageIndex = pageIndex;\n this.pageDict = pageDict;\n this.xref = xref;\n this.ref = ref;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n var uniquePrefix = 'p' + this.pageIndex + '_';\n var idCounters = {\n obj: 0\n };\n this.idFactory = {\n createObjId: function createObjId() {\n return uniquePrefix + ++idCounters.obj;\n }\n };\n }\n Page.prototype = {\n getPageProp: function Page_getPageProp(key) {\n return this.pageDict.get(key);\n },\n getInheritedPageProp: function Page_getInheritedPageProp(key, getArray) {\n var dict = this.pageDict,\n valueArray = null,\n loopCount = 0;\n var MAX_LOOP_COUNT = 100;\n getArray = getArray || false;\n while (dict) {\n var value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (!valueArray) {\n valueArray = [];\n }\n valueArray.push(value);\n }\n if (++loopCount > MAX_LOOP_COUNT) {\n (0, _util.warn)('getInheritedPageProp: maximum loop count exceeded for ' + key);\n return valueArray ? valueArray[0] : undefined;\n }\n dict = dict.get('Parent');\n }\n if (!valueArray) {\n return undefined;\n }\n if (valueArray.length === 1 || !(0, _primitives.isDict)(valueArray[0])) {\n return valueArray[0];\n }\n return _primitives.Dict.merge(this.xref, valueArray);\n },\n get content() {\n return this.getPageProp('Contents');\n },\n get resources() {\n return (0, _util.shadow)(this, 'resources', this.getInheritedPageProp('Resources') || _primitives.Dict.empty);\n },\n get mediaBox() {\n var mediaBox = this.getInheritedPageProp('MediaBox', true);\n if (!(0, _util.isArray)(mediaBox) || mediaBox.length !== 4) {\n return (0, _util.shadow)(this, 'mediaBox', LETTER_SIZE_MEDIABOX);\n }\n return (0, _util.shadow)(this, 'mediaBox', mediaBox);\n },\n get cropBox() {\n var cropBox = this.getInheritedPageProp('CropBox', true);\n if (!(0, _util.isArray)(cropBox) || cropBox.length !== 4) {\n return (0, _util.shadow)(this, 'cropBox', this.mediaBox);\n }\n return (0, _util.shadow)(this, 'cropBox', cropBox);\n },\n get userUnit() {\n var obj = this.getPageProp('UserUnit');\n if (!(0, _util.isNum)(obj) || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n return (0, _util.shadow)(this, 'userUnit', obj);\n },\n get view() {\n var mediaBox = this.mediaBox,\n cropBox = this.cropBox;\n if (mediaBox === cropBox) {\n return (0, _util.shadow)(this, 'view', mediaBox);\n }\n var intersection = _util.Util.intersect(cropBox, mediaBox);\n return (0, _util.shadow)(this, 'view', intersection || mediaBox);\n },\n get rotate() {\n var rotate = this.getInheritedPageProp('Rotate') || 0;\n if (rotate % 90 !== 0) {\n rotate = 0;\n } else if (rotate >= 360) {\n rotate = rotate % 360;\n } else if (rotate < 0) {\n rotate = (rotate % 360 + 360) % 360;\n }\n return (0, _util.shadow)(this, 'rotate', rotate);\n },\n getContentStream: function Page_getContentStream() {\n var content = this.content;\n var stream;\n if ((0, _util.isArray)(content)) {\n var xref = this.xref;\n var i,\n n = content.length;\n var streams = [];\n for (i = 0; i < n; ++i) {\n streams.push(xref.fetchIfRef(content[i]));\n }\n stream = new _stream.StreamsSequenceStream(streams);\n } else if ((0, _primitives.isStream)(content)) {\n stream = content;\n } else {\n stream = new _stream.NullStream();\n }\n return stream;\n },\n loadResources: function Page_loadResources(keys) {\n var _this = this;\n if (!this.resourcesPromise) {\n this.resourcesPromise = this.pdfManager.ensure(this, 'resources');\n }\n return this.resourcesPromise.then(function () {\n var objectLoader = new _obj.ObjectLoader(_this.resources, keys, _this.xref);\n return objectLoader.load();\n });\n },\n getOperatorList: function getOperatorList(_ref) {\n var _this2 = this;\n var handler = _ref.handler,\n task = _ref.task,\n intent = _ref.intent,\n renderInteractiveForms = _ref.renderInteractiveForms;\n var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');\n var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);\n var partialEvaluator = new _evaluator.PartialEvaluator({\n pdfManager: this.pdfManager,\n xref: this.xref,\n handler: handler,\n pageIndex: this.pageIndex,\n idFactory: this.idFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n options: this.evaluatorOptions\n });\n var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n var pageListPromise = dataPromises.then(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 1),\n contentStream = _ref3[0];\n var opList = new _evaluator.OperatorList(intent, handler, _this2.pageIndex);\n handler.send('StartRenderPage', {\n transparency: partialEvaluator.hasBlendModes(_this2.resources),\n pageIndex: _this2.pageIndex,\n intent: intent\n });\n return partialEvaluator.getOperatorList({\n stream: contentStream,\n task: task,\n resources: _this2.resources,\n operatorList: opList\n }).then(function () {\n return opList;\n });\n });\n var annotationsPromise = this.pdfManager.ensure(this, 'annotations');\n return Promise.all([pageListPromise, annotationsPromise]).then(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n pageOpList = _ref5[0],\n annotations = _ref5[1];\n if (annotations.length === 0) {\n pageOpList.flush(true);\n return pageOpList;\n }\n var i,\n ii,\n opListPromises = [];\n for (i = 0, ii = annotations.length; i < ii; i++) {\n if (isAnnotationRenderable(annotations[i], intent)) {\n opListPromises.push(annotations[i].getOperatorList(partialEvaluator, task, renderInteractiveForms));\n }\n }\n return Promise.all(opListPromises).then(function (opLists) {\n pageOpList.addOp(_util.OPS.beginAnnotations, []);\n for (i = 0, ii = opLists.length; i < ii; i++) {\n pageOpList.addOpList(opLists[i]);\n }\n pageOpList.addOp(_util.OPS.endAnnotations, []);\n pageOpList.flush(true);\n return pageOpList;\n });\n });\n },\n extractTextContent: function extractTextContent(_ref6) {\n var _this3 = this;\n var handler = _ref6.handler,\n task = _ref6.task,\n normalizeWhitespace = _ref6.normalizeWhitespace,\n sink = _ref6.sink,\n combineTextItems = _ref6.combineTextItems;\n var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');\n var resourcesPromise = this.loadResources(['ExtGState', 'XObject', 'Font']);\n var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 1),\n contentStream = _ref8[0];\n var partialEvaluator = new _evaluator.PartialEvaluator({\n pdfManager: _this3.pdfManager,\n xref: _this3.xref,\n handler: handler,\n pageIndex: _this3.pageIndex,\n idFactory: _this3.idFactory,\n fontCache: _this3.fontCache,\n builtInCMapCache: _this3.builtInCMapCache,\n options: _this3.evaluatorOptions\n });\n return partialEvaluator.getTextContent({\n stream: contentStream,\n task: task,\n resources: _this3.resources,\n normalizeWhitespace: normalizeWhitespace,\n combineTextItems: combineTextItems,\n sink: sink\n });\n });\n },\n getAnnotationsData: function Page_getAnnotationsData(intent) {\n var annotations = this.annotations;\n var annotationsData = [];\n for (var i = 0, n = annotations.length; i < n; ++i) {\n if (!intent || isAnnotationRenderable(annotations[i], intent)) {\n annotationsData.push(annotations[i].data);\n }\n }\n return annotationsData;\n },\n get annotations() {\n var annotations = [];\n var annotationRefs = this.getInheritedPageProp('Annots') || [];\n var annotationFactory = new _annotation.AnnotationFactory();\n for (var i = 0, n = annotationRefs.length; i < n; ++i) {\n var annotationRef = annotationRefs[i];\n var annotation = annotationFactory.create(this.xref, annotationRef, this.pdfManager, this.idFactory);\n if (annotation) {\n annotations.push(annotation);\n }\n }\n return (0, _util.shadow)(this, 'annotations', annotations);\n }\n };\n return Page;\n }();\n var PDFDocument = function PDFDocumentClosure() {\n var FINGERPRINT_FIRST_BYTES = 1024;\n var EMPTY_FINGERPRINT = '\\x00\\x00\\x00\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00';\n function PDFDocument(pdfManager, arg) {\n var stream;\n if ((0, _primitives.isStream)(arg)) {\n stream = arg;\n } else if ((0, _util.isArrayBuffer)(arg)) {\n stream = new _stream.Stream(arg);\n } else {\n throw new Error('PDFDocument: Unknown argument type');\n }\n if (stream.length <= 0) {\n throw new Error('PDFDocument: stream must have data');\n }\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new _obj.XRef(stream, pdfManager);\n }\n function find(stream, needle, limit, backwards) {\n var pos = stream.pos;\n var end = stream.end;\n var strBuf = [];\n if (pos + limit > end) {\n limit = end - pos;\n }\n for (var n = 0; n < limit; ++n) {\n strBuf.push(String.fromCharCode(stream.getByte()));\n }\n var str = strBuf.join('');\n stream.pos = pos;\n var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle);\n if (index === -1) {\n return false;\n }\n stream.pos += index;\n return true;\n }\n var DocumentInfoValidators = {\n get entries() {\n return (0, _util.shadow)(this, 'entries', {\n Title: _util.isString,\n Author: _util.isString,\n Subject: _util.isString,\n Keywords: _util.isString,\n Creator: _util.isString,\n Producer: _util.isString,\n CreationDate: _util.isString,\n ModDate: _util.isString,\n Trapped: _primitives.isName\n });\n }\n };\n PDFDocument.prototype = {\n parse: function PDFDocument_parse(recoveryMode) {\n this.setup(recoveryMode);\n var version = this.catalog.catDict.get('Version');\n if ((0, _primitives.isName)(version)) {\n this.pdfFormatVersion = version.name;\n }\n try {\n this.acroForm = this.catalog.catDict.get('AcroForm');\n if (this.acroForm) {\n this.xfa = this.acroForm.get('XFA');\n var fields = this.acroForm.get('Fields');\n if ((!fields || !(0, _util.isArray)(fields) || fields.length === 0) && !this.xfa) {\n this.acroForm = null;\n }\n }\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.info)('Something wrong with AcroForm entry');\n this.acroForm = null;\n }\n },\n get linearization() {\n var linearization = null;\n if (this.stream.length) {\n try {\n linearization = _parser.Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof _util.MissingDataException) {\n throw err;\n }\n (0, _util.info)(err);\n }\n }\n return (0, _util.shadow)(this, 'linearization', linearization);\n },\n get startXRef() {\n var stream = this.stream;\n var startXRef = 0;\n var linearization = this.linearization;\n if (linearization) {\n stream.reset();\n if (find(stream, 'endobj', 1024)) {\n startXRef = stream.pos + 6;\n }\n } else {\n var step = 1024;\n var found = false,\n pos = stream.end;\n while (!found && pos > 0) {\n pos -= step - 'startxref'.length;\n if (pos < 0) {\n pos = 0;\n }\n stream.pos = pos;\n found = find(stream, 'startxref', step, true);\n }\n if (found) {\n stream.skip(9);\n var ch;\n do {\n ch = stream.getByte();\n } while ((0, _util.isSpace)(ch));\n var str = '';\n while (ch >= 0x20 && ch <= 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n startXRef = parseInt(str, 10);\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n return (0, _util.shadow)(this, 'startXRef', startXRef);\n },\n get mainXRefEntriesOffset() {\n var mainXRefEntriesOffset = 0;\n var linearization = this.linearization;\n if (linearization) {\n mainXRefEntriesOffset = linearization.mainXRefEntriesOffset;\n }\n return (0, _util.shadow)(this, 'mainXRefEntriesOffset', mainXRefEntriesOffset);\n },\n checkHeader: function PDFDocument_checkHeader() {\n var stream = this.stream;\n stream.reset();\n if (find(stream, '%PDF-', 1024)) {\n stream.moveStart();\n var MAX_VERSION_LENGTH = 12;\n var version = '',\n ch;\n while ((ch = stream.getByte()) > 0x20) {\n if (version.length >= MAX_VERSION_LENGTH) {\n break;\n }\n version += String.fromCharCode(ch);\n }\n if (!this.pdfFormatVersion) {\n this.pdfFormatVersion = version.substring(5);\n }\n return;\n }\n },\n parseStartXRef: function PDFDocument_parseStartXRef() {\n var startXRef = this.startXRef;\n this.xref.setStartXRef(startXRef);\n },\n setup: function PDFDocument_setup(recoveryMode) {\n var _this4 = this;\n this.xref.parse(recoveryMode);\n var pageFactory = {\n createPage: function createPage(pageIndex, dict, ref, fontCache, builtInCMapCache) {\n return new Page(_this4.pdfManager, _this4.xref, pageIndex, dict, ref, fontCache, builtInCMapCache);\n }\n };\n this.catalog = new _obj.Catalog(this.pdfManager, this.xref, pageFactory);\n },\n get numPages() {\n var linearization = this.linearization;\n var num = linearization ? linearization.numPages : this.catalog.numPages;\n return (0, _util.shadow)(this, 'numPages', num);\n },\n get documentInfo() {\n var docInfo = {\n PDFFormatVersion: this.pdfFormatVersion,\n IsAcroFormPresent: !!this.acroForm,\n IsXFAPresent: !!this.xfa\n };\n var infoDict;\n try {\n infoDict = this.xref.trailer.get('Info');\n } catch (err) {\n if (err instanceof _util.MissingDataException) {\n throw err;\n }\n (0, _util.info)('The document information dictionary is invalid.');\n }\n if (infoDict) {\n var validEntries = DocumentInfoValidators.entries;\n for (var key in validEntries) {\n if (infoDict.has(key)) {\n var value = infoDict.get(key);\n if (validEntries[key](value)) {\n docInfo[key] = typeof value !== 'string' ? value : (0, _util.stringToPDFString)(value);\n } else {\n (0, _util.info)('Bad value in document info for \"' + key + '\"');\n }\n }\n }\n }\n return (0, _util.shadow)(this, 'documentInfo', docInfo);\n },\n get fingerprint() {\n var xref = this.xref,\n hash,\n fileID = '';\n var idArray = xref.trailer.get('ID');\n if (idArray && (0, _util.isArray)(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) {\n hash = (0, _util.stringToBytes)(idArray[0]);\n } else {\n if (this.stream.ensureRange) {\n this.stream.ensureRange(0, Math.min(FINGERPRINT_FIRST_BYTES, this.stream.end));\n }\n hash = (0, _crypto.calculateMD5)(this.stream.bytes.subarray(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n }\n for (var i = 0, n = hash.length; i < n; i++) {\n var hex = hash[i].toString(16);\n fileID += hex.length === 1 ? '0' + hex : hex;\n }\n return (0, _util.shadow)(this, 'fingerprint', fileID);\n },\n getPage: function PDFDocument_getPage(pageIndex) {\n return this.catalog.getPage(pageIndex);\n },\n cleanup: function PDFDocument_cleanup() {\n return this.catalog.cleanup();\n }\n };\n return PDFDocument;\n }();\n exports.Page = Page;\n exports.PDFDocument = PDFDocument;\n\n /***/\n }, /* 92 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.FontRendererFactory = undefined;\n var _util = __w_pdfjs_require__(0);\n var _cff_parser = __w_pdfjs_require__(53);\n var _glyphlist = __w_pdfjs_require__(33);\n var _encodings = __w_pdfjs_require__(16);\n var _stream = __w_pdfjs_require__(3);\n var FontRendererFactory = function FontRendererFactoryClosure() {\n function getLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n }\n function getUshort(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n }\n function parseCmap(data, start, end) {\n var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16);\n var format = getUshort(data, start + offset);\n var ranges, p, i;\n if (format === 4) {\n getUshort(data, start + offset + 2);\n var segCount = getUshort(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = {\n end: getUshort(data, p)\n };\n }\n p += 2;\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUshort(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUshort(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n var idOffset = getUshort(data, p);\n if (idOffset === 0) {\n continue;\n }\n ranges[i].ids = [];\n for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n ranges[i].ids[j] = getUshort(data, p + idOffset);\n idOffset += 2;\n }\n }\n return ranges;\n } else if (format === 12) {\n getLong(data, start + offset + 4);\n var groups = getLong(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n for (i = 0; i < groups; i++) {\n ranges.push({\n start: getLong(data, p),\n end: getLong(data, p + 4),\n idDelta: getLong(data, p + 8) - getLong(data, p)\n });\n p += 12;\n }\n return ranges;\n }\n throw new _util.FormatError('unsupported cmap: ' + format);\n }\n function parseCff(data, start, end, seacAnalysisEnabled) {\n var properties = {};\n var parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n var cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects,\n gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects\n };\n }\n function parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n var itemSize, itemDecode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n };\n } else {\n itemSize = 2;\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n }\n var glyphs = [];\n var startOffset = itemDecode(loca, 0);\n for (var j = itemSize; j < loca.length; j += itemSize) {\n var endOffset = itemDecode(loca, j);\n glyphs.push(glyf.subarray(startOffset, endOffset));\n startOffset = endOffset;\n }\n return glyphs;\n }\n function lookupCmap(ranges, unicode) {\n var code = unicode.charCodeAt(0),\n gid = 0;\n var l = 0,\n r = ranges.length - 1;\n while (l < r) {\n var c = l + r + 1 >> 1;\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xFFFF;\n }\n return {\n charCode: code,\n glyphId: gid\n };\n }\n function compileGlyf(code, cmds, font) {\n function moveTo(x, y) {\n cmds.push({\n cmd: 'moveTo',\n args: [x, y]\n });\n }\n function lineTo(x, y) {\n cmds.push({\n cmd: 'lineTo',\n args: [x, y]\n });\n }\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({\n cmd: 'quadraticCurveTo',\n args: [xa, ya, x, y]\n });\n }\n var i = 0;\n var numberOfContours = (code[i] << 24 | code[i + 1] << 16) >> 16;\n var flags;\n var x = 0,\n y = 0;\n i += 10;\n if (numberOfContours < 0) {\n do {\n flags = code[i] << 8 | code[i + 1];\n var glyphIndex = code[i + 2] << 8 | code[i + 3];\n i += 4;\n var arg1, arg2;\n if (flags & 0x01) {\n arg1 = (code[i] << 24 | code[i + 1] << 16) >> 16;\n arg2 = (code[i + 2] << 24 | code[i + 3] << 16) >> 16;\n i += 4;\n } else {\n arg1 = code[i++];\n arg2 = code[i++];\n }\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n var scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\n if (flags & 0x08) {\n scaleX = scaleY = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n i += 2;\n } else if (flags & 0x40) {\n scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n scaleY = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n i += 4;\n } else if (flags & 0x80) {\n scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n scale01 = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n scale10 = (code[i + 4] << 24 | code[i + 5] << 16) / 1073741824;\n scaleY = (code[i + 6] << 24 | code[i + 7] << 16) / 1073741824;\n i += 8;\n }\n var subglyph = font.glyphs[glyphIndex];\n if (subglyph) {\n cmds.push({\n cmd: 'save'\n });\n cmds.push({\n cmd: 'transform',\n args: [scaleX, scale01, scale10, scaleY, x, y]\n });\n compileGlyf(subglyph, cmds, font);\n cmds.push({\n cmd: 'restore'\n });\n }\n } while (flags & 0x20);\n } else {\n var endPtsOfContours = [];\n var j, jj;\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(code[i] << 8 | code[i + 1]);\n i += 2;\n }\n var instructionLength = code[i] << 8 | code[i + 1];\n i += 2 + instructionLength;\n var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n var points = [];\n while (points.length < numberOfPoints) {\n flags = code[i++];\n var repeat = 1;\n if (flags & 0x08) {\n repeat += code[i++];\n }\n while (repeat-- > 0) {\n points.push({\n flags: flags\n });\n }\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x12) {\n case 0x00:\n x += (code[i] << 24 | code[i + 1] << 16) >> 16;\n i += 2;\n break;\n case 0x02:\n x -= code[i++];\n break;\n case 0x12:\n x += code[i++];\n break;\n }\n points[j].x = x;\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x24) {\n case 0x00:\n y += (code[i] << 24 | code[i + 1] << 16) >> 16;\n i += 2;\n break;\n case 0x04:\n y -= code[i++];\n break;\n case 0x24:\n y += code[i++];\n break;\n }\n points[j].y = y;\n }\n var startPoint = 0;\n for (i = 0; i < numberOfContours; i++) {\n var endPoint = endPtsOfContours[i];\n var contour = points.slice(startPoint, endPoint + 1);\n if (contour[0].flags & 1) {\n contour.push(contour[0]);\n } else if (contour[contour.length - 1].flags & 1) {\n contour.unshift(contour[contour.length - 1]);\n } else {\n var p = {\n flags: 1,\n x: (contour[0].x + contour[contour.length - 1].x) / 2,\n y: (contour[0].y + contour[contour.length - 1].y) / 2\n };\n contour.unshift(p);\n contour.push(p);\n }\n moveTo(contour[0].x, contour[0].y);\n for (j = 1, jj = contour.length; j < jj; j++) {\n if (contour[j].flags & 1) {\n lineTo(contour[j].x, contour[j].y);\n } else if (contour[j + 1].flags & 1) {\n quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);\n j++;\n } else {\n quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2);\n }\n }\n startPoint = endPoint + 1;\n }\n }\n }\n function compileCharString(code, cmds, font) {\n var stack = [];\n var x = 0,\n y = 0;\n var stems = 0;\n function moveTo(x, y) {\n cmds.push({\n cmd: 'moveTo',\n args: [x, y]\n });\n }\n function lineTo(x, y) {\n cmds.push({\n cmd: 'lineTo',\n args: [x, y]\n });\n }\n function bezierCurveTo(x1, y1, x2, y2, x, y) {\n cmds.push({\n cmd: 'bezierCurveTo',\n args: [x1, y1, x2, y2, x, y]\n });\n }\n function parse(code) {\n var i = 0;\n while (i < code.length) {\n var stackClean = false;\n var v = code[i++];\n var xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n switch (v) {\n case 1:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 3:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 4:\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 5:\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 6:\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 7:\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n x += stack.shift();\n lineTo(x, y);\n }\n break;\n case 8:\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 10:\n n = stack.pop() + font.subrsBias;\n subrCode = font.subrs[n];\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 11:\n return;\n case 12:\n v = code[i++];\n switch (v) {\n case 34:\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y1 = y + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y, xb, y1, x, y1);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y, x, y);\n break;\n case 35:\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n stack.pop();\n break;\n case 36:\n xa = x + stack.shift();\n y1 = y + stack.shift();\n xb = xa + stack.shift();\n y2 = y1 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y2, x, y2);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y3 = y2 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y2, xb, y3, x, y);\n break;\n case 37:\n var x0 = x,\n y0 = y;\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb;\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n default:\n throw new _util.FormatError('unknown operator: 12 ' + v);\n }\n break;\n case 14:\n if (stack.length >= 4) {\n var achar = stack.pop();\n var bchar = stack.pop();\n y = stack.pop();\n x = stack.pop();\n cmds.push({\n cmd: 'save'\n });\n cmds.push({\n cmd: 'translate',\n args: [x, y]\n });\n var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font);\n cmds.push({\n cmd: 'restore'\n });\n cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font);\n }\n return;\n case 18:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 19:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n case 20:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n case 21:\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 22:\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 23:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 24:\n while (stack.length > 2) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n case 25:\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n case 26:\n if (stack.length % 2) {\n x += stack.shift();\n }\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 27:\n if (stack.length % 2) {\n y += stack.shift();\n }\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb;\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 28:\n stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);\n i += 2;\n break;\n case 29:\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 30:\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 31:\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n default:\n if (v < 32) {\n throw new _util.FormatError('unknown operator: ' + v);\n }\n if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n stack.push((v - 247) * 256 + code[i++] + 108);\n } else if (v < 255) {\n stack.push(-(v - 251) * 256 - code[i++] - 108);\n } else {\n stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536);\n i += 4;\n }\n break;\n }\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n parse(code);\n }\n var noop = '';\n function CompiledFont(fontMatrix) {\n this.compiledGlyphs = Object.create(null);\n this.compiledCharCodeToGlyphId = Object.create(null);\n this.fontMatrix = fontMatrix;\n }\n CompiledFont.prototype = {\n getPathJs: function getPathJs(unicode) {\n var cmap = lookupCmap(this.cmap, unicode);\n var fn = this.compiledGlyphs[cmap.glyphId];\n if (!fn) {\n fn = this.compileGlyph(this.glyphs[cmap.glyphId]);\n this.compiledGlyphs[cmap.glyphId] = fn;\n }\n if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) {\n this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId;\n }\n return fn;\n },\n compileGlyph: function compileGlyph(code) {\n if (!code || code.length === 0 || code[0] === 14) {\n return noop;\n }\n var cmds = [];\n cmds.push({\n cmd: 'save'\n });\n cmds.push({\n cmd: 'transform',\n args: this.fontMatrix.slice()\n });\n cmds.push({\n cmd: 'scale',\n args: ['size', '-size']\n });\n this.compileGlyphImpl(code, cmds);\n cmds.push({\n cmd: 'restore'\n });\n return cmds;\n },\n compileGlyphImpl: function compileGlyphImpl() {\n throw new Error('Children classes should implement this.');\n },\n hasBuiltPath: function hasBuiltPath(unicode) {\n var cmap = lookupCmap(this.cmap, unicode);\n return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined;\n }\n };\n function TrueTypeCompiled(glyphs, cmap, fontMatrix) {\n fontMatrix = fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0];\n CompiledFont.call(this, fontMatrix);\n this.glyphs = glyphs;\n this.cmap = cmap;\n }\n _util.Util.inherit(TrueTypeCompiled, CompiledFont, {\n compileGlyphImpl: function compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\n });\n function Type2Compiled(cffInfo, cmap, fontMatrix, glyphNameMap) {\n fontMatrix = fontMatrix || [0.001, 0, 0, 0.001, 0, 0];\n CompiledFont.call(this, fontMatrix);\n this.glyphs = cffInfo.glyphs;\n this.gsubrs = cffInfo.gsubrs || [];\n this.subrs = cffInfo.subrs || [];\n this.cmap = cmap;\n this.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)();\n this.gsubrsBias = this.gsubrs.length < 1240 ? 107 : this.gsubrs.length < 33900 ? 1131 : 32768;\n this.subrsBias = this.subrs.length < 1240 ? 107 : this.subrs.length < 33900 ? 1131 : 32768;\n }\n _util.Util.inherit(Type2Compiled, CompiledFont, {\n compileGlyphImpl: function compileGlyphImpl(code, cmds) {\n compileCharString(code, cmds, this);\n }\n });\n return {\n create: function FontRendererFactory_create(font, seacAnalysisEnabled) {\n var data = new Uint8Array(font.data);\n var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n var numTables = getUshort(data, 4);\n for (var i = 0, p = 12; i < numTables; i++, p += 16) {\n var tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n var offset = getLong(data, p + 8);\n var length = getLong(data, p + 12);\n switch (tag) {\n case 'cmap':\n cmap = parseCmap(data, offset, offset + length);\n break;\n case 'glyf':\n glyf = data.subarray(offset, offset + length);\n break;\n case 'loca':\n loca = data.subarray(offset, offset + length);\n break;\n case 'head':\n unitsPerEm = getUshort(data, offset + 18);\n indexToLocFormat = getUshort(data, offset + 50);\n break;\n case 'CFF ':\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n if (glyf) {\n var fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n }\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n };\n }();\n exports.FontRendererFactory = FontRendererFactory;\n\n /***/\n }, /* 93 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.getFontType = exports.ProblematicCharRanges = exports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.PRIVATE_USE_OFFSET_END = exports.PRIVATE_USE_OFFSET_START = exports.SEAC_ANALYSIS_ENABLED = undefined;\n var _util = __w_pdfjs_require__(0);\n var _cff_parser = __w_pdfjs_require__(53);\n var _glyphlist = __w_pdfjs_require__(33);\n var _encodings = __w_pdfjs_require__(16);\n var _standard_fonts = __w_pdfjs_require__(59);\n var _unicode = __w_pdfjs_require__(60);\n var _font_renderer = __w_pdfjs_require__(92);\n var _stream = __w_pdfjs_require__(3);\n var _type1_parser = __w_pdfjs_require__(102);\n var PRIVATE_USE_OFFSET_START = 0xE000;\n var PRIVATE_USE_OFFSET_END = 0xF8FF;\n var SKIP_PRIVATE_USE_RANGE_F000_TO_F01F = false;\n var PDF_GLYPH_SPACE_UNITS = 1000;\n var SEAC_ANALYSIS_ENABLED = false;\n var FontFlags = {\n FixedPitch: 1,\n Serif: 2,\n Symbolic: 4,\n Script: 8,\n Nonsymbolic: 32,\n Italic: 64,\n AllCap: 65536,\n SmallCap: 131072,\n ForceBold: 262144\n };\n var MacStandardGlyphOrdering = ['.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', 'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', 'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter', 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', 'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'];\n function adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n var scale = 0.001 / properties.fontMatrix[0];\n var glyphsWidths = properties.widths;\n for (var glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n properties.defaultWidth *= scale;\n }\n function adjustToUnicode(properties, builtInEncoding) {\n if (properties.hasIncludedToUnicodeMap) {\n return;\n }\n if (properties.hasEncoding) {\n return;\n }\n if (builtInEncoding === properties.defaultEncoding) {\n return;\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n var toUnicode = [],\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n for (var charCode in builtInEncoding) {\n var glyphName = builtInEncoding[charCode];\n var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n properties.toUnicode.amend(toUnicode);\n }\n function getFontType(type, subtype) {\n switch (type) {\n case 'Type1':\n return subtype === 'Type1C' ? _util.FontType.TYPE1C : _util.FontType.TYPE1;\n case 'CIDFontType0':\n return subtype === 'CIDFontType0C' ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0;\n case 'OpenType':\n return _util.FontType.OPENTYPE;\n case 'TrueType':\n return _util.FontType.TRUETYPE;\n case 'CIDFontType2':\n return _util.FontType.CIDFONTTYPE2;\n case 'MMType1':\n return _util.FontType.MMTYPE1;\n case 'Type0':\n return _util.FontType.TYPE0;\n default:\n return _util.FontType.UNKNOWN;\n }\n }\n function recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n var unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap);\n if (unicode !== -1) {\n for (var key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n (0, _util.info)('Unable to recover a standard glyph name for: ' + name);\n return name;\n }\n var Glyph = function GlyphClosure() {\n function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n this.fontChar = fontChar;\n this.unicode = unicode;\n this.accent = accent;\n this.width = width;\n this.vmetric = vmetric;\n this.operatorListId = operatorListId;\n this.isSpace = isSpace;\n this.isInFont = isInFont;\n }\n Glyph.prototype.matchesForCache = function (fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n return this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont;\n };\n return Glyph;\n }();\n var ToUnicodeMap = function ToUnicodeMapClosure() {\n function ToUnicodeMap(cmap) {\n this._map = cmap;\n }\n ToUnicodeMap.prototype = {\n get length() {\n return this._map.length;\n },\n forEach: function forEach(callback) {\n for (var charCode in this._map) {\n callback(charCode, this._map[charCode].charCodeAt(0));\n }\n },\n has: function has(i) {\n return this._map[i] !== undefined;\n },\n get: function get(i) {\n return this._map[i];\n },\n charCodeOf: function charCodeOf(value) {\n var map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (var charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n },\n amend: function amend(map) {\n for (var charCode in map) {\n this._map[charCode] = map[charCode];\n }\n }\n };\n return ToUnicodeMap;\n }();\n var IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() {\n function IdentityToUnicodeMap(firstChar, lastChar) {\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n }\n IdentityToUnicodeMap.prototype = {\n get length() {\n return this.lastChar + 1 - this.firstChar;\n },\n forEach: function forEach(callback) {\n for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n callback(i, i);\n }\n },\n has: function has(i) {\n return this.firstChar <= i && i <= this.lastChar;\n },\n get: function get(i) {\n if (this.firstChar <= i && i <= this.lastChar) {\n return String.fromCharCode(i);\n }\n return undefined;\n },\n charCodeOf: function charCodeOf(v) {\n return (0, _util.isInt)(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n },\n amend: function amend(map) {\n throw new Error('Should not call amend()');\n }\n };\n return IdentityToUnicodeMap;\n }();\n var OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() {\n function writeInt16(dest, offset, num) {\n dest[offset] = num >> 8 & 0xFF;\n dest[offset + 1] = num & 0xFF;\n }\n function writeInt32(dest, offset, num) {\n dest[offset] = num >> 24 & 0xFF;\n dest[offset + 1] = num >> 16 & 0xFF;\n dest[offset + 2] = num >> 8 & 0xFF;\n dest[offset + 3] = num & 0xFF;\n }\n function writeData(dest, offset, data) {\n var i, ii;\n if (data instanceof Uint8Array) {\n dest.set(data, offset);\n } else if (typeof data === 'string') {\n for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data.charCodeAt(i) & 0xFF;\n }\n } else {\n for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data[i] & 0xFF;\n }\n }\n }\n function OpenTypeFileBuilder(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) {\n var maxPower2 = 1,\n log2 = 0;\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\n var searchRange = maxPower2 * entrySize;\n return {\n range: searchRange,\n entry: log2,\n rangeShift: entrySize * entriesCount - searchRange\n };\n };\n var OTF_HEADER_SIZE = 12;\n var OTF_TABLE_ENTRY_SIZE = 16;\n OpenTypeFileBuilder.prototype = {\n toArray: function OpenTypeFileBuilder_toArray() {\n var sfnt = this.sfnt;\n var tables = this.tables;\n var tablesNames = Object.keys(tables);\n tablesNames.sort();\n var numTables = tablesNames.length;\n var i, j, jj, table, tableName;\n var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n var tableOffsets = [offset];\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n var paddedLength = (table.length + 3 & ~3) >>> 0;\n offset += paddedLength;\n tableOffsets.push(offset);\n }\n var file = new Uint8Array(offset);\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n if (sfnt === 'true') {\n sfnt = (0, _util.string32)(0x00010000);\n }\n file[0] = sfnt.charCodeAt(0) & 0xFF;\n file[1] = sfnt.charCodeAt(1) & 0xFF;\n file[2] = sfnt.charCodeAt(2) & 0xFF;\n file[3] = sfnt.charCodeAt(3) & 0xFF;\n writeInt16(file, 4, numTables);\n var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n writeInt16(file, 6, searchParams.range);\n writeInt16(file, 8, searchParams.entry);\n writeInt16(file, 10, searchParams.rangeShift);\n offset = OTF_HEADER_SIZE;\n for (i = 0; i < numTables; i++) {\n tableName = tablesNames[i];\n file[offset] = tableName.charCodeAt(0) & 0xFF;\n file[offset + 1] = tableName.charCodeAt(1) & 0xFF;\n file[offset + 2] = tableName.charCodeAt(2) & 0xFF;\n file[offset + 3] = tableName.charCodeAt(3) & 0xFF;\n var checksum = 0;\n for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n var quad = (0, _util.readUint32)(file, j);\n checksum = checksum + quad >>> 0;\n }\n writeInt32(file, offset + 4, checksum);\n writeInt32(file, offset + 8, tableOffsets[i]);\n writeInt32(file, offset + 12, tables[tableName].length);\n offset += OTF_TABLE_ENTRY_SIZE;\n }\n return file;\n },\n addTable: function OpenTypeFileBuilder_addTable(tag, data) {\n if (tag in this.tables) {\n throw new Error('Table ' + tag + ' already exists');\n }\n this.tables[tag] = data;\n }\n };\n return OpenTypeFileBuilder;\n }();\n var ProblematicCharRanges = new Int32Array([0x0000, 0x0020, 0x007F, 0x00A1, 0x00AD, 0x00AE, 0x0600, 0x0780, 0x08A0, 0x10A0, 0x1780, 0x1800, 0x1C00, 0x1C50, 0x2000, 0x2010, 0x2011, 0x2012, 0x2028, 0x2030, 0x205F, 0x2070, 0x25CC, 0x25CD, 0x3000, 0x3001, 0x3164, 0x3165, 0xAA60, 0xAA80, 0xFFF0, 0x10000]);\n var Font = function FontClosure() {\n function Font(name, file, properties) {\n var charCode;\n this.name = name;\n this.loadedName = properties.loadedName;\n this.isType3Font = properties.isType3Font;\n this.sizes = [];\n this.missingFile = false;\n this.glyphCache = Object.create(null);\n this.isSerifFont = !!(properties.flags & FontFlags.Serif);\n this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n var type = properties.type;\n var subtype = properties.subtype;\n this.type = type;\n this.subtype = subtype;\n this.fallbackName = this.isMonospace ? 'monospace' : this.isSerifFont ? 'serif' : 'sans-serif';\n this.differences = properties.differences;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.composite = properties.composite;\n this.wideChars = properties.wideChars;\n this.cMap = properties.cMap;\n this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n this.fontMatrix = properties.fontMatrix;\n this.bbox = properties.bbox;\n this.defaultEncoding = properties.defaultEncoding;\n this.toUnicode = properties.toUnicode;\n this.toFontChar = [];\n if (properties.type === 'Type3') {\n for (charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n this.fontType = _util.FontType.TYPE3;\n return;\n }\n this.cidEncoding = properties.cidEncoding;\n this.vertical = properties.vertical;\n if (this.vertical) {\n this.vmetrics = properties.vmetrics;\n this.defaultVMetrics = properties.defaultVMetrics;\n }\n if (!file || file.isEmpty) {\n if (file) {\n (0, _util.warn)('Font file is empty in \"' + name + '\" (' + this.loadedName + ')');\n }\n this.fallbackToSystemFont();\n return;\n }\n if (subtype === 'Type1C') {\n if (type !== 'Type1' && type !== 'MMType1') {\n if (isTrueTypeFile(file)) {\n subtype = 'TrueType';\n } else {\n type = 'Type1';\n }\n } else if (isOpenTypeFile(file)) {\n subtype = 'OpenType';\n }\n }\n if (subtype === 'CIDFontType0C' && type !== 'CIDFontType0') {\n type = 'CIDFontType0';\n }\n if (type === 'CIDFontType0') {\n if (isType1File(file)) {\n subtype = 'CIDFontType0';\n } else if (isOpenTypeFile(file)) {\n subtype = 'OpenType';\n } else {\n subtype = 'CIDFontType0C';\n }\n }\n if (subtype === 'OpenType' && type !== 'OpenType') {\n type = 'OpenType';\n }\n try {\n var data;\n switch (type) {\n case 'MMType1':\n (0, _util.info)('MMType1 font (' + name + '), falling back to Type1.');\n case 'Type1':\n case 'CIDFontType0':\n this.mimetype = 'font/opentype';\n var cff = subtype === 'Type1C' || subtype === 'CIDFontType0C' ? new CFFFont(file, properties) : new Type1Font(name, file, properties);\n adjustWidths(properties);\n data = this.convert(name, cff, properties);\n break;\n case 'OpenType':\n case 'TrueType':\n case 'CIDFontType2':\n this.mimetype = 'font/opentype';\n data = this.checkAndRepair(name, file, properties);\n if (this.isOpenType) {\n adjustWidths(properties);\n type = 'OpenType';\n }\n break;\n default:\n throw new _util.FormatError('Font ' + type + ' is not supported');\n }\n } catch (e) {\n if (!(e instanceof _util.FormatError)) {\n throw e;\n }\n (0, _util.warn)(e);\n this.fallbackToSystemFont();\n return;\n }\n this.data = data;\n this.fontType = getFontType(type, subtype);\n this.fontMatrix = properties.fontMatrix;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.toUnicode = properties.toUnicode;\n this.encoding = properties.baseEncoding;\n this.seacMap = properties.seacMap;\n this.loading = true;\n }\n Font.getFontID = function () {\n var ID = 1;\n return function Font_getFontID() {\n return String(ID++);\n };\n }();\n function int16(b0, b1) {\n return (b0 << 8) + b1;\n }\n function signedInt16(b0, b1) {\n var value = (b0 << 8) + b1;\n return value & 1 << 15 ? value - 0x10000 : value;\n }\n function int32(b0, b1, b2, b3) {\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n function string16(value) {\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n function safeString16(value) {\n value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value;\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n function isTrueTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _util.readUint32)(header, 0) === 0x00010000;\n }\n function isOpenTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _util.bytesToString)(header) === 'OTTO';\n }\n function isType1File(file) {\n var header = file.peekBytes(2);\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n return false;\n }\n function buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n var toFontChar = [],\n unicode;\n for (var i = 0, ii = encoding.length; i < ii; i++) {\n unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n for (var charCode in differences) {\n unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n return toFontChar;\n }\n function isProblematicUnicodeLocation(code) {\n var i = 0,\n j = ProblematicCharRanges.length - 1;\n while (i < j) {\n var c = i + j + 1 >> 1;\n if (code < ProblematicCharRanges[c]) {\n j = c - 1;\n } else {\n i = c;\n }\n }\n return !(i & 1);\n }\n function adjustMapping(charCodeToGlyphId, properties, missingGlyphs) {\n var toUnicode = properties.toUnicode;\n var isSymbolic = !!(properties.flags & FontFlags.Symbolic);\n var isIdentityUnicode = properties.toUnicode instanceof IdentityToUnicodeMap;\n var newMap = Object.create(null);\n var toFontChar = [];\n var usedFontCharCodes = [];\n var nextAvailableFontCharCode = PRIVATE_USE_OFFSET_START;\n for (var originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n var glyphId = charCodeToGlyphId[originalCharCode];\n if (missingGlyphs[glyphId]) {\n continue;\n }\n var fontCharCode = originalCharCode;\n var hasUnicodeValue = false;\n if (!isIdentityUnicode && toUnicode.has(originalCharCode)) {\n hasUnicodeValue = true;\n var unicode = toUnicode.get(fontCharCode);\n if (unicode.length === 1) {\n fontCharCode = unicode.charCodeAt(0);\n }\n }\n if (usedFontCharCodes[fontCharCode] !== undefined || isProblematicUnicodeLocation(fontCharCode) || isSymbolic && !hasUnicodeValue) {\n do {\n if (nextAvailableFontCharCode > PRIVATE_USE_OFFSET_END) {\n (0, _util.warn)('Ran out of space in font private use area.');\n break;\n }\n fontCharCode = nextAvailableFontCharCode++;\n if (SKIP_PRIVATE_USE_RANGE_F000_TO_F01F && fontCharCode === 0xF000) {\n fontCharCode = 0xF020;\n nextAvailableFontCharCode = fontCharCode + 1;\n }\n } while (usedFontCharCodes[fontCharCode] !== undefined);\n }\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n usedFontCharCodes[fontCharCode] = true;\n }\n return {\n toFontChar: toFontChar,\n charCodeToGlyphId: newMap,\n nextAvailableFontCharCode: nextAvailableFontCharCode\n };\n }\n function getRanges(glyphs, numGlyphs) {\n var codes = [];\n for (var charCode in glyphs) {\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n codes.push({\n fontCharCode: charCode | 0,\n glyphId: glyphs[charCode]\n });\n }\n if (codes.length === 0) {\n codes.push({\n fontCharCode: 0,\n glyphId: 0\n });\n }\n codes.sort(function fontGetRangesSort(a, b) {\n return a.fontCharCode - b.fontCharCode;\n });\n var ranges = [];\n var length = codes.length;\n for (var n = 0; n < length;) {\n var start = codes[n].fontCharCode;\n var codeIndices = [codes[n].glyphId];\n ++n;\n var end = start;\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n if (end === 0xFFFF) {\n break;\n }\n }\n ranges.push([start, end, codeIndices]);\n }\n return ranges;\n }\n function createCmapTable(glyphs, numGlyphs) {\n var ranges = getRanges(glyphs, numGlyphs);\n var numTables = ranges[ranges.length - 1][1] > 0xFFFF ? 2 : 1;\n var cmap = '\\x00\\x00' + string16(numTables) + '\\x00\\x03' + '\\x00\\x01' + (0, _util.string32)(4 + numTables * 8);\n var i, ii, j, jj;\n for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xFFFF) {\n break;\n }\n }\n var bmpLength = i + 1;\n if (ranges[i][0] < 0xFFFF && ranges[i][1] === 0xFFFF) {\n ranges[i][1] = 0xFFFE;\n }\n var trailingRangesCount = ranges[i][1] < 0xFFFF ? 1 : 0;\n var segCount = bmpLength + trailingRangesCount;\n var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n var startCount = '';\n var endCount = '';\n var idDeltas = '';\n var idRangeOffsets = '';\n var glyphsIds = '';\n var bias = 0;\n var range, start, end, codes;\n for (i = 0, ii = bmpLength; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n end = range[1];\n startCount += string16(start);\n endCount += string16(end);\n codes = range[2];\n var contiguous = true;\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n contiguous = false;\n break;\n }\n }\n if (!contiguous) {\n var offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\n idDeltas += string16(0);\n idRangeOffsets += string16(offset);\n for (j = 0, jj = codes.length; j < jj; ++j) {\n glyphsIds += string16(codes[j]);\n }\n } else {\n var startCode = codes[0];\n idDeltas += string16(startCode - start & 0xFFFF);\n idRangeOffsets += string16(0);\n }\n }\n if (trailingRangesCount > 0) {\n endCount += '\\xFF\\xFF';\n startCount += '\\xFF\\xFF';\n idDeltas += '\\x00\\x01';\n idRangeOffsets += '\\x00\\x00';\n }\n var format314 = '\\x00\\x00' + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + '\\x00\\x00' + startCount + idDeltas + idRangeOffsets + glyphsIds;\n var format31012 = '';\n var header31012 = '';\n if (numTables > 1) {\n cmap += '\\x00\\x03' + '\\x00\\x0A' + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length);\n format31012 = '';\n for (i = 0, ii = ranges.length; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n codes = range[2];\n var code = codes[0];\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n end = range[0] + j - 1;\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code);\n start = end + 1;\n code = codes[j];\n }\n }\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code);\n }\n header31012 = '\\x00\\x0C' + '\\x00\\x00' + (0, _util.string32)(format31012.length + 16) + '\\x00\\x00\\x00\\x00' + (0, _util.string32)(format31012.length / 12);\n }\n return cmap + '\\x00\\x04' + string16(format314.length + 4) + format314 + header31012 + format31012;\n }\n function validateOS2Table(os2) {\n var stream = new _stream.Stream(os2.data);\n var version = stream.getUint16();\n stream.getBytes(60);\n var selection = stream.getUint16();\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n var firstChar = stream.getUint16();\n var lastChar = stream.getUint16();\n if (firstChar > lastChar) {\n return false;\n }\n stream.getBytes(6);\n var usWinAscent = stream.getUint16();\n if (usWinAscent === 0) {\n return false;\n }\n os2.data[8] = os2.data[9] = 0;\n return true;\n }\n function createOS2Table(properties, charstrings, override) {\n override = override || {\n unitsPerEm: 0,\n yMax: 0,\n yMin: 0,\n ascent: 0,\n descent: 0\n };\n var ulUnicodeRange1 = 0;\n var ulUnicodeRange2 = 0;\n var ulUnicodeRange3 = 0;\n var ulUnicodeRange4 = 0;\n var firstCharIndex = null;\n var lastCharIndex = 0;\n if (charstrings) {\n for (var code in charstrings) {\n code |= 0;\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n var position = (0, _unicode.getUnicodeRangeFor)(code);\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << position - 32;\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << position - 64;\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << position - 96;\n } else {\n throw new _util.FormatError('Unicode ranges Bits > 123 are reserved for internal usage');\n }\n }\n } else {\n firstCharIndex = 0;\n lastCharIndex = 255;\n }\n var bbox = properties.bbox || [0, 0, 0, 0];\n var unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n var scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n var typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n var typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1]));\n if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent;\n }\n var winAscent = override.yMax || typoAscent;\n var winDescent = -override.yMin || -typoDescent;\n return '\\x00\\x03' + '\\x02\\x24' + '\\x01\\xF4' + '\\x00\\x05' + '\\x00\\x00' + '\\x02\\x8A' + '\\x02\\xBB' + '\\x00\\x00' + '\\x00\\x8C' + '\\x02\\x8A' + '\\x02\\xBB' + '\\x00\\x00' + '\\x01\\xDF' + '\\x00\\x31' + '\\x01\\x02' + '\\x00\\x00' + '\\x00\\x00\\x06' + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + '\\x00\\x00\\x00\\x00\\x00\\x00' + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.string32)(ulUnicodeRange4) + '\\x2A\\x32\\x31\\x2A' + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + '\\x00\\x64' + string16(winAscent) + string16(winDescent) + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + '\\x00\\x03';\n }\n function createPostTable(properties) {\n var angle = Math.floor(properties.italicAngle * Math.pow(2, 16));\n return '\\x00\\x03\\x00\\x00' + (0, _util.string32)(angle) + '\\x00\\x00' + '\\x00\\x00' + (0, _util.string32)(properties.fixedPitch) + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00';\n }\n function createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []];\n }\n var strings = [proto[0][0] || 'Original licence', proto[0][1] || name, proto[0][2] || 'Unknown', proto[0][3] || 'uniqueID', proto[0][4] || name, proto[0][5] || 'Version 0.11', proto[0][6] || '', proto[0][7] || 'Unknown', proto[0][8] || 'Unknown', proto[0][9] || 'Unknown'];\n var stringsUnicode = [];\n var i, ii, j, jj, str;\n for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n var strBufUnicode = [];\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\n stringsUnicode.push(strBufUnicode.join(''));\n }\n var names = [strings, stringsUnicode];\n var platforms = ['\\x00\\x01', '\\x00\\x03'];\n var encodings = ['\\x00\\x00', '\\x00\\x01'];\n var languages = ['\\x00\\x00', '\\x04\\x09'];\n var namesRecordCount = strings.length * platforms.length;\n var nameTable = '\\x00\\x00' + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6);\n var strOffset = 0;\n for (i = 0, ii = platforms.length; i < ii; i++) {\n var strs = names[i];\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n var nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset);\n nameTable += nameRecord;\n strOffset += str.length;\n }\n }\n nameTable += strings.join('') + stringsUnicode.join('');\n return nameTable;\n }\n Font.prototype = {\n name: null,\n font: null,\n mimetype: null,\n encoding: null,\n get renderer() {\n var renderer = _font_renderer.FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n return (0, _util.shadow)(this, 'renderer', renderer);\n },\n exportData: function Font_exportData() {\n var data = {};\n for (var i in this) {\n if (this.hasOwnProperty(i)) {\n data[i] = this[i];\n }\n }\n return data;\n },\n fallbackToSystemFont: function Font_fallbackToSystemFont() {\n var _this = this;\n this.missingFile = true;\n var charCode, unicode;\n var name = this.name;\n var type = this.type;\n var subtype = this.subtype;\n var fontName = name.replace(/[,_]/g, '-');\n var stdFontMap = (0, _standard_fonts.getStdFontMap)(),\n nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)();\n var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n this.bold = fontName.search(/bold/gi) !== -1;\n this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n this.black = name.search(/Black/g) !== -1;\n this.remeasure = Object.keys(this.widths).length > 0;\n if (isStandardFont && type === 'CIDFontType2' && this.cidEncoding.indexOf('Identity-') === 0) {\n var GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n var map = [];\n for (charCode in GlyphMapForStandardFonts) {\n map[+charCode] = GlyphMapForStandardFonts[charCode];\n }\n if (/Arial-?Black/i.test(name)) {\n var SupplementalGlyphMapForArialBlack = (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)();\n for (charCode in SupplementalGlyphMapForArialBlack) {\n map[+charCode] = SupplementalGlyphMapForArialBlack[charCode];\n }\n }\n var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap;\n if (!isIdentityUnicode) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n } else if (/Dingbats/i.test(fontName)) {\n if (/Wingdings/i.test(name)) {\n (0, _util.warn)('Non-embedded Wingdings font, falling back to ZapfDingbats.');\n }\n this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences);\n } else if (isStandardFont) {\n this.toFontChar = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n } else {\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n if (!_this.composite) {\n var glyphName = _this.differences[charCode] || _this.defaultEncoding[charCode];\n unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n _this.toFontChar[charCode] = unicodeCharCode;\n });\n }\n this.loadedName = fontName.split('-')[0];\n this.loading = false;\n this.fontType = getFontType(type, subtype);\n },\n checkAndRepair: function Font_checkAndRepair(name, font, properties) {\n function readTableEntry(file) {\n var tag = (0, _util.bytesToString)(file.getBytes(4));\n var checksum = file.getInt32() >>> 0;\n var offset = file.getInt32() >>> 0;\n var length = file.getInt32() >>> 0;\n var previousPosition = file.pos;\n file.pos = file.start ? file.start : 0;\n file.skip(offset);\n var data = file.getBytes(length);\n file.pos = previousPosition;\n if (tag === 'head') {\n data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20;\n }\n return {\n tag: tag,\n checksum: checksum,\n length: length,\n offset: offset,\n data: data\n };\n }\n function readOpenTypeHeader(ttf) {\n return {\n version: (0, _util.bytesToString)(ttf.getBytes(4)),\n numTables: ttf.getUint16(),\n searchRange: ttf.getUint16(),\n entrySelector: ttf.getUint16(),\n rangeShift: ttf.getUint16()\n };\n }\n function readCmapTable(cmap, font, isSymbolicFont, hasEncoding) {\n if (!cmap) {\n (0, _util.warn)('No cmap table available.');\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n var segment;\n var start = (font.start ? font.start : 0) + cmap.offset;\n font.pos = start;\n font.getUint16();\n var numTables = font.getUint16();\n var potentialTable;\n var canBreak = false;\n for (var i = 0; i < numTables; i++) {\n var platformId = font.getUint16();\n var encodingId = font.getUint16();\n var offset = font.getInt32() >>> 0;\n var useTable = false;\n if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) {\n continue;\n }\n if (platformId === 0 && encodingId === 0) {\n useTable = true;\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n useTable = true;\n if (!isSymbolicFont) {\n canBreak = true;\n }\n } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n useTable = true;\n canBreak = true;\n }\n if (useTable) {\n potentialTable = {\n platformId: platformId,\n encodingId: encodingId,\n offset: offset\n };\n }\n if (canBreak) {\n break;\n }\n }\n if (potentialTable) {\n font.pos = start + potentialTable.offset;\n }\n if (!potentialTable || font.peekByte() === -1) {\n (0, _util.warn)('Could not find a preferred cmap table.');\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n var format = font.getUint16();\n font.getUint16();\n font.getUint16();\n var hasShortCmap = false;\n var mappings = [];\n var j, glyphId;\n if (format === 0) {\n for (j = 0; j < 256; j++) {\n var index = font.getByte();\n if (!index) {\n continue;\n }\n mappings.push({\n charCode: j,\n glyphId: index\n });\n }\n hasShortCmap = true;\n } else if (format === 4) {\n var segCount = font.getUint16() >> 1;\n font.getBytes(6);\n var segIndex,\n segments = [];\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({\n end: font.getUint16()\n });\n }\n font.getUint16();\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].start = font.getUint16();\n }\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].delta = font.getUint16();\n }\n var offsetsCount = 0;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n var rangeOffset = font.getUint16();\n if (!rangeOffset) {\n segment.offsetIndex = -1;\n continue;\n }\n var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n segment.offsetIndex = offsetIndex;\n offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1);\n }\n var offsets = [];\n for (j = 0; j < offsetsCount; j++) {\n offsets.push(font.getUint16());\n }\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n start = segment.start;\n var end = segment.end;\n var delta = segment.delta;\n offsetIndex = segment.offsetIndex;\n for (j = start; j <= end; j++) {\n if (j === 0xFFFF) {\n continue;\n }\n glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n glyphId = glyphId + delta & 0xFFFF;\n mappings.push({\n charCode: j,\n glyphId: glyphId\n });\n }\n }\n } else if (format === 6) {\n var firstCode = font.getUint16();\n var entryCount = font.getUint16();\n for (j = 0; j < entryCount; j++) {\n glyphId = font.getUint16();\n var charCode = firstCode + j;\n mappings.push({\n charCode: charCode,\n glyphId: glyphId\n });\n }\n } else {\n (0, _util.warn)('cmap table has unsupported format: ' + format);\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\n for (i = 1; i < mappings.length; i++) {\n if (mappings[i - 1].charCode === mappings[i].charCode) {\n mappings.splice(i, 1);\n i--;\n }\n }\n return {\n platformId: potentialTable.platformId,\n encodingId: potentialTable.encodingId,\n mappings: mappings,\n hasShortCmap: hasShortCmap\n };\n }\n function sanitizeMetrics(font, header, metrics, numGlyphs) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n return;\n }\n font.pos = (font.start ? font.start : 0) + header.offset;\n font.pos += header.length - 2;\n var numOfMetrics = font.getUint16();\n if (numOfMetrics > numGlyphs) {\n (0, _util.info)('The numOfMetrics (' + numOfMetrics + ') should not be ' + 'greater than the numGlyphs (' + numGlyphs + ')');\n numOfMetrics = numGlyphs;\n header.data[34] = (numOfMetrics & 0xff00) >> 8;\n header.data[35] = numOfMetrics & 0x00ff;\n }\n var numOfSidebearings = numGlyphs - numOfMetrics;\n var numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n if (numMissing > 0) {\n var entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n metrics.data = entries;\n }\n }\n function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n if (sourceEnd - sourceStart <= 12) {\n return 0;\n }\n var glyf = source.subarray(sourceStart, sourceEnd);\n var contoursCount = glyf[0] << 8 | glyf[1];\n if (contoursCount & 0x8000) {\n dest.set(glyf, destStart);\n return glyf.length;\n }\n var i,\n j = 10,\n flagsCount = 0;\n for (i = 0; i < contoursCount; i++) {\n var endPoint = glyf[j] << 8 | glyf[j + 1];\n flagsCount = endPoint + 1;\n j += 2;\n }\n var instructionsStart = j;\n var instructionsLength = glyf[j] << 8 | glyf[j + 1];\n j += 2 + instructionsLength;\n var instructionsEnd = j;\n var coordinatesLength = 0;\n for (i = 0; i < flagsCount; i++) {\n var flag = glyf[j++];\n if (flag & 0xC0) {\n glyf[j - 1] = flag & 0x3F;\n }\n var xyLength = (flag & 2 ? 1 : flag & 16 ? 0 : 2) + (flag & 4 ? 1 : flag & 32 ? 0 : 2);\n coordinatesLength += xyLength;\n if (flag & 8) {\n var repeat = glyf[j++];\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n if (coordinatesLength === 0) {\n return 0;\n }\n var glyphDataLength = j + coordinatesLength;\n if (glyphDataLength > glyf.length) {\n return 0;\n }\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n glyphDataLength -= instructionsLength;\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n }\n return glyphDataLength;\n }\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n return glyphDataLength;\n }\n dest.set(glyf, destStart);\n return glyf.length;\n }\n function sanitizeHead(head, numGlyphs, locaLength) {\n var data = head.data;\n var version = int32(data[0], data[1], data[2], data[3]);\n if (version >> 16 !== 1) {\n (0, _util.info)('Attempting to fix invalid version in head table: ' + version);\n data[0] = 0;\n data[1] = 1;\n data[2] = 0;\n data[3] = 0;\n }\n var indexToLocFormat = int16(data[50], data[51]);\n if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n (0, _util.info)('Attempting to fix invalid indexToLocFormat in head table: ' + indexToLocFormat);\n var numGlyphsPlusOne = numGlyphs + 1;\n if (locaLength === numGlyphsPlusOne << 1) {\n data[50] = 0;\n data[51] = 0;\n } else if (locaLength === numGlyphsPlusOne << 2) {\n data[50] = 0;\n data[51] = 1;\n } else {\n throw new _util.FormatError('Could not fix indexToLocFormat: ' + indexToLocFormat);\n }\n }\n }\n function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry) {\n var itemSize, itemDecode, itemEncode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n };\n itemEncode = function fontItemEncodeLong(data, offset, value) {\n data[offset] = value >>> 24 & 0xFF;\n data[offset + 1] = value >> 16 & 0xFF;\n data[offset + 2] = value >> 8 & 0xFF;\n data[offset + 3] = value & 0xFF;\n };\n } else {\n itemSize = 2;\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = value >> 9 & 0xFF;\n data[offset + 1] = value >> 1 & 0xFF;\n };\n }\n var locaData = loca.data;\n var locaDataSize = itemSize * (1 + numGlyphs);\n if (locaData.length !== locaDataSize) {\n locaData = new Uint8Array(locaDataSize);\n locaData.set(loca.data.subarray(0, locaDataSize));\n loca.data = locaData;\n }\n var oldGlyfData = glyf.data;\n var oldGlyfDataLength = oldGlyfData.length;\n var newGlyfData = new Uint8Array(oldGlyfDataLength);\n var startOffset = itemDecode(locaData, 0);\n var writeOffset = 0;\n var missingGlyphData = Object.create(null);\n itemEncode(locaData, 0, writeOffset);\n var i, j;\n var locaCount = dupFirstEntry ? numGlyphs - 1 : numGlyphs;\n for (i = 0, j = itemSize; i < locaCount; i++, j += itemSize) {\n var endOffset = itemDecode(locaData, j);\n if (endOffset > oldGlyfDataLength && (oldGlyfDataLength + 3 & ~3) === endOffset) {\n endOffset = oldGlyfDataLength;\n }\n if (endOffset > oldGlyfDataLength) {\n startOffset = endOffset;\n }\n var newLength = sanitizeGlyph(oldGlyfData, startOffset, endOffset, newGlyfData, writeOffset, hintsValid);\n if (newLength === 0) {\n missingGlyphData[i] = true;\n }\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n startOffset = endOffset;\n }\n if (writeOffset === 0) {\n var simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n glyf.data = simpleGlyph;\n return missingGlyphData;\n }\n if (dupFirstEntry) {\n var firstEntryLength = itemDecode(locaData, itemSize);\n if (newGlyfData.length > firstEntryLength + writeOffset) {\n glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n } else {\n glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n glyf.data.set(newGlyfData.subarray(0, writeOffset));\n }\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\n return missingGlyphData;\n }\n function readPostScriptTable(post, properties, maxpNumGlyphs) {\n var start = (font.start ? font.start : 0) + post.offset;\n font.pos = start;\n var length = post.length,\n end = start + length;\n var version = font.getInt32();\n font.getBytes(28);\n var glyphNames;\n var valid = true;\n var i;\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n case 0x00020000:\n var numGlyphs = font.getUint16();\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n var glyphNameIndexes = [];\n for (i = 0; i < numGlyphs; ++i) {\n var index = font.getUint16();\n if (index >= 32768) {\n valid = false;\n break;\n }\n glyphNameIndexes.push(index);\n }\n if (!valid) {\n break;\n }\n var customNames = [];\n var strBuf = [];\n while (font.pos < end) {\n var stringLength = font.getByte();\n strBuf.length = stringLength;\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n customNames.push(strBuf.join(''));\n }\n glyphNames = [];\n for (i = 0; i < numGlyphs; ++i) {\n var j = glyphNameIndexes[i];\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n glyphNames.push(customNames[j - 258]);\n }\n break;\n case 0x00030000:\n break;\n default:\n (0, _util.warn)('Unknown/unsupported post table version ' + version);\n valid = false;\n if (properties.defaultEncoding) {\n glyphNames = properties.defaultEncoding;\n }\n break;\n }\n properties.glyphNames = glyphNames;\n return valid;\n }\n function readNameTable(nameTable) {\n var start = (font.start ? font.start : 0) + nameTable.offset;\n font.pos = start;\n var names = [[], []];\n var length = nameTable.length,\n end = start + length;\n var format = font.getUint16();\n var FORMAT_0_HEADER_LENGTH = 6;\n if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n return names;\n }\n var numRecords = font.getUint16();\n var stringsStart = font.getUint16();\n var records = [];\n var NAME_RECORD_LENGTH = 12;\n var i, ii;\n for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n var r = {\n platform: font.getUint16(),\n encoding: font.getUint16(),\n language: font.getUint16(),\n name: font.getUint16(),\n length: font.getUint16(),\n offset: font.getUint16()\n };\n if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) {\n records.push(r);\n }\n }\n for (i = 0, ii = records.length; i < ii; i++) {\n var record = records[i];\n if (record.length <= 0) {\n continue;\n }\n var pos = start + stringsStart + record.offset;\n if (pos + record.length > end) {\n continue;\n }\n font.pos = pos;\n var nameIndex = record.name;\n if (record.encoding) {\n var str = '';\n for (var j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = (0, _util.bytesToString)(font.getBytes(record.length));\n }\n }\n return names;\n }\n var TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n function sanitizeTTProgram(table, ttContext) {\n var data = table.data;\n var i = 0,\n j,\n n,\n b,\n funcId,\n pc,\n lastEndf = 0,\n lastDeff = 0;\n var stack = [];\n var callstack = [];\n var functionsCalled = [];\n var tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n var inFDEF = false,\n ifLevel = 0,\n inELSE = 0;\n for (var ii = data.length; i < ii;) {\n var op = data[i++];\n if (op === 0x40) {\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if (op === 0x41) {\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push(b << 8 | data[i++]);\n }\n }\n } else if ((op & 0xF8) === 0xB0) {\n n = op - 0xB0 + 1;\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if ((op & 0xF8) === 0xB8) {\n n = op - 0xB8 + 1;\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push(b << 8 | data[i++]);\n }\n }\n } else if (op === 0x2B && !tooComplexToFollowFunctions) {\n if (!inFDEF && !inELSE) {\n funcId = stack[stack.length - 1];\n ttContext.functionsUsed[funcId] = true;\n if (funcId in ttContext.functionsStackDeltas) {\n stack.length += ttContext.functionsStackDeltas[funcId];\n } else if (funcId in ttContext.functionsDefined && functionsCalled.indexOf(funcId) < 0) {\n callstack.push({\n data: data,\n i: i,\n stackTop: stack.length - 1\n });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n if (!pc) {\n (0, _util.warn)('TT: CALL non-existent function');\n ttContext.hintsValid = false;\n return;\n }\n data = pc.data;\n i = pc.i;\n }\n }\n } else if (op === 0x2C && !tooComplexToFollowFunctions) {\n if (inFDEF || inELSE) {\n (0, _util.warn)('TT: nested FDEFs not allowed');\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = {\n data: data,\n i: i\n };\n } else if (op === 0x2D) {\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n if (!pc) {\n (0, _util.warn)('TT: ENDF bad stack');\n ttContext.hintsValid = false;\n return;\n }\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n }\n } else if (op === 0x89) {\n if (inFDEF || inELSE) {\n (0, _util.warn)('TT: nested IDEFs not allowed');\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n lastDeff = i;\n } else if (op === 0x58) {\n ++ifLevel;\n } else if (op === 0x1B) {\n inELSE = ifLevel;\n } else if (op === 0x59) {\n if (inELSE === ifLevel) {\n inELSE = 0;\n }\n --ifLevel;\n } else if (op === 0x1C) {\n if (!inFDEF && !inELSE) {\n var offset = stack[stack.length - 1];\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n if (!inFDEF && !inELSE) {\n var stackDelta = op <= 0x8E ? TTOpsStackDeltas[op] : op >= 0xC0 && op <= 0xDF ? -1 : op >= 0xE0 ? -2 : 0;\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n while (stackDelta > 0) {\n stack.push(NaN);\n stackDelta--;\n }\n }\n }\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n var content = [data];\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n if (lastDeff > lastEndf) {\n (0, _util.warn)('TT: complementing a missing function tail');\n content.push(new Uint8Array([0x22, 0x2D]));\n }\n foldTTTable(table, content);\n }\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\n }\n if (ttContext.functionsDefined.length > maxFunctionDefs) {\n (0, _util.warn)('TT: more functions defined than expected');\n ttContext.hintsValid = false;\n return;\n }\n for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n if (j > maxFunctionDefs) {\n (0, _util.warn)('TT: invalid function id: ' + j);\n ttContext.hintsValid = false;\n return;\n }\n if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n (0, _util.warn)('TT: undefined function: ' + j);\n ttContext.hintsValid = false;\n return;\n }\n }\n }\n function foldTTTable(table, content) {\n if (content.length > 1) {\n var newLength = 0;\n var j, jj;\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n newLength = newLength + 3 & ~3;\n var result = new Uint8Array(newLength);\n var pos = 0;\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\n table.data = result;\n table.length = newLength;\n }\n }\n function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n var ttContext = {\n functionsDefined: [],\n functionsUsed: [],\n functionsStackDeltas: [],\n tooComplexToFollowFunctions: false,\n hintsValid: true\n };\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\n if (cvt && cvt.length & 1) {\n var cvtData = new Uint8Array(cvt.length + 1);\n cvtData.set(cvt.data);\n cvt.data = cvtData;\n }\n return ttContext.hintsValid;\n }\n font = new _stream.Stream(new Uint8Array(font.getBytes()));\n var VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF '];\n var header = readOpenTypeHeader(font);\n var numTables = header.numTables;\n var cff, cffFile;\n var tables = Object.create(null);\n tables['OS/2'] = null;\n tables['cmap'] = null;\n tables['head'] = null;\n tables['hhea'] = null;\n tables['hmtx'] = null;\n tables['maxp'] = null;\n tables['name'] = null;\n tables['post'] = null;\n var table;\n for (var i = 0; i < numTables; i++) {\n table = readTableEntry(font);\n if (VALID_TABLES.indexOf(table.tag) < 0) {\n continue;\n }\n if (table.length === 0) {\n continue;\n }\n tables[table.tag] = table;\n }\n var isTrueType = !tables['CFF '];\n if (!isTrueType) {\n if (header.version === 'OTTO' && !(properties.composite && properties.cidToGidMap) || !tables['head'] || !tables['hhea'] || !tables['maxp'] || !tables['post']) {\n cffFile = new _stream.Stream(tables['CFF '].data);\n cff = new CFFFont(cffFile, properties);\n adjustWidths(properties);\n return this.convert(name, cff, properties);\n }\n delete tables['glyf'];\n delete tables['loca'];\n delete tables['fpgm'];\n delete tables['prep'];\n delete tables['cvt '];\n this.isOpenType = true;\n } else {\n if (!tables['loca']) {\n throw new _util.FormatError('Required \"loca\" table is not found');\n }\n if (!tables['glyf']) {\n (0, _util.warn)('Required \"glyf\" table is not found -- trying to recover.');\n tables['glyf'] = {\n tag: 'glyf',\n data: new Uint8Array(0)\n };\n }\n this.isOpenType = false;\n }\n if (!tables['maxp']) {\n throw new _util.FormatError('Required \"maxp\" table is not found');\n }\n font.pos = (font.start || 0) + tables['maxp'].offset;\n var version = font.getInt32();\n var numGlyphs = font.getUint16();\n var maxFunctionDefs = 0;\n if (version >= 0x00010000 && tables['maxp'].length >= 22) {\n font.pos += 8;\n var maxZones = font.getUint16();\n if (maxZones > 2) {\n tables['maxp'].data[14] = 0;\n tables['maxp'].data[15] = 2;\n }\n font.pos += 4;\n maxFunctionDefs = font.getUint16();\n }\n var dupFirstEntry = false;\n if (properties.type === 'CIDFontType2' && properties.toUnicode && properties.toUnicode.get(0) > '\\0') {\n dupFirstEntry = true;\n numGlyphs++;\n tables['maxp'].data[4] = numGlyphs >> 8;\n tables['maxp'].data[5] = numGlyphs & 255;\n }\n var hintsValid = sanitizeTTPrograms(tables['fpgm'], tables['prep'], tables['cvt '], maxFunctionDefs);\n if (!hintsValid) {\n delete tables['fpgm'];\n delete tables['prep'];\n delete tables['cvt '];\n }\n sanitizeMetrics(font, tables['hhea'], tables['hmtx'], numGlyphs);\n if (!tables['head']) {\n throw new _util.FormatError('Required \"head\" table is not found');\n }\n sanitizeHead(tables['head'], numGlyphs, isTrueType ? tables['loca'].length : 0);\n var missingGlyphs = Object.create(null);\n if (isTrueType) {\n var isGlyphLocationsLong = int16(tables['head'].data[50], tables['head'].data[51]);\n missingGlyphs = sanitizeGlyphLocations(tables['loca'], tables['glyf'], numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry);\n }\n if (!tables['hhea']) {\n throw new _util.FormatError('Required \"hhea\" table is not found');\n }\n if (tables['hhea'].data[10] === 0 && tables['hhea'].data[11] === 0) {\n tables['hhea'].data[10] = 0xFF;\n tables['hhea'].data[11] = 0xFF;\n }\n var metricsOverride = {\n unitsPerEm: int16(tables['head'].data[18], tables['head'].data[19]),\n yMax: int16(tables['head'].data[42], tables['head'].data[43]),\n yMin: signedInt16(tables['head'].data[38], tables['head'].data[39]),\n ascent: int16(tables['hhea'].data[4], tables['hhea'].data[5]),\n descent: signedInt16(tables['hhea'].data[6], tables['hhea'].data[7])\n };\n this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n if (tables['post']) {\n var valid = readPostScriptTable(tables['post'], properties, numGlyphs);\n if (!valid) {\n tables['post'] = null;\n }\n }\n var charCodeToGlyphId = [],\n charCode;\n function hasGlyph(glyphId) {\n return !missingGlyphs[glyphId];\n }\n if (properties.composite) {\n var cidToGidMap = properties.cidToGidMap || [];\n var isCidToGidMapEmpty = cidToGidMap.length === 0;\n properties.cMap.forEach(function (charCode, cid) {\n if (cid > 0xffff) {\n throw new _util.FormatError('Max size of CID is 65,535');\n }\n var glyphId = -1;\n if (isCidToGidMapEmpty) {\n glyphId = cid;\n } else if (cidToGidMap[cid] !== undefined) {\n glyphId = cidToGidMap[cid];\n }\n if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n });\n if (dupFirstEntry && (isCidToGidMapEmpty || !charCodeToGlyphId[0])) {\n charCodeToGlyphId[0] = numGlyphs - 1;\n }\n } else {\n var cmapTable = readCmapTable(tables['cmap'], font, this.isSymbolicFont, properties.hasEncoding);\n var cmapPlatformId = cmapTable.platformId;\n var cmapEncodingId = cmapTable.encodingId;\n var cmapMappings = cmapTable.mappings;\n var cmapMappingsLength = cmapMappings.length;\n if (properties.hasEncoding && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0) || cmapPlatformId === -1 && cmapEncodingId === -1 && !!(0, _encodings.getEncoding)(properties.baseEncodingName)) {\n var baseEncoding = [];\n if (properties.baseEncodingName === 'MacRomanEncoding' || properties.baseEncodingName === 'WinAnsiEncoding') {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n }\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n for (charCode = 0; charCode < 256; charCode++) {\n var glyphName, standardGlyphName;\n if (this.differences && charCode in this.differences) {\n glyphName = this.differences[charCode];\n } else if (charCode in baseEncoding && baseEncoding[charCode] !== '') {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = _encodings.StandardEncoding[charCode];\n }\n if (!glyphName) {\n continue;\n }\n standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n var unicodeOrCharCode;\n if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName);\n }\n var found = false;\n for (i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n found = true;\n break;\n }\n if (!found && properties.glyphNames) {\n var glyphId = properties.glyphNames.indexOf(glyphName);\n if (glyphId === -1 && standardGlyphName !== glyphName) {\n glyphId = properties.glyphNames.indexOf(standardGlyphName);\n }\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n found = true;\n }\n }\n }\n } else if (cmapPlatformId === 0 && cmapEncodingId === 0) {\n for (i = 0; i < cmapMappingsLength; ++i) {\n charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n }\n } else {\n for (i = 0; i < cmapMappingsLength; ++i) {\n charCode = cmapMappings[i].charCode;\n if (cmapPlatformId === 3 && charCode >= 0xF000 && charCode <= 0xF0FF) {\n charCode &= 0xFF;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n }\n }\n }\n if (charCodeToGlyphId.length === 0) {\n charCodeToGlyphId[0] = 0;\n }\n var newMapping = adjustMapping(charCodeToGlyphId, properties, missingGlyphs);\n this.toFontChar = newMapping.toFontChar;\n tables['cmap'] = {\n tag: 'cmap',\n data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphs)\n };\n if (!tables['OS/2'] || !validateOS2Table(tables['OS/2'])) {\n tables['OS/2'] = {\n tag: 'OS/2',\n data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)\n };\n }\n if (!tables['post']) {\n tables['post'] = {\n tag: 'post',\n data: createPostTable(properties)\n };\n }\n if (!isTrueType) {\n try {\n cffFile = new _stream.Stream(tables['CFF '].data);\n var parser = new _cff_parser.CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED);\n cff = parser.parse();\n var compiler = new _cff_parser.CFFCompiler(cff);\n tables['CFF '].data = compiler.compile();\n } catch (e) {\n (0, _util.warn)('Failed to compile font ' + properties.loadedName);\n }\n }\n if (!tables['name']) {\n tables['name'] = {\n tag: 'name',\n data: createNameTable(this.name)\n };\n } else {\n var namePrototype = readNameTable(tables['name']);\n tables['name'].data = createNameTable(name, namePrototype);\n }\n var builder = new OpenTypeFileBuilder(header.version);\n for (var tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n return builder.toArray();\n },\n convert: function Font_convert(fontName, font, properties) {\n properties.fixedPitch = false;\n if (properties.builtInEncoding) {\n adjustToUnicode(properties, properties.builtInEncoding);\n }\n var mapping = font.getGlyphMapping(properties);\n var newMapping = adjustMapping(mapping, properties, Object.create(null));\n this.toFontChar = newMapping.toFontChar;\n var numGlyphs = font.numGlyphs;\n function getCharCodes(charCodeToGlyphId, glyphId) {\n var charCodes = null;\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n if (!charCodes) {\n charCodes = [];\n }\n charCodes.push(charCode | 0);\n }\n }\n return charCodes;\n }\n function createCharCode(charCodeToGlyphId, glyphId) {\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n return charCode | 0;\n }\n }\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n var seacs = font.seacs;\n if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n var matrix = properties.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var charset = font.getCharset();\n var seacMap = Object.create(null);\n for (var glyphId in seacs) {\n glyphId |= 0;\n var seac = seacs[glyphId];\n var baseGlyphName = _encodings.StandardEncoding[seac[2]];\n var accentGlyphName = _encodings.StandardEncoding[seac[3]];\n var baseGlyphId = charset.indexOf(baseGlyphName);\n var accentGlyphId = charset.indexOf(accentGlyphName);\n if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\n var accentOffset = {\n x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n };\n var charCodes = getCharCodes(mapping, glyphId);\n if (!charCodes) {\n continue;\n }\n for (var i = 0, ii = charCodes.length; i < ii; i++) {\n var charCode = charCodes[i];\n var charCodeToGlyphId = newMapping.charCodeToGlyphId;\n var baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);\n var accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId);\n seacMap[charCode] = {\n baseFontCharCode: baseFontCharCode,\n accentFontCharCode: accentFontCharCode,\n accentOffset: accentOffset\n };\n }\n }\n properties.seacMap = seacMap;\n }\n var unitsPerEm = 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n var builder = new OpenTypeFileBuilder('\\x4F\\x54\\x54\\x4F');\n builder.addTable('CFF ', font.data);\n builder.addTable('OS/2', createOS2Table(properties, newMapping.charCodeToGlyphId));\n builder.addTable('cmap', createCmapTable(newMapping.charCodeToGlyphId, numGlyphs));\n builder.addTable('head', '\\x00\\x01\\x00\\x00' + '\\x00\\x00\\x10\\x00' + '\\x00\\x00\\x00\\x00' + '\\x5F\\x0F\\x3C\\xF5' + '\\x00\\x00' + safeString16(unitsPerEm) + '\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27' + '\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27' + '\\x00\\x00' + safeString16(properties.descent) + '\\x0F\\xFF' + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + '\\x00\\x11' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00');\n builder.addTable('hhea', '\\x00\\x01\\x00\\x00' + safeString16(properties.ascent) + safeString16(properties.descent) + '\\x00\\x00' + '\\xFF\\xFF' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + string16(numGlyphs));\n builder.addTable('hmtx', function fontFieldsHmtx() {\n var charstrings = font.charstrings;\n var cffWidths = font.cff ? font.cff.widths : null;\n var hmtx = '\\x00\\x00\\x00\\x00';\n for (var i = 1, ii = numGlyphs; i < ii; i++) {\n var width = 0;\n if (charstrings) {\n var charstring = charstrings[i - 1];\n width = 'width' in charstring ? charstring.width : 0;\n } else if (cffWidths) {\n width = Math.ceil(cffWidths[i] || 0);\n }\n hmtx += string16(width) + string16(0);\n }\n return hmtx;\n }());\n builder.addTable('maxp', '\\x00\\x00\\x50\\x00' + string16(numGlyphs));\n builder.addTable('name', createNameTable(fontName));\n builder.addTable('post', createPostTable(properties));\n return builder.toArray();\n },\n get spaceWidth() {\n if ('_shadowWidth' in this) {\n return this._shadowWidth;\n }\n var possibleSpaceReplacements = ['space', 'minus', 'one', 'i', 'I'];\n var width;\n for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n var glyphName = possibleSpaceReplacements[i];\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n var glyphUnicode = glyphsUnicodeMap[glyphName];\n var charcode = 0;\n if (this.composite) {\n if (this.cMap.contains(glyphUnicode)) {\n charcode = this.cMap.lookup(glyphUnicode);\n }\n }\n if (!charcode && this.toUnicode) {\n charcode = this.toUnicode.charCodeOf(glyphUnicode);\n }\n if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n width = this.widths[charcode];\n if (width) {\n break;\n }\n }\n width = width || this.defaultWidth;\n this._shadowWidth = width;\n return width;\n },\n charToGlyph: function Font_charToGlyph(charcode, isSpace) {\n var fontCharCode, width, operatorListId;\n var widthCode = charcode;\n if (this.cMap && this.cMap.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n }\n width = this.widths[widthCode];\n width = (0, _util.isNum)(width) ? width : this.defaultWidth;\n var vmetric = this.vmetrics && this.vmetrics[widthCode];\n var unicode = this.toUnicode.get(charcode) || charcode;\n if (typeof unicode === 'number') {\n unicode = String.fromCharCode(unicode);\n }\n var isInFont = (charcode in this.toFontChar);\n fontCharCode = this.toFontChar[charcode] || charcode;\n if (this.missingFile) {\n fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode);\n }\n if (this.isType3Font) {\n operatorListId = fontCharCode;\n }\n var accent = null;\n if (this.seacMap && this.seacMap[charcode]) {\n isInFont = true;\n var seac = this.seacMap[charcode];\n fontCharCode = seac.baseFontCharCode;\n accent = {\n fontChar: String.fromCharCode(seac.accentFontCharCode),\n offset: seac.accentOffset\n };\n }\n var fontChar = String.fromCharCode(fontCharCode);\n var glyph = this.glyphCache[charcode];\n if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) {\n glyph = new Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont);\n this.glyphCache[charcode] = glyph;\n }\n return glyph;\n },\n charsToGlyphs: function Font_charsToGlyphs(chars) {\n var charsCache = this.charsCache;\n var glyphs, glyph, charcode;\n if (charsCache) {\n glyphs = charsCache[chars];\n if (glyphs) {\n return glyphs;\n }\n }\n if (!charsCache) {\n charsCache = this.charsCache = Object.create(null);\n }\n glyphs = [];\n var charsCacheKey = chars;\n var i = 0,\n ii;\n if (this.cMap) {\n var c = Object.create(null);\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n charcode = c.charcode;\n var length = c.length;\n i += length;\n var isSpace = length === 1 && chars.charCodeAt(i - 1) === 0x20;\n glyph = this.charToGlyph(charcode, isSpace);\n glyphs.push(glyph);\n }\n } else {\n for (i = 0, ii = chars.length; i < ii; ++i) {\n charcode = chars.charCodeAt(i);\n glyph = this.charToGlyph(charcode, charcode === 0x20);\n glyphs.push(glyph);\n }\n }\n return charsCache[charsCacheKey] = glyphs;\n }\n };\n return Font;\n }();\n var ErrorFont = function ErrorFontClosure() {\n function ErrorFont(error) {\n this.error = error;\n this.loadedName = 'g_font_error';\n this.loading = false;\n }\n ErrorFont.prototype = {\n charsToGlyphs: function ErrorFont_charsToGlyphs() {\n return [];\n },\n exportData: function ErrorFont_exportData() {\n return {\n error: this.error\n };\n }\n };\n return ErrorFont;\n }();\n function type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n var charCodeToGlyphId = Object.create(null);\n var glyphId, charCode, baseEncoding;\n var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n if (properties.baseEncodingName) {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n } else if (isSymbolicFont) {\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n baseEncoding = _encodings.StandardEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n var differences = properties.differences,\n glyphsUnicodeMap;\n if (differences) {\n for (charCode in differences) {\n var glyphName = differences[charCode];\n glyphId = glyphNames.indexOf(glyphName);\n if (glyphId === -1) {\n if (!glyphsUnicodeMap) {\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n }\n var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n return charCodeToGlyphId;\n }\n var Type1Font = function Type1FontClosure() {\n function findBlock(streamBytes, signature, startIndex) {\n var streamBytesLength = streamBytes.length;\n var signatureLength = signature.length;\n var scanLength = streamBytesLength - signatureLength;\n var i = startIndex,\n j,\n found = false;\n while (i < scanLength) {\n j = 0;\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n i += j;\n while (i < streamBytesLength && (0, _util.isSpace)(streamBytes[i])) {\n i++;\n }\n found = true;\n break;\n }\n i++;\n }\n return {\n found: found,\n length: i\n };\n }\n function getHeaderBlock(stream, suggestedLength) {\n var EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n var streamStartPos = stream.pos;\n var headerBytes, headerBytesLength, block;\n try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n }\n if (headerBytesLength === suggestedLength) {\n block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new _stream.Stream(headerBytes),\n length: suggestedLength\n };\n }\n }\n (0, _util.warn)('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n stream.pos = streamStartPos;\n var SCAN_BLOCK_LENGTH = 2048;\n var actualLength;\n while (true) {\n var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n if (block.length === 0) {\n break;\n }\n stream.pos += block.length;\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n stream.pos = streamStartPos;\n if (actualLength) {\n return {\n stream: new _stream.Stream(stream.getBytes(actualLength)),\n length: actualLength\n };\n }\n (0, _util.warn)('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n return {\n stream: new _stream.Stream(stream.getBytes(suggestedLength)),\n length: suggestedLength\n };\n }\n function getEexecBlock(stream, suggestedLength) {\n var eexecBytes = stream.getBytes();\n return {\n stream: new _stream.Stream(eexecBytes),\n length: eexecBytes.length\n };\n }\n function Type1Font(name, file, properties) {\n var PFB_HEADER_SIZE = 6;\n var headerBlockLength = properties.length1;\n var eexecBlockLength = properties.length2;\n var pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n }\n var headerBlock = getHeaderBlock(file, headerBlockLength);\n headerBlockLength = headerBlock.length;\n var headerBlockParser = new _type1_parser.Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED);\n headerBlockParser.extractFontHeader(properties);\n if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n }\n var eexecBlock = getEexecBlock(file, eexecBlockLength);\n eexecBlockLength = eexecBlock.length;\n var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED);\n var data = eexecBlockParser.extractFontProgram();\n for (var info in data.properties) {\n properties[info] = data.properties[info];\n }\n var charstrings = data.charstrings;\n var type2Charstrings = this.getType2Charstrings(charstrings);\n var subrs = this.getType2Subrs(data.subrs);\n this.charstrings = charstrings;\n this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties);\n this.seacs = this.getSeacs(data.charstrings);\n }\n Type1Font.prototype = {\n get numGlyphs() {\n return this.charstrings.length + 1;\n },\n getCharset: function Type1Font_getCharset() {\n var charset = ['.notdef'];\n var charstrings = this.charstrings;\n for (var glyphId = 0; glyphId < charstrings.length; glyphId++) {\n charset.push(charstrings[glyphId].glyphName);\n }\n return charset;\n },\n getGlyphMapping: function Type1Font_getGlyphMapping(properties) {\n var charstrings = this.charstrings;\n var glyphNames = ['.notdef'],\n glyphId;\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n var encoding = properties.builtInEncoding;\n if (encoding) {\n var builtInEncoding = Object.create(null);\n for (var charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n },\n getSeacs: function Type1Font_getSeacs(charstrings) {\n var i, ii;\n var seacMap = [];\n for (i = 0, ii = charstrings.length; i < ii; i++) {\n var charstring = charstrings[i];\n if (charstring.seac) {\n seacMap[i + 1] = charstring.seac;\n }\n }\n return seacMap;\n },\n getType2Charstrings: function Type1Font_getType2Charstrings(type1Charstrings) {\n var type2Charstrings = [];\n for (var i = 0, ii = type1Charstrings.length; i < ii; i++) {\n type2Charstrings.push(type1Charstrings[i].charstring);\n }\n return type2Charstrings;\n },\n getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {\n var bias = 0;\n var count = type1Subrs.length;\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n var type2Subrs = [];\n var i;\n for (i = 0; i < bias; i++) {\n type2Subrs.push([0x0B]);\n }\n for (i = 0; i < count; i++) {\n type2Subrs.push(type1Subrs[i]);\n }\n return type2Subrs;\n },\n wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) {\n var cff = new _cff_parser.CFF();\n cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4);\n cff.names = [name];\n var topDict = new _cff_parser.CFFTopDict();\n topDict.setByName('version', 391);\n topDict.setByName('Notice', 392);\n topDict.setByName('FullName', 393);\n topDict.setByName('FamilyName', 394);\n topDict.setByName('Weight', 395);\n topDict.setByName('Encoding', null);\n topDict.setByName('FontMatrix', properties.fontMatrix);\n topDict.setByName('FontBBox', properties.bbox);\n topDict.setByName('charset', null);\n topDict.setByName('CharStrings', null);\n topDict.setByName('Private', null);\n cff.topDict = topDict;\n var strings = new _cff_parser.CFFStrings();\n strings.add('Version 0.11');\n strings.add('See original notice');\n strings.add(name);\n strings.add(name);\n strings.add('Medium');\n cff.strings = strings;\n cff.globalSubrIndex = new _cff_parser.CFFIndex();\n var count = glyphs.length;\n var charsetArray = [0];\n var i, ii;\n for (i = 0; i < count; i++) {\n var index = _cff_parser.CFFStandardStrings.indexOf(charstrings[i].glyphName);\n if (index === -1) {\n index = 0;\n }\n charsetArray.push(index >> 8 & 0xff, index & 0xff);\n }\n cff.charset = new _cff_parser.CFFCharset(false, 0, [], charsetArray);\n var charStringsIndex = new _cff_parser.CFFIndex();\n charStringsIndex.add([0x8B, 0x0E]);\n for (i = 0; i < count; i++) {\n var glyph = glyphs[i];\n if (glyph.length === 0) {\n charStringsIndex.add([0x8B, 0x0E]);\n continue;\n }\n charStringsIndex.add(glyph);\n }\n cff.charStrings = charStringsIndex;\n var privateDict = new _cff_parser.CFFPrivateDict();\n privateDict.setByName('Subrs', null);\n var fields = ['BlueValues', 'OtherBlues', 'FamilyBlues', 'FamilyOtherBlues', 'StemSnapH', 'StemSnapV', 'BlueShift', 'BlueFuzz', 'BlueScale', 'LanguageGroup', 'ExpansionFactor', 'ForceBold', 'StdHW', 'StdVW'];\n for (i = 0, ii = fields.length; i < ii; i++) {\n var field = fields[i];\n if (!(field in properties.privateData)) {\n continue;\n }\n var value = properties.privateData[field];\n if ((0, _util.isArray)(value)) {\n for (var j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1];\n }\n }\n privateDict.setByName(field, value);\n }\n cff.topDict.privateDict = privateDict;\n var subrIndex = new _cff_parser.CFFIndex();\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n privateDict.subrsIndex = subrIndex;\n var compiler = new _cff_parser.CFFCompiler(cff);\n return compiler.compile();\n }\n };\n return Type1Font;\n }();\n var CFFFont = function CFFFontClosure() {\n function CFFFont(file, properties) {\n this.properties = properties;\n var parser = new _cff_parser.CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n this.cff = parser.parse();\n var compiler = new _cff_parser.CFFCompiler(this.cff);\n this.seacs = this.cff.seacs;\n try {\n this.data = compiler.compile();\n } catch (e) {\n (0, _util.warn)('Failed to compile font ' + properties.loadedName);\n this.data = file;\n }\n }\n CFFFont.prototype = {\n get numGlyphs() {\n return this.cff.charStrings.count;\n },\n getCharset: function CFFFont_getCharset() {\n return this.cff.charset.charset;\n },\n getGlyphMapping: function CFFFont_getGlyphMapping() {\n var cff = this.cff;\n var properties = this.properties;\n var charsets = cff.charset.charset;\n var charCodeToGlyphId;\n var glyphId;\n if (properties.composite) {\n charCodeToGlyphId = Object.create(null);\n if (cff.isCIDFont) {\n for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n var cid = charsets[glyphId];\n var charCode = properties.cMap.charCodeOf(cid);\n charCodeToGlyphId[charCode] = glyphId;\n }\n } else {\n for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCodeToGlyphId[glyphId] = glyphId;\n }\n }\n return charCodeToGlyphId;\n }\n var encoding = cff.encoding ? cff.encoding.encoding : null;\n charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n return charCodeToGlyphId;\n }\n };\n return CFFFont;\n }();\n (function checkSeacSupport() {\n if (typeof navigator !== 'undefined' && /Windows/.test(navigator.userAgent)) {\n exports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED = true;\n }\n })();\n (function checkChromeWindows() {\n if (typeof navigator !== 'undefined' && /Windows.*Chrome/.test(navigator.userAgent)) {\n SKIP_PRIVATE_USE_RANGE_F000_TO_F01F = true;\n }\n })();\n exports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;\n exports.PRIVATE_USE_OFFSET_START = PRIVATE_USE_OFFSET_START;\n exports.PRIVATE_USE_OFFSET_END = PRIVATE_USE_OFFSET_END;\n exports.ErrorFont = ErrorFont;\n exports.Font = Font;\n exports.FontFlags = FontFlags;\n exports.ToUnicodeMap = ToUnicodeMap;\n exports.IdentityToUnicodeMap = IdentityToUnicodeMap;\n exports.ProblematicCharRanges = ProblematicCharRanges;\n exports.getFontType = getFontType;\n\n /***/\n }, /* 94 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PDFImage = undefined;\n var _util = __w_pdfjs_require__(0);\n var _stream = __w_pdfjs_require__(3);\n var _primitives = __w_pdfjs_require__(1);\n var _colorspace = __w_pdfjs_require__(15);\n var _jpx = __w_pdfjs_require__(57);\n var PDFImage = function PDFImageClosure() {\n function handleImageData(image, nativeDecoder) {\n if (nativeDecoder && nativeDecoder.canDecode(image)) {\n return nativeDecoder.decode(image);\n }\n return Promise.resolve(image);\n }\n function decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n return value < 0 ? 0 : value > max ? max : value;\n }\n function resizeImageMask(src, bpc, w1, h1, w2, h2) {\n var length = w2 * h2;\n var dest = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n var xRatio = w1 / w2;\n var yRatio = h1 / h2;\n var i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n var xScaled = new Uint16Array(w2);\n var w1Scanline = w1;\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n return dest;\n }\n function PDFImage(xref, res, image, inline, smask, mask, isMask) {\n this.image = image;\n var dict = image.dict;\n if (dict.has('Filter')) {\n var filter = dict.get('Filter').name;\n if (filter === 'JPXDecode') {\n var jpxImage = new _jpx.JpxImage();\n jpxImage.parseImageProperties(image.stream);\n image.stream.reset();\n image.bitsPerComponent = jpxImage.bitsPerComponent;\n image.numComps = jpxImage.componentsCount;\n } else if (filter === 'JBIG2Decode') {\n image.bitsPerComponent = 1;\n image.numComps = 1;\n }\n }\n this.width = dict.get('Width', 'W');\n this.height = dict.get('Height', 'H');\n if (this.width < 1 || this.height < 1) {\n throw new _util.FormatError('Invalid image width: ' + this.width + ' or ' + ('height: ' + this.height));\n }\n this.interpolate = dict.get('Interpolate', 'I') || false;\n this.imageMask = dict.get('ImageMask', 'IM') || false;\n this.matte = dict.get('Matte') || false;\n var bitsPerComponent = image.bitsPerComponent;\n if (!bitsPerComponent) {\n bitsPerComponent = dict.get('BitsPerComponent', 'BPC');\n if (!bitsPerComponent) {\n if (this.imageMask) {\n bitsPerComponent = 1;\n } else {\n throw new _util.FormatError('Bits per component missing in image: ' + this.imageMask);\n }\n }\n }\n this.bpc = bitsPerComponent;\n if (!this.imageMask) {\n var colorSpace = dict.get('ColorSpace', 'CS');\n if (!colorSpace) {\n (0, _util.info)('JPX images (which do not require color spaces)');\n switch (image.numComps) {\n case 1:\n colorSpace = _primitives.Name.get('DeviceGray');\n break;\n case 3:\n colorSpace = _primitives.Name.get('DeviceRGB');\n break;\n case 4:\n colorSpace = _primitives.Name.get('DeviceCMYK');\n break;\n default:\n throw new Error('JPX images with ' + this.numComps + ' ' + 'color components not supported.');\n }\n }\n this.colorSpace = _colorspace.ColorSpace.parse(colorSpace, xref, res);\n this.numComps = this.colorSpace.numComps;\n }\n this.decode = dict.getArray('Decode', 'D');\n this.needsDecode = false;\n if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {\n this.needsDecode = true;\n var max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\n for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n var dmin = this.decode[i];\n var dmax = this.decode[i + 1];\n this.decodeCoefficients[j] = dmax - dmin;\n this.decodeAddends[j] = max * dmin;\n }\n }\n if (smask) {\n this.smask = new PDFImage(xref, res, smask, false);\n } else if (mask) {\n if ((0, _primitives.isStream)(mask)) {\n var maskDict = mask.dict,\n imageMask = maskDict.get('ImageMask', 'IM');\n if (!imageMask) {\n (0, _util.warn)('Ignoring /Mask in image without /ImageMask.');\n } else {\n this.mask = new PDFImage(xref, res, mask, false, null, null, true);\n }\n } else {\n this.mask = mask;\n }\n }\n }\n PDFImage.buildImage = function PDFImage_buildImage(handler, xref, res, image, inline, nativeDecoder) {\n var imagePromise = handleImageData(image, nativeDecoder);\n var smaskPromise;\n var maskPromise;\n var smask = image.dict.get('SMask');\n var mask = image.dict.get('Mask');\n if (smask) {\n smaskPromise = handleImageData(smask, nativeDecoder);\n maskPromise = Promise.resolve(null);\n } else {\n smaskPromise = Promise.resolve(null);\n if (mask) {\n if ((0, _primitives.isStream)(mask)) {\n maskPromise = handleImageData(mask, nativeDecoder);\n } else if ((0, _util.isArray)(mask)) {\n maskPromise = Promise.resolve(mask);\n } else {\n (0, _util.warn)('Unsupported mask format.');\n maskPromise = Promise.resolve(null);\n }\n } else {\n maskPromise = Promise.resolve(null);\n }\n }\n return Promise.all([imagePromise, smaskPromise, maskPromise]).then(function (results) {\n var imageData = results[0];\n var smaskData = results[1];\n var maskData = results[2];\n return new PDFImage(xref, res, imageData, inline, smaskData, maskData);\n });\n };\n PDFImage.createMask = function PDFImage_createMask(imgArray, width, height, imageIsFromDecodeStream, inverseDecode) {\n var computedLength = (width + 7 >> 3) * height;\n var actualLength = imgArray.byteLength;\n var haveFullData = computedLength === actualLength;\n var data, i;\n if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n data = imgArray;\n } else if (!inverseDecode) {\n data = new Uint8Array(actualLength);\n data.set(imgArray);\n } else {\n data = new Uint8Array(computedLength);\n data.set(imgArray);\n for (i = actualLength; i < computedLength; i++) {\n data[i] = 0xff;\n }\n }\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xFF;\n }\n }\n return {\n data: data,\n width: width,\n height: height\n };\n };\n PDFImage.prototype = {\n get drawWidth() {\n return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0);\n },\n get drawHeight() {\n return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);\n },\n decodeBuffer: function PDFImage_decodeBuffer(buffer) {\n var bpc = this.bpc;\n var numComps = this.numComps;\n var decodeAddends = this.decodeAddends;\n var decodeCoefficients = this.decodeCoefficients;\n var max = (1 << bpc) - 1;\n var i, ii;\n if (bpc === 1) {\n for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n return;\n }\n var index = 0;\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (var j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max);\n index++;\n }\n }\n },\n getComponents: function PDFImage_getComponents(buffer) {\n var bpc = this.bpc;\n if (bpc === 8) {\n return buffer;\n }\n var width = this.width;\n var height = this.height;\n var numComps = this.numComps;\n var length = width * height * numComps;\n var bufferPos = 0;\n var output = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n var rowComps = width * numComps;\n var max = (1 << bpc) - 1;\n var i = 0,\n ii,\n buf;\n if (bpc === 1) {\n var mask, loop1End, loop2End;\n for (var j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\n while (i < loop1End) {\n buf = buffer[bufferPos++];\n output[i] = buf >> 7 & 1;\n output[i + 1] = buf >> 6 & 1;\n output[i + 2] = buf >> 5 & 1;\n output[i + 3] = buf >> 4 & 1;\n output[i + 4] = buf >> 3 & 1;\n output[i + 5] = buf >> 2 & 1;\n output[i + 6] = buf >> 1 & 1;\n output[i + 7] = buf & 1;\n i += 8;\n }\n if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n var bits = 0;\n buf = 0;\n for (i = 0, ii = length; i < ii; ++i) {\n if (i % rowComps === 0) {\n buf = 0;\n bits = 0;\n }\n while (bits < bpc) {\n buf = buf << 8 | buffer[bufferPos++];\n bits += 8;\n }\n var remainingBits = bits - bpc;\n var value = buf >> remainingBits;\n output[i] = value < 0 ? 0 : value > max ? max : value;\n buf = buf & (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n return output;\n },\n fillOpacity: function PDFImage_fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n var smask = this.smask;\n var mask = this.mask;\n var alphaBuf, sw, sh, i, ii, j;\n if (smask) {\n sw = smask.width;\n sh = smask.height;\n alphaBuf = new Uint8Array(sw * sh);\n smask.fillGrayBuffer(alphaBuf);\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n }\n } else if (mask) {\n if (mask instanceof PDFImage) {\n sw = mask.width;\n sh = mask.height;\n alphaBuf = new Uint8Array(sw * sh);\n mask.numComps = 1;\n mask.fillGrayBuffer(alphaBuf);\n for (i = 0, ii = sw * sh; i < ii; ++i) {\n alphaBuf[i] = 255 - alphaBuf[i];\n }\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n }\n } else if ((0, _util.isArray)(mask)) {\n alphaBuf = new Uint8Array(width * height);\n var numComps = this.numComps;\n for (i = 0, ii = width * height; i < ii; ++i) {\n var opacity = 0;\n var imageOffset = i * numComps;\n for (j = 0; j < numComps; ++j) {\n var color = image[imageOffset + j];\n var maskOffset = j * 2;\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n alphaBuf[i] = opacity;\n }\n } else {\n throw new _util.FormatError('Unknown mask format.');\n }\n }\n if (alphaBuf) {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = alphaBuf[i];\n }\n } else {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = 255;\n }\n }\n },\n undoPreblend: function PDFImage_undoPreblend(buffer, width, height) {\n var matte = this.smask && this.smask.matte;\n if (!matte) {\n return;\n }\n var matteRgb = this.colorSpace.getRgb(matte, 0);\n var matteR = matteRgb[0];\n var matteG = matteRgb[1];\n var matteB = matteRgb[2];\n var length = width * height * 4;\n var r, g, b;\n for (var i = 0; i < length; i += 4) {\n var alpha = buffer[i + 3];\n if (alpha === 0) {\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\n var k = 255 / alpha;\n r = (buffer[i] - matteR) * k + matteR;\n g = (buffer[i + 1] - matteG) * k + matteG;\n b = (buffer[i + 2] - matteB) * k + matteB;\n buffer[i] = r <= 0 ? 0 : r >= 255 ? 255 : r | 0;\n buffer[i + 1] = g <= 0 ? 0 : g >= 255 ? 255 : g | 0;\n buffer[i + 2] = b <= 0 ? 0 : b >= 255 ? 255 : b | 0;\n }\n },\n createImageData: function PDFImage_createImageData(forceRGBA) {\n var drawWidth = this.drawWidth;\n var drawHeight = this.drawHeight;\n var imgData = {\n width: drawWidth,\n height: drawHeight\n };\n var numComps = this.numComps;\n var originalWidth = this.width;\n var originalHeight = this.height;\n var bpc = this.bpc;\n var rowBytes = originalWidth * numComps * bpc + 7 >> 3;\n var imgArray;\n if (!forceRGBA) {\n var kind;\n if (this.colorSpace.name === 'DeviceGray' && bpc === 1) {\n kind = _util.ImageKind.GRAYSCALE_1BPP;\n } else if (this.colorSpace.name === 'DeviceRGB' && bpc === 8 && !this.needsDecode) {\n kind = _util.ImageKind.RGB_24BPP;\n }\n if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n imgData.kind = kind;\n imgArray = this.getImageBytes(originalHeight * rowBytes);\n if (this.image instanceof _stream.DecodeStream) {\n imgData.data = imgArray;\n } else {\n var newArray = new Uint8Array(imgArray.length);\n newArray.set(imgArray);\n imgData.data = newArray;\n }\n if (this.needsDecode) {\n (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP);\n var buffer = imgData.data;\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n return imgData;\n }\n if (this.image instanceof _stream.JpegStream && !this.smask && !this.mask && (this.colorSpace.name === 'DeviceGray' || this.colorSpace.name === 'DeviceRGB' || this.colorSpace.name === 'DeviceCMYK')) {\n imgData.kind = _util.ImageKind.RGB_24BPP;\n imgData.data = this.getImageBytes(originalHeight * rowBytes, drawWidth, drawHeight, true);\n return imgData;\n }\n }\n imgArray = this.getImageBytes(originalHeight * rowBytes);\n var actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight;\n var comps = this.getComponents(imgArray);\n var alpha01, maybeUndoPreblend;\n if (!forceRGBA && !this.smask && !this.mask) {\n imgData.kind = _util.ImageKind.RGB_24BPP;\n imgData.data = new Uint8Array(drawWidth * drawHeight * 3);\n alpha01 = 0;\n maybeUndoPreblend = false;\n } else {\n imgData.kind = _util.ImageKind.RGBA_32BPP;\n imgData.data = new Uint8Array(drawWidth * drawHeight * 4);\n alpha01 = 1;\n maybeUndoPreblend = true;\n this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps);\n }\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n if (maybeUndoPreblend) {\n this.undoPreblend(imgData.data, drawWidth, actualHeight);\n }\n return imgData;\n },\n fillGrayBuffer: function PDFImage_fillGrayBuffer(buffer) {\n var numComps = this.numComps;\n if (numComps !== 1) {\n throw new _util.FormatError('Reading gray scale from a color image: ' + numComps);\n }\n var width = this.width;\n var height = this.height;\n var bpc = this.bpc;\n var rowBytes = width * numComps * bpc + 7 >> 3;\n var imgArray = this.getImageBytes(height * rowBytes);\n var comps = this.getComponents(imgArray);\n var i, length;\n if (bpc === 1) {\n length = width * height;\n if (this.needsDecode) {\n for (i = 0; i < length; ++i) {\n buffer[i] = comps[i] - 1 & 255;\n }\n } else {\n for (i = 0; i < length; ++i) {\n buffer[i] = -comps[i] & 255;\n }\n }\n return;\n }\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n length = width * height;\n var scale = 255 / ((1 << bpc) - 1);\n for (i = 0; i < length; ++i) {\n buffer[i] = scale * comps[i] | 0;\n }\n },\n getImageBytes: function PDFImage_getImageBytes(length, drawWidth, drawHeight, forceRGB) {\n this.image.reset();\n this.image.drawWidth = drawWidth || this.width;\n this.image.drawHeight = drawHeight || this.height;\n this.image.forceRGB = !!forceRGB;\n return this.image.getBytes(length);\n }\n };\n return PDFImage;\n }();\n exports.PDFImage = PDFImage;\n\n /***/\n }, /* 95 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Jbig2Image = undefined;\n var _util = __w_pdfjs_require__(0);\n var _arithmetic_decoder = __w_pdfjs_require__(52);\n var Jbig2Error = function Jbig2ErrorClosure() {\n function Jbig2Error(msg) {\n this.message = 'JBIG2 error: ' + msg;\n }\n Jbig2Error.prototype = new Error();\n Jbig2Error.prototype.name = 'Jbig2Error';\n Jbig2Error.constructor = Jbig2Error;\n return Jbig2Error;\n }();\n var Jbig2Image = function Jbig2ImageClosure() {\n function ContextCache() {}\n ContextCache.prototype = {\n getContexts: function getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return this[id] = new Int8Array(1 << 16);\n }\n };\n function DecodingContext(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n DecodingContext.prototype = {\n get decoder() {\n var decoder = new _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end);\n return (0, _util.shadow)(this, 'decoder', decoder);\n },\n get contextCache() {\n var cache = new ContextCache();\n return (0, _util.shadow)(this, 'contextCache', cache);\n }\n };\n function decodeInteger(contextCache, procedure, decoder) {\n var contexts = contextCache.getContexts(procedure);\n var prev = 1;\n function readBits(length) {\n var v = 0;\n for (var i = 0; i < length; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256;\n v = v << 1 | bit;\n }\n return v >>> 0;\n }\n var sign = readBits(1);\n var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2);\n return sign === 0 ? value : value > 0 ? -value : null;\n }\n function decodeIAID(contextCache, decoder, codeLength) {\n var contexts = contextCache.getContexts('IAID');\n var prev = 1;\n for (var i = 0; i < codeLength; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev << 1 | bit;\n }\n if (codeLength < 31) {\n return prev & (1 << codeLength) - 1;\n }\n return prev & 0x7FFFFFFF;\n }\n var SegmentTypes = ['SymbolDictionary', null, null, null, 'IntermediateTextRegion', null, 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null, null, null, null, null, null, 'PatternDictionary', null, null, null, 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion', 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null, null, null, null, null, null, 'IntermediateGenericRegion', null, 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion', 'IntermediateGenericRefinementRegion', null, 'ImmediateGenericRefinementRegion', 'ImmediateLosslessGenericRefinementRegion', null, null, null, null, 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles', 'Tables', null, null, null, null, null, null, null, null, 'Extension'];\n var CodingTemplates = [[{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 2,\n y: -1\n }, {\n x: -4,\n y: 0\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: 2,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 2,\n y: -1\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -3,\n y: -1\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -4,\n y: 0\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }]];\n var RefinementTemplates = [{\n coding: [{\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }],\n reference: [{\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n x: 1,\n y: 0\n }, {\n x: -1,\n y: 1\n }, {\n x: 0,\n y: 1\n }, {\n x: 1,\n y: 1\n }]\n }, {\n coding: [{\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }],\n reference: [{\n x: 0,\n y: -1\n }, {\n x: -1,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n x: 1,\n y: 0\n }, {\n x: 0,\n y: 1\n }, {\n x: 1,\n y: 1\n }]\n }];\n var ReusedContexts = [0x9B25, 0x0795, 0x00E5, 0x0195];\n var RefinementReusedContexts = [0x0020, 0x0008];\n function decodeBitmapTemplate0(width, height, decodingContext) {\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts('GB');\n var contextLabel,\n i,\n j,\n pixel,\n row,\n row1,\n row2,\n bitmap = [];\n var OLD_PIXEL_MASK = 0x7BF7;\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = i < 1 ? row : bitmap[i - 1];\n row2 = i < 2 ? row : bitmap[i - 2];\n contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4;\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel;\n }\n }\n return bitmap;\n }\n function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) {\n if (mmr) {\n throw new Jbig2Error('MMR encoding is not supported');\n }\n if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n var useskip = !!skip;\n var template = CodingTemplates[templateIndex].concat(at);\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\n var templateLength = template.length;\n var templateX = new Int8Array(templateLength);\n var templateY = new Int8Array(templateLength);\n var changingTemplateEntries = [];\n var reuseMask = 0,\n minX = 0,\n maxX = 0,\n minY = 0;\n var c, k;\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) {\n reuseMask |= 1 << templateLength - 1 - k;\n } else {\n changingTemplateEntries.push(k);\n }\n }\n var changingEntriesLength = changingTemplateEntries.length;\n var changingTemplateX = new Int8Array(changingEntriesLength);\n var changingTemplateY = new Int8Array(changingEntriesLength);\n var changingTemplateBit = new Uint16Array(changingEntriesLength);\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << templateLength - 1 - k;\n }\n var sbb_left = -minX;\n var sbb_top = -minY;\n var sbb_right = width - maxX;\n var pseudoPixelContext = ReusedContexts[templateIndex];\n var row = new Uint8Array(width);\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts('GB');\n var ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row);\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n contextLabel = contextLabel << 1 & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n }\n function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) {\n var codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n var codingTemplateLength = codingTemplate.length;\n var codingTemplateX = new Int32Array(codingTemplateLength);\n var codingTemplateY = new Int32Array(codingTemplateLength);\n var k;\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n var referenceTemplate = RefinementTemplates[templateIndex].reference;\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n var referenceTemplateLength = referenceTemplate.length;\n var referenceTemplateX = new Int32Array(referenceTemplateLength);\n var referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n var referenceWidth = referenceBitmap[0].length;\n var referenceHeight = referenceBitmap.length;\n var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts('GR');\n var ltp = 0;\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error('prediction is not supported');\n }\n }\n var row = new Uint8Array(width);\n bitmap.push(row);\n for (var j = 0; j < width; j++) {\n var i0, j0;\n var contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | referenceBitmap[i0][j0];\n }\n }\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n }\n function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext) {\n if (huffman) {\n throw new Jbig2Error('huffman is not supported');\n }\n var newSymbols = [];\n var currentHeight = 0;\n var symbolCodeLength = (0, _util.log2)(symbols.length + numberOfNewSymbols);\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n while (newSymbols.length < numberOfNewSymbols) {\n var deltaHeight = decodeInteger(contextCache, 'IADH', decoder);\n currentHeight += deltaHeight;\n var currentWidth = 0;\n while (true) {\n var deltaWidth = decodeInteger(contextCache, 'IADW', decoder);\n if (deltaWidth === null) {\n break;\n }\n currentWidth += deltaWidth;\n var bitmap;\n if (refinement) {\n var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder);\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext);\n } else {\n var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n var rdx = decodeInteger(contextCache, 'IARDX', decoder);\n var rdy = decodeInteger(contextCache, 'IARDY', decoder);\n var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext);\n }\n } else {\n bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext);\n }\n newSymbols.push(bitmap);\n }\n }\n var exportedSymbols = [];\n var flags = [],\n currentFlag = false;\n var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n var runLength = decodeInteger(contextCache, 'IAEX', decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (var i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (var j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n }\n function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext) {\n if (huffman) {\n throw new Jbig2Error('huffman is not supported');\n }\n var bitmap = [];\n var i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (var j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n var stripT = -decodeInteger(contextCache, 'IADT', decoder);\n var firstS = 0;\n i = 0;\n while (i < numberOfSymbolInstances) {\n var deltaT = decodeInteger(contextCache, 'IADT', decoder);\n stripT += deltaT;\n var deltaFirstS = decodeInteger(contextCache, 'IAFS', decoder);\n firstS += deltaFirstS;\n var currentS = firstS;\n do {\n var currentT = stripSize === 1 ? 0 : decodeInteger(contextCache, 'IAIT', decoder);\n var t = stripSize * stripT + currentT;\n var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n var applyRefinement = refinement && decodeInteger(contextCache, 'IARI', decoder);\n var symbolBitmap = inputSymbols[symbolId];\n var symbolWidth = symbolBitmap[0].length;\n var symbolHeight = symbolBitmap.length;\n if (applyRefinement) {\n var rdw = decodeInteger(contextCache, 'IARDW', decoder);\n var rdh = decodeInteger(contextCache, 'IARDH', decoder);\n var rdx = decodeInteger(contextCache, 'IARDX', decoder);\n var rdy = decodeInteger(contextCache, 'IARDY', decoder);\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext);\n }\n var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight);\n var offsetS = currentS - (referenceCorner & 2 ? symbolWidth : 0);\n var s2, t2, symbolRow;\n if (transposed) {\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n var maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported');\n }\n }\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported');\n }\n }\n currentS += symbolWidth - 1;\n }\n i++;\n var deltaS = decodeInteger(contextCache, 'IADS', decoder);\n if (deltaS === null) {\n break;\n }\n currentS += deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n }\n function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {\n var at = [];\n at.push({\n x: -patternWidth,\n y: 0\n });\n if (template === 0) {\n at.push({\n x: -3,\n y: -1\n });\n at.push({\n x: 2,\n y: -2\n });\n at.push({\n x: -2,\n y: -2\n });\n }\n var collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n var collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);\n var patterns = [],\n i = 0,\n patternBitmap = void 0,\n xMin = void 0,\n xMax = void 0,\n y = void 0;\n while (i <= maxPatternIndex) {\n patternBitmap = [];\n xMin = patternWidth * i;\n xMax = xMin + patternWidth;\n for (y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n i++;\n }\n return patterns;\n }\n function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {\n var skip = null;\n if (enableSkip) {\n throw new Jbig2Error('skip is not supported');\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported in halftone region');\n }\n var regionBitmap = [];\n var i = void 0,\n j = void 0,\n row = void 0;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n regionBitmap.push(row);\n }\n var numberOfPatterns = patterns.length;\n var pattern0 = patterns[0];\n var patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n var bitsPerValue = (0, _util.log2)(numberOfPatterns);\n var at = [];\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1\n });\n if (template === 0) {\n at.push({\n x: -3,\n y: -1\n });\n at.push({\n x: 2,\n y: -2\n });\n at.push({\n x: -2,\n y: -2\n });\n }\n var grayScaleBitPlanes = [];\n for (i = bitsPerValue - 1; i >= 0; i--) {\n grayScaleBitPlanes[i] = decodeBitmap(mmr, gridWidth, gridHeight, template, false, skip, at, decodingContext);\n }\n var mg = void 0,\n ng = void 0,\n bit = void 0,\n patternIndex = void 0,\n patternBitmap = void 0,\n x = void 0,\n y = void 0,\n patternRow = void 0,\n regionRow = void 0;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit = grayScaleBitPlanes[j][mg][ng] ^ bit;\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;\n y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;\n if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n var regionX = void 0,\n regionY = void 0;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n }\n function readSegmentHeader(data, start) {\n var segmentHeader = {};\n segmentHeader.number = (0, _util.readUint32)(data, start);\n var flags = data[start + 4];\n var segmentType = flags & 0x3F;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error('invalid segment type: ' + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n var pageAssociationFieldSize = !!(flags & 0x40);\n var referredFlags = data[start + 5];\n var referredToCount = referredFlags >> 5 & 7;\n var retainBits = [referredFlags & 31];\n var position = start + 6;\n if (referredFlags === 7) {\n referredToCount = (0, _util.readUint32)(data, position - 1) & 0x1FFFFFFF;\n position += 3;\n var bytes = referredToCount + 7 >> 3;\n retainBits[0] = data[position++];\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error('invalid referred-to flags');\n }\n segmentHeader.retainBits = retainBits;\n var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 : segmentHeader.number <= 65536 ? 2 : 4;\n var referredTo = [];\n var i, ii;\n for (i = 0; i < referredToCount; i++) {\n var number = referredToSegmentNumberSize === 1 ? data[position] : referredToSegmentNumberSize === 2 ? (0, _util.readUint16)(data, position) : (0, _util.readUint32)(data, position);\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = (0, _util.readUint32)(data, position);\n position += 4;\n }\n segmentHeader.length = (0, _util.readUint32)(data, position);\n position += 4;\n if (segmentHeader.length === 0xFFFFFFFF) {\n if (segmentType === 38) {\n var genericRegionInfo = readRegionSegmentInformation(data, position);\n var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength];\n var genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n var searchPatternLength = 6;\n var searchPattern = new Uint8Array(searchPatternLength);\n if (!genericRegionMmr) {\n searchPattern[0] = 0xFF;\n searchPattern[1] = 0xAC;\n }\n searchPattern[2] = genericRegionInfo.height >>> 24 & 0xFF;\n searchPattern[3] = genericRegionInfo.height >> 16 & 0xFF;\n searchPattern[4] = genericRegionInfo.height >> 8 & 0xFF;\n searchPattern[5] = genericRegionInfo.height & 0xFF;\n for (i = position, ii = data.length; i < ii; i++) {\n var j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n if (segmentHeader.length === 0xFFFFFFFF) {\n throw new Jbig2Error('segment end was not found');\n }\n } else {\n throw new Jbig2Error('invalid unknown segment length');\n }\n }\n segmentHeader.headerEnd = position;\n return segmentHeader;\n }\n function readSegments(header, data, start, end) {\n var segments = [];\n var position = start;\n while (position < end) {\n var segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n var segment = {\n header: segmentHeader,\n data: data\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break;\n }\n }\n if (header.randomAccess) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n return segments;\n }\n function readRegionSegmentInformation(data, start) {\n return {\n width: (0, _util.readUint32)(data, start),\n height: (0, _util.readUint32)(data, start + 4),\n x: (0, _util.readUint32)(data, start + 8),\n y: (0, _util.readUint32)(data, start + 12),\n combinationOperator: data[start + 16] & 7\n };\n }\n var RegionSegmentInformationFieldLength = 17;\n function processSegment(segment, visitor) {\n var header = segment.header;\n var data = segment.data,\n position = segment.start,\n end = segment.end;\n var args, at, i, atLength;\n switch (header.type) {\n case 0:\n var dictionary = {};\n var dictionaryFlags = (0, _util.readUint16)(data, position);\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3;\n dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3;\n dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1;\n dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = dictionaryFlags >> 10 & 3;\n dictionary.refinementTemplate = dictionaryFlags >> 12 & 1;\n position += 2;\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = (0, _util.readUint32)(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = (0, _util.readUint32)(data, position);\n position += 4;\n args = [dictionary, header.number, header.referredTo, data, position, end];\n break;\n case 6:\n case 7:\n var textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var textRegionSegmentFlags = (0, _util.readUint16)(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.stripSize = 1 << (textRegionSegmentFlags >> 2 & 3);\n textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3;\n textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1;\n textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27;\n textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1;\n if (textRegion.huffman) {\n var textRegionHuffmanFlags = (0, _util.readUint16)(data, position);\n position += 2;\n textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3;\n textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3;\n textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3;\n textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3;\n textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3;\n textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3;\n textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 14);\n }\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = (0, _util.readUint32)(data, position);\n position += 4;\n if (textRegion.huffman) {\n throw new Jbig2Error('huffman is not supported');\n }\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16:\n var patternDictionary = {};\n var patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = patternDictionaryFlags >> 1 & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = (0, _util.readUint32)(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22:\n case 23:\n var halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = halftoneRegionFlags >> 1 & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7;\n halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1;\n halftoneRegion.gridWidth = (0, _util.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridHeight = (0, _util.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;\n position += 4;\n halftoneRegion.gridOffsetY = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;\n position += 4;\n halftoneRegion.gridVectorX = (0, _util.readUint16)(data, position);\n position += 2;\n halftoneRegion.gridVectorY = (0, _util.readUint16)(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n case 38:\n case 39:\n var genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = genericRegionSegmentFlags >> 1 & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48:\n var pageInfo = {\n width: (0, _util.readUint32)(data, position),\n height: (0, _util.readUint32)(data, position + 4),\n resolutionX: (0, _util.readUint32)(data, position + 8),\n resolutionY: (0, _util.readUint32)(data, position + 12)\n };\n if (pageInfo.height === 0xFFFFFFFF) {\n delete pageInfo.height;\n }\n var pageSegmentFlags = data[position + 16];\n (0, _util.readUint16)(data, position + 17);\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1;\n pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n case 49:\n break;\n case 50:\n break;\n case 51:\n break;\n case 62:\n break;\n default:\n throw new Jbig2Error('segment type ' + header.typeName + '(' + header.type + ')' + ' is not implemented');\n }\n var callbackName = 'on' + header.typeName;\n if (callbackName in visitor) {\n visitor[callbackName].apply(visitor, args);\n }\n }\n function processSegments(segments, visitor) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n }\n function parseJbig2(data, start, end) {\n var position = start;\n if (data[position] !== 0x97 || data[position + 1] !== 0x4A || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0D || data[position + 5] !== 0x0A || data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) {\n throw new Jbig2Error('invalid header');\n }\n var header = {};\n position += 8;\n var flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = (0, _util.readUint32)(data, position);\n position += 4;\n }\n readSegments(header, data, position, end);\n throw new Error('Not implemented');\n }\n function parseJbig2Chunks(chunks) {\n var visitor = new SimpleSegmentVisitor();\n for (var i = 0, ii = chunks.length; i < ii; i++) {\n var chunk = chunks[i];\n var segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n return visitor.buffer;\n }\n function SimpleSegmentVisitor() {}\n SimpleSegmentVisitor.prototype = {\n onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) {\n this.currentPageInfo = info;\n var rowSize = info.width + 7 >> 3;\n var buffer = new Uint8ClampedArray(rowSize * info.height);\n if (info.defaultPixelValue) {\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = 0xFF;\n }\n }\n this.buffer = buffer;\n },\n drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {\n var pageInfo = this.currentPageInfo;\n var width = regionInfo.width,\n height = regionInfo.height;\n var rowSize = pageInfo.width + 7 >> 3;\n var combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator;\n var buffer = this.buffer;\n var mask0 = 128 >> (regionInfo.x & 7);\n var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n var i, j, mask, offset;\n switch (combinationOperator) {\n case 0:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported');\n }\n },\n onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) {\n var regionInfo = region.info;\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion.apply(this, arguments);\n },\n onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) {\n var huffmanTables;\n if (dictionary.huffman) {\n throw new Jbig2Error('huffman is not supported');\n }\n var symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n var inputSymbols = [];\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]);\n }\n var decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext);\n },\n onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) {\n var regionInfo = region.info;\n var huffmanTables;\n var symbols = this.symbols;\n var inputSymbols = [];\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]);\n }\n var symbolCodeLength = (0, _util.log2)(inputSymbols.length);\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion.apply(this, arguments);\n },\n onPatternDictionary: function onPatternDictionary(dictionary, currentSegment, data, start, end) {\n var patterns = this.patterns;\n if (!patterns) {\n this.patterns = patterns = {};\n }\n var decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);\n },\n onImmediateHalftoneRegion: function onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n var patterns = this.patterns[referredSegments[0]];\n var regionInfo = region.info;\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessHalftoneRegion: function onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n }\n };\n function Jbig2Image() {}\n Jbig2Image.prototype = {\n parseChunks: function Jbig2Image_parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n }\n };\n return Jbig2Image;\n }();\n exports.Jbig2Image = Jbig2Image;\n\n /***/\n }, /* 96 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.JpegImage = undefined;\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _util = __w_pdfjs_require__(0);\n var JpegError = function JpegErrorClosure() {\n function JpegError(msg) {\n this.message = 'JPEG error: ' + msg;\n }\n JpegError.prototype = new Error();\n JpegError.prototype.name = 'JpegError';\n JpegError.constructor = JpegError;\n return JpegError;\n }();\n var JpegImage = function JpegImageClosure() {\n var dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function JpegImage() {\n this.decodeTransform = null;\n this.colorTransform = -1;\n }\n function buildHuffmanTable(codeLengths, values) {\n var k = 0,\n code = [],\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n code.push({\n children: [],\n index: 0\n });\n var p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) {\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var startOffset = offset,\n bitsData = 0,\n bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xFF) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new JpegError('unexpected marker ' + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree;\n while (true) {\n node = node[readBit()];\n if (typeof node === 'number') {\n return node;\n }\n if ((typeof node === 'undefined' ? 'undefined' : _typeof(node)) !== 'object') {\n throw new JpegError('invalid huffman sequence');\n }\n }\n }\n function receive(length) {\n var n = 0;\n while (length > 0) {\n n = n << 1 | readBit();\n length--;\n }\n return n;\n }\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n var n = receive(length);\n if (n >= 1 << length - 1) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n function decodeBaseline(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[offset] = component.pred += diff;\n var k = 1;\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] = receiveAndExtend(s);\n k++;\n }\n }\n function decodeDCFirst(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[offset] = component.pred += diff;\n }\n function decodeDCSuccessive(component, offset) {\n component.blockData[offset] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component, offset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k = spectralStart,\n e = spectralEnd;\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n var successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, offset) {\n var k = spectralStart;\n var e = spectralEnd;\n var r = 0;\n var s;\n var rs;\n while (k <= e) {\n var z = dctZigZag[k];\n switch (successiveACState) {\n case 0:\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError('invalid ACn encoding');\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3:\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n } else {\n component.blockData[offset + z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = mcu / mcusPerLine | 0;\n var mcuCol = mcu % mcusPerLine;\n var blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n function decodeBlock(component, decode, mcu) {\n var blockRow = mcu / component.blocksPerLine | 0;\n var blockCol = mcu % component.blocksPerLine;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0,\n fileMarker;\n var mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n var h, v;\n while (mcu < mcuExpected) {\n var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)('decodeScan - unexpected MCU data, next marker is: ' + fileMarker.invalid);\n offset = fileMarker.offset;\n }\n var marker = fileMarker && fileMarker.marker;\n if (!marker || marker <= 0xFF00) {\n throw new JpegError('marker was not found');\n }\n if (marker >= 0xFFD0 && marker <= 0xFFD7) {\n offset += 2;\n } else {\n break;\n }\n }\n fileMarker = findNextFileMarker(data, offset);\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)('decodeScan - unexpected Scan data, next marker is: ' + fileMarker.invalid);\n offset = fileMarker.offset;\n }\n return offset - startOffset;\n }\n function quantizeAndInverse(component, blockBufferOffset, p) {\n var qt = component.quantizationTable,\n blockData = component.blockData;\n var v0, v1, v2, v3, v4, v5, v6, v7;\n var p0, p1, p2, p3, p4, p5, p6, p7;\n var t;\n if (!qt) {\n throw new JpegError('missing required Quantization Table.');\n }\n for (var row = 0; row < 64; row += 8) {\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n p0 *= qt[row];\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = dctSqrt2 * p0 + 512 >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n v0 = dctSqrt2 * p0 + 128 >> 8;\n v1 = dctSqrt2 * p4 + 128 >> 8;\n v2 = p2;\n v3 = p6;\n v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;\n v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n v0 = v0 + v1 + 1 >> 1;\n v1 = v0 - v1;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n v4 = v4 + v6 + 1 >> 1;\n v6 = v4 - v6;\n v7 = v7 + v5 + 1 >> 1;\n v5 = v7 - v5;\n v0 = v0 + v3 + 1 >> 1;\n v3 = v0 - v3;\n v1 = v1 + v2 + 1 >> 1;\n v2 = v1 - v2;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n for (var col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = dctSqrt2 * p0 + 8192 >> 14;\n t = t < -2040 ? 0 : t >= 2024 ? 255 : t + 2056 >> 4;\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n v0 = dctSqrt2 * p0 + 2048 >> 12;\n v1 = dctSqrt2 * p4 + 2048 >> 12;\n v2 = p2;\n v3 = p6;\n v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;\n v5 = p3;\n v6 = p5;\n v0 = (v0 + v1 + 1 >> 1) + 4112;\n v1 = v0 - v1;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n v4 = v4 + v6 + 1 >> 1;\n v6 = v4 - v6;\n v7 = v7 + v5 + 1 >> 1;\n v5 = v7 - v5;\n v0 = v0 + v3 + 1 >> 1;\n v3 = v0 - v3;\n v1 = v1 + v2 + 1 >> 1;\n v2 = v1 - v2;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n p0 = p0 < 16 ? 0 : p0 >= 4080 ? 255 : p0 >> 4;\n p1 = p1 < 16 ? 0 : p1 >= 4080 ? 255 : p1 >> 4;\n p2 = p2 < 16 ? 0 : p2 >= 4080 ? 255 : p2 >> 4;\n p3 = p3 < 16 ? 0 : p3 >= 4080 ? 255 : p3 >> 4;\n p4 = p4 < 16 ? 0 : p4 >= 4080 ? 255 : p4 >> 4;\n p5 = p5 < 16 ? 0 : p5 >= 4080 ? 255 : p5 >> 4;\n p6 = p6 < 16 ? 0 : p6 >= 4080 ? 255 : p6 >> 4;\n p7 = p7 < 16 ? 0 : p7 >= 4080 ? 255 : p7 >> 4;\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n }\n function buildComponentData(frame, component) {\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var computationBuffer = new Int16Array(64);\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n }\n function findNextFileMarker(data, currentPos, startPos) {\n function peekUint16(pos) {\n return data[pos] << 8 | data[pos + 1];\n }\n var maxPos = data.length - 1;\n var newPos = startPos < currentPos ? startPos : currentPos;\n if (currentPos >= maxPos) {\n return null;\n }\n var currentMarker = peekUint16(currentPos);\n if (currentMarker >= 0xFFC0 && currentMarker <= 0xFFFE) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos\n };\n }\n var newMarker = peekUint16(newPos);\n while (!(newMarker >= 0xFFC0 && newMarker <= 0xFFFE)) {\n if (++newPos >= maxPos) {\n return null;\n }\n newMarker = peekUint16(newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos\n };\n }\n JpegImage.prototype = {\n parse: function parse(data) {\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length = readUint16();\n var endOffset = offset + length - 2;\n var fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)('readDataBlock - incorrect length, next marker is: ' + fileMarker.invalid);\n endOffset = fileMarker.offset;\n }\n var array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame) {\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (var i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);\n var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n var offset = 0;\n var jfif = null;\n var adobe = null;\n var frame, resetInterval;\n var quantizationTables = [];\n var huffmanTablesAC = [],\n huffmanTablesDC = [];\n var fileMarker = readUint16();\n if (fileMarker !== 0xFFD8) {\n throw new JpegError('SOI not found');\n }\n fileMarker = readUint16();\n while (fileMarker !== 0xFFD9) {\n var i, j, l;\n switch (fileMarker) {\n case 0xFFE0:\n case 0xFFE1:\n case 0xFFE2:\n case 0xFFE3:\n case 0xFFE4:\n case 0xFFE5:\n case 0xFFE6:\n case 0xFFE7:\n case 0xFFE8:\n case 0xFFE9:\n case 0xFFEA:\n case 0xFFEB:\n case 0xFFEC:\n case 0xFFED:\n case 0xFFEE:\n case 0xFFEF:\n case 0xFFFE:\n var appData = readDataBlock();\n if (fileMarker === 0xFFE0) {\n if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {\n jfif = {\n version: {\n major: appData[5],\n minor: appData[6]\n },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 0xFFEE) {\n if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F && appData[3] === 0x62 && appData[4] === 0x65) {\n adobe = {\n version: appData[5] << 8 | appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 0xFFDB:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n var z;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n var tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else {\n throw new JpegError('DQT - invalid table spec');\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 0xFFC0:\n case 0xFFC1:\n case 0xFFC2:\n if (frame) {\n throw new JpegError('Only single frame JPEGs supported');\n }\n readUint16();\n frame = {};\n frame.extended = fileMarker === 0xFFC1;\n frame.progressive = fileMarker === 0xFFC2;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = [];\n frame.componentIds = {};\n var componentsCount = data[offset++],\n componentId;\n var maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n var qId = data[offset + 2];\n l = frame.components.push({\n h: h,\n v: v,\n quantizationId: qId,\n quantizationTable: null\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n case 0xFFC4:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength;) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n case 0xFFDD:\n readUint16();\n resetInterval = readUint16();\n break;\n case 0xFFDA:\n readUint16();\n var selectorsCount = data[offset++];\n var components = [],\n component;\n for (i = 0; i < selectorsCount; i++) {\n var componentIndex = frame.componentIds[data[offset++]];\n component = frame.components[componentIndex];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n break;\n case 0xFFFF:\n if (data[offset] !== 0xFF) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] === 0xFF && data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n offset -= 3;\n break;\n }\n throw new JpegError('unknown marker ' + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n this.components.push({\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn\n });\n }\n this.numComponents = this.components.length;\n },\n _getLinearizedBlockData: function getLinearizedBlockData(width, height) {\n var scaleX = this.width / width,\n scaleY = this.height / height;\n var component, componentScaleX, componentScaleY, blocksPerScanline;\n var x, y, i, j, k;\n var index;\n var offset = 0;\n var output;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint8ClampedArray(dataLength);\n var xScaleBlockOffset = new Uint32Array(width);\n var mask3LSB = 0xfffffff8;\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = component.blocksPerLine + 1 << 3;\n for (x = 0; x < width; x++) {\n j = 0 | x * componentScaleX;\n xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;\n }\n for (y = 0; y < height; y++) {\n j = 0 | y * componentScaleY;\n index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n var transform = this.decodeTransform;\n if (transform) {\n for (i = 0; i < dataLength;) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n },\n _isColorConversionNeeded: function _isColorConversionNeeded() {\n if (this.adobe) {\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this.colorTransform === 0) {\n return false;\n }\n return true;\n }\n if (this.colorTransform === 1) {\n return true;\n }\n return false;\n },\n _convertYccToRgb: function convertYccToRgb(data) {\n var Y, Cb, Cr;\n for (var i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n },\n _convertYcckToRgb: function convertYcckToRgb(data) {\n var Y, Cb, Cr, k;\n var offset = 0;\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776);\n data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665);\n data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n return data;\n },\n _convertYcckToCmyk: function convertYcckToCmyk(data) {\n var Y, Cb, Cr;\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n }\n return data;\n },\n _convertCmykToRgb: function convertCmykToRgb(data) {\n var c, m, y, k;\n var offset = 0;\n var scale = 1 / 255;\n for (var i = 0, length = data.length; i < length; i += 4) {\n c = data[i] * scale;\n m = data[i + 1] * scale;\n y = data[i + 2] * scale;\n k = data[i + 3] * scale;\n data[offset++] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k - 285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y - 17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) - k * (21.86122147463605 * k + 189.48180835922747);\n data[offset++] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k - 79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) - k * (20.737325471181034 * k + 187.80453709719578);\n data[offset++] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k - 14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k - 193.58209356861505) - k * (22.33816807309886 * k + 180.12613974708367);\n }\n return data;\n },\n getData: function getData(width, height, forceRGBoutput) {\n if (this.numComponents > 4) {\n throw new JpegError('Unsupported color mode');\n }\n var data = this._getLinearizedBlockData(width, height);\n if (this.numComponents === 1 && forceRGBoutput) {\n var dataLength = data.length;\n var rgbData = new Uint8ClampedArray(dataLength * 3);\n var offset = 0;\n for (var i = 0; i < dataLength; i++) {\n var grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded()) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded()) {\n if (forceRGBoutput) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGBoutput) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n };\n return JpegImage;\n }();\n exports.JpegImage = JpegImage;\n\n /***/\n }, /* 97 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.getMetrics = undefined;\n var _util = __w_pdfjs_require__(0);\n var getMetrics = (0, _util.getLookupTableFactory)(function (t) {\n t['Courier'] = 600;\n t['Courier-Bold'] = 600;\n t['Courier-BoldOblique'] = 600;\n t['Courier-Oblique'] = 600;\n t['Helvetica'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 278;\n t['exclam'] = 278;\n t['quotedbl'] = 355;\n t['numbersign'] = 556;\n t['dollar'] = 556;\n t['percent'] = 889;\n t['ampersand'] = 667;\n t['quoteright'] = 222;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 389;\n t['plus'] = 584;\n t['comma'] = 278;\n t['hyphen'] = 333;\n t['period'] = 278;\n t['slash'] = 278;\n t['zero'] = 556;\n t['one'] = 556;\n t['two'] = 556;\n t['three'] = 556;\n t['four'] = 556;\n t['five'] = 556;\n t['six'] = 556;\n t['seven'] = 556;\n t['eight'] = 556;\n t['nine'] = 556;\n t['colon'] = 278;\n t['semicolon'] = 278;\n t['less'] = 584;\n t['equal'] = 584;\n t['greater'] = 584;\n t['question'] = 556;\n t['at'] = 1015;\n t['A'] = 667;\n t['B'] = 667;\n t['C'] = 722;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 611;\n t['G'] = 778;\n t['H'] = 722;\n t['I'] = 278;\n t['J'] = 500;\n t['K'] = 667;\n t['L'] = 556;\n t['M'] = 833;\n t['N'] = 722;\n t['O'] = 778;\n t['P'] = 667;\n t['Q'] = 778;\n t['R'] = 722;\n t['S'] = 667;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 667;\n t['W'] = 944;\n t['X'] = 667;\n t['Y'] = 667;\n t['Z'] = 611;\n t['bracketleft'] = 278;\n t['backslash'] = 278;\n t['bracketright'] = 278;\n t['asciicircum'] = 469;\n t['underscore'] = 556;\n t['quoteleft'] = 222;\n t['a'] = 556;\n t['b'] = 556;\n t['c'] = 500;\n t['d'] = 556;\n t['e'] = 556;\n t['f'] = 278;\n t['g'] = 556;\n t['h'] = 556;\n t['i'] = 222;\n t['j'] = 222;\n t['k'] = 500;\n t['l'] = 222;\n t['m'] = 833;\n t['n'] = 556;\n t['o'] = 556;\n t['p'] = 556;\n t['q'] = 556;\n t['r'] = 333;\n t['s'] = 500;\n t['t'] = 278;\n t['u'] = 556;\n t['v'] = 500;\n t['w'] = 722;\n t['x'] = 500;\n t['y'] = 500;\n t['z'] = 500;\n t['braceleft'] = 334;\n t['bar'] = 260;\n t['braceright'] = 334;\n t['asciitilde'] = 584;\n t['exclamdown'] = 333;\n t['cent'] = 556;\n t['sterling'] = 556;\n t['fraction'] = 167;\n t['yen'] = 556;\n t['florin'] = 556;\n t['section'] = 556;\n t['currency'] = 556;\n t['quotesingle'] = 191;\n t['quotedblleft'] = 333;\n t['guillemotleft'] = 556;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 500;\n t['fl'] = 500;\n t['endash'] = 556;\n t['dagger'] = 556;\n t['daggerdbl'] = 556;\n t['periodcentered'] = 278;\n t['paragraph'] = 537;\n t['bullet'] = 350;\n t['quotesinglbase'] = 222;\n t['quotedblbase'] = 333;\n t['quotedblright'] = 333;\n t['guillemotright'] = 556;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 611;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 1000;\n t['ordfeminine'] = 370;\n t['Lslash'] = 556;\n t['Oslash'] = 778;\n t['OE'] = 1000;\n t['ordmasculine'] = 365;\n t['ae'] = 889;\n t['dotlessi'] = 278;\n t['lslash'] = 222;\n t['oslash'] = 611;\n t['oe'] = 944;\n t['germandbls'] = 611;\n t['Idieresis'] = 278;\n t['eacute'] = 556;\n t['abreve'] = 556;\n t['uhungarumlaut'] = 556;\n t['ecaron'] = 556;\n t['Ydieresis'] = 667;\n t['divide'] = 584;\n t['Yacute'] = 667;\n t['Acircumflex'] = 667;\n t['aacute'] = 556;\n t['Ucircumflex'] = 722;\n t['yacute'] = 500;\n t['scommaaccent'] = 500;\n t['ecircumflex'] = 556;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 556;\n t['Uacute'] = 722;\n t['uogonek'] = 556;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 737;\n t['Emacron'] = 667;\n t['ccaron'] = 500;\n t['aring'] = 556;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 222;\n t['agrave'] = 556;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 722;\n t['atilde'] = 556;\n t['Edotaccent'] = 667;\n t['scaron'] = 500;\n t['scedilla'] = 500;\n t['iacute'] = 278;\n t['lozenge'] = 471;\n t['Rcaron'] = 722;\n t['Gcommaaccent'] = 778;\n t['ucircumflex'] = 556;\n t['acircumflex'] = 556;\n t['Amacron'] = 667;\n t['rcaron'] = 333;\n t['ccedilla'] = 500;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 667;\n t['Omacron'] = 778;\n t['Racute'] = 722;\n t['Sacute'] = 667;\n t['dcaron'] = 643;\n t['Umacron'] = 722;\n t['uring'] = 556;\n t['threesuperior'] = 333;\n t['Ograve'] = 778;\n t['Agrave'] = 667;\n t['Abreve'] = 667;\n t['multiply'] = 584;\n t['uacute'] = 556;\n t['Tcaron'] = 611;\n t['partialdiff'] = 476;\n t['ydieresis'] = 500;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 556;\n t['edieresis'] = 556;\n t['cacute'] = 500;\n t['nacute'] = 556;\n t['umacron'] = 556;\n t['Ncaron'] = 722;\n t['Iacute'] = 278;\n t['plusminus'] = 584;\n t['brokenbar'] = 260;\n t['registered'] = 737;\n t['Gbreve'] = 778;\n t['Idotaccent'] = 278;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 333;\n t['omacron'] = 556;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 722;\n t['lcommaaccent'] = 222;\n t['tcaron'] = 317;\n t['eogonek'] = 556;\n t['Uogonek'] = 722;\n t['Aacute'] = 667;\n t['Adieresis'] = 667;\n t['egrave'] = 556;\n t['zacute'] = 500;\n t['iogonek'] = 222;\n t['Oacute'] = 778;\n t['oacute'] = 556;\n t['amacron'] = 556;\n t['sacute'] = 500;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 778;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 556;\n t['twosuperior'] = 333;\n t['Odieresis'] = 778;\n t['mu'] = 556;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 556;\n t['Eogonek'] = 667;\n t['dcroat'] = 556;\n t['threequarters'] = 834;\n t['Scedilla'] = 667;\n t['lcaron'] = 299;\n t['Kcommaaccent'] = 667;\n t['Lacute'] = 556;\n t['trademark'] = 1000;\n t['edotaccent'] = 556;\n t['Igrave'] = 278;\n t['Imacron'] = 278;\n t['Lcaron'] = 556;\n t['onehalf'] = 834;\n t['lessequal'] = 549;\n t['ocircumflex'] = 556;\n t['ntilde'] = 556;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 556;\n t['gbreve'] = 556;\n t['onequarter'] = 834;\n t['Scaron'] = 667;\n t['Scommaaccent'] = 667;\n t['Ohungarumlaut'] = 778;\n t['degree'] = 400;\n t['ograve'] = 556;\n t['Ccaron'] = 722;\n t['ugrave'] = 556;\n t['radical'] = 453;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 333;\n t['Ntilde'] = 722;\n t['otilde'] = 556;\n t['Rcommaaccent'] = 722;\n t['Lcommaaccent'] = 556;\n t['Atilde'] = 667;\n t['Aogonek'] = 667;\n t['Aring'] = 667;\n t['Otilde'] = 778;\n t['zdotaccent'] = 500;\n t['Ecaron'] = 667;\n t['Iogonek'] = 278;\n t['kcommaaccent'] = 500;\n t['minus'] = 584;\n t['Icircumflex'] = 278;\n t['ncaron'] = 556;\n t['tcommaaccent'] = 278;\n t['logicalnot'] = 584;\n t['odieresis'] = 556;\n t['udieresis'] = 556;\n t['notequal'] = 549;\n t['gcommaaccent'] = 556;\n t['eth'] = 556;\n t['zcaron'] = 500;\n t['ncommaaccent'] = 556;\n t['onesuperior'] = 333;\n t['imacron'] = 278;\n t['Euro'] = 556;\n });\n t['Helvetica-Bold'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 278;\n t['exclam'] = 333;\n t['quotedbl'] = 474;\n t['numbersign'] = 556;\n t['dollar'] = 556;\n t['percent'] = 889;\n t['ampersand'] = 722;\n t['quoteright'] = 278;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 389;\n t['plus'] = 584;\n t['comma'] = 278;\n t['hyphen'] = 333;\n t['period'] = 278;\n t['slash'] = 278;\n t['zero'] = 556;\n t['one'] = 556;\n t['two'] = 556;\n t['three'] = 556;\n t['four'] = 556;\n t['five'] = 556;\n t['six'] = 556;\n t['seven'] = 556;\n t['eight'] = 556;\n t['nine'] = 556;\n t['colon'] = 333;\n t['semicolon'] = 333;\n t['less'] = 584;\n t['equal'] = 584;\n t['greater'] = 584;\n t['question'] = 611;\n t['at'] = 975;\n t['A'] = 722;\n t['B'] = 722;\n t['C'] = 722;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 611;\n t['G'] = 778;\n t['H'] = 722;\n t['I'] = 278;\n t['J'] = 556;\n t['K'] = 722;\n t['L'] = 611;\n t['M'] = 833;\n t['N'] = 722;\n t['O'] = 778;\n t['P'] = 667;\n t['Q'] = 778;\n t['R'] = 722;\n t['S'] = 667;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 667;\n t['W'] = 944;\n t['X'] = 667;\n t['Y'] = 667;\n t['Z'] = 611;\n t['bracketleft'] = 333;\n t['backslash'] = 278;\n t['bracketright'] = 333;\n t['asciicircum'] = 584;\n t['underscore'] = 556;\n t['quoteleft'] = 278;\n t['a'] = 556;\n t['b'] = 611;\n t['c'] = 556;\n t['d'] = 611;\n t['e'] = 556;\n t['f'] = 333;\n t['g'] = 611;\n t['h'] = 611;\n t['i'] = 278;\n t['j'] = 278;\n t['k'] = 556;\n t['l'] = 278;\n t['m'] = 889;\n t['n'] = 611;\n t['o'] = 611;\n t['p'] = 611;\n t['q'] = 611;\n t['r'] = 389;\n t['s'] = 556;\n t['t'] = 333;\n t['u'] = 611;\n t['v'] = 556;\n t['w'] = 778;\n t['x'] = 556;\n t['y'] = 556;\n t['z'] = 500;\n t['braceleft'] = 389;\n t['bar'] = 280;\n t['braceright'] = 389;\n t['asciitilde'] = 584;\n t['exclamdown'] = 333;\n t['cent'] = 556;\n t['sterling'] = 556;\n t['fraction'] = 167;\n t['yen'] = 556;\n t['florin'] = 556;\n t['section'] = 556;\n t['currency'] = 556;\n t['quotesingle'] = 238;\n t['quotedblleft'] = 500;\n t['guillemotleft'] = 556;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 611;\n t['fl'] = 611;\n t['endash'] = 556;\n t['dagger'] = 556;\n t['daggerdbl'] = 556;\n t['periodcentered'] = 278;\n t['paragraph'] = 556;\n t['bullet'] = 350;\n t['quotesinglbase'] = 278;\n t['quotedblbase'] = 500;\n t['quotedblright'] = 500;\n t['guillemotright'] = 556;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 611;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 1000;\n t['ordfeminine'] = 370;\n t['Lslash'] = 611;\n t['Oslash'] = 778;\n t['OE'] = 1000;\n t['ordmasculine'] = 365;\n t['ae'] = 889;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 611;\n t['oe'] = 944;\n t['germandbls'] = 611;\n t['Idieresis'] = 278;\n t['eacute'] = 556;\n t['abreve'] = 556;\n t['uhungarumlaut'] = 611;\n t['ecaron'] = 556;\n t['Ydieresis'] = 667;\n t['divide'] = 584;\n t['Yacute'] = 667;\n t['Acircumflex'] = 722;\n t['aacute'] = 556;\n t['Ucircumflex'] = 722;\n t['yacute'] = 556;\n t['scommaaccent'] = 556;\n t['ecircumflex'] = 556;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 556;\n t['Uacute'] = 722;\n t['uogonek'] = 611;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 737;\n t['Emacron'] = 667;\n t['ccaron'] = 556;\n t['aring'] = 556;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 278;\n t['agrave'] = 556;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 722;\n t['atilde'] = 556;\n t['Edotaccent'] = 667;\n t['scaron'] = 556;\n t['scedilla'] = 556;\n t['iacute'] = 278;\n t['lozenge'] = 494;\n t['Rcaron'] = 722;\n t['Gcommaaccent'] = 778;\n t['ucircumflex'] = 611;\n t['acircumflex'] = 556;\n t['Amacron'] = 722;\n t['rcaron'] = 389;\n t['ccedilla'] = 556;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 667;\n t['Omacron'] = 778;\n t['Racute'] = 722;\n t['Sacute'] = 667;\n t['dcaron'] = 743;\n t['Umacron'] = 722;\n t['uring'] = 611;\n t['threesuperior'] = 333;\n t['Ograve'] = 778;\n t['Agrave'] = 722;\n t['Abreve'] = 722;\n t['multiply'] = 584;\n t['uacute'] = 611;\n t['Tcaron'] = 611;\n t['partialdiff'] = 494;\n t['ydieresis'] = 556;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 556;\n t['edieresis'] = 556;\n t['cacute'] = 556;\n t['nacute'] = 611;\n t['umacron'] = 611;\n t['Ncaron'] = 722;\n t['Iacute'] = 278;\n t['plusminus'] = 584;\n t['brokenbar'] = 280;\n t['registered'] = 737;\n t['Gbreve'] = 778;\n t['Idotaccent'] = 278;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 389;\n t['omacron'] = 611;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 722;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 389;\n t['eogonek'] = 556;\n t['Uogonek'] = 722;\n t['Aacute'] = 722;\n t['Adieresis'] = 722;\n t['egrave'] = 556;\n t['zacute'] = 500;\n t['iogonek'] = 278;\n t['Oacute'] = 778;\n t['oacute'] = 611;\n t['amacron'] = 556;\n t['sacute'] = 556;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 778;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 611;\n t['twosuperior'] = 333;\n t['Odieresis'] = 778;\n t['mu'] = 611;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 611;\n t['Eogonek'] = 667;\n t['dcroat'] = 611;\n t['threequarters'] = 834;\n t['Scedilla'] = 667;\n t['lcaron'] = 400;\n t['Kcommaaccent'] = 722;\n t['Lacute'] = 611;\n t['trademark'] = 1000;\n t['edotaccent'] = 556;\n t['Igrave'] = 278;\n t['Imacron'] = 278;\n t['Lcaron'] = 611;\n t['onehalf'] = 834;\n t['lessequal'] = 549;\n t['ocircumflex'] = 611;\n t['ntilde'] = 611;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 556;\n t['gbreve'] = 611;\n t['onequarter'] = 834;\n t['Scaron'] = 667;\n t['Scommaaccent'] = 667;\n t['Ohungarumlaut'] = 778;\n t['degree'] = 400;\n t['ograve'] = 611;\n t['Ccaron'] = 722;\n t['ugrave'] = 611;\n t['radical'] = 549;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 389;\n t['Ntilde'] = 722;\n t['otilde'] = 611;\n t['Rcommaaccent'] = 722;\n t['Lcommaaccent'] = 611;\n t['Atilde'] = 722;\n t['Aogonek'] = 722;\n t['Aring'] = 722;\n t['Otilde'] = 778;\n t['zdotaccent'] = 500;\n t['Ecaron'] = 667;\n t['Iogonek'] = 278;\n t['kcommaaccent'] = 556;\n t['minus'] = 584;\n t['Icircumflex'] = 278;\n t['ncaron'] = 611;\n t['tcommaaccent'] = 333;\n t['logicalnot'] = 584;\n t['odieresis'] = 611;\n t['udieresis'] = 611;\n t['notequal'] = 549;\n t['gcommaaccent'] = 611;\n t['eth'] = 611;\n t['zcaron'] = 500;\n t['ncommaaccent'] = 611;\n t['onesuperior'] = 333;\n t['imacron'] = 278;\n t['Euro'] = 556;\n });\n t['Helvetica-BoldOblique'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 278;\n t['exclam'] = 333;\n t['quotedbl'] = 474;\n t['numbersign'] = 556;\n t['dollar'] = 556;\n t['percent'] = 889;\n t['ampersand'] = 722;\n t['quoteright'] = 278;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 389;\n t['plus'] = 584;\n t['comma'] = 278;\n t['hyphen'] = 333;\n t['period'] = 278;\n t['slash'] = 278;\n t['zero'] = 556;\n t['one'] = 556;\n t['two'] = 556;\n t['three'] = 556;\n t['four'] = 556;\n t['five'] = 556;\n t['six'] = 556;\n t['seven'] = 556;\n t['eight'] = 556;\n t['nine'] = 556;\n t['colon'] = 333;\n t['semicolon'] = 333;\n t['less'] = 584;\n t['equal'] = 584;\n t['greater'] = 584;\n t['question'] = 611;\n t['at'] = 975;\n t['A'] = 722;\n t['B'] = 722;\n t['C'] = 722;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 611;\n t['G'] = 778;\n t['H'] = 722;\n t['I'] = 278;\n t['J'] = 556;\n t['K'] = 722;\n t['L'] = 611;\n t['M'] = 833;\n t['N'] = 722;\n t['O'] = 778;\n t['P'] = 667;\n t['Q'] = 778;\n t['R'] = 722;\n t['S'] = 667;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 667;\n t['W'] = 944;\n t['X'] = 667;\n t['Y'] = 667;\n t['Z'] = 611;\n t['bracketleft'] = 333;\n t['backslash'] = 278;\n t['bracketright'] = 333;\n t['asciicircum'] = 584;\n t['underscore'] = 556;\n t['quoteleft'] = 278;\n t['a'] = 556;\n t['b'] = 611;\n t['c'] = 556;\n t['d'] = 611;\n t['e'] = 556;\n t['f'] = 333;\n t['g'] = 611;\n t['h'] = 611;\n t['i'] = 278;\n t['j'] = 278;\n t['k'] = 556;\n t['l'] = 278;\n t['m'] = 889;\n t['n'] = 611;\n t['o'] = 611;\n t['p'] = 611;\n t['q'] = 611;\n t['r'] = 389;\n t['s'] = 556;\n t['t'] = 333;\n t['u'] = 611;\n t['v'] = 556;\n t['w'] = 778;\n t['x'] = 556;\n t['y'] = 556;\n t['z'] = 500;\n t['braceleft'] = 389;\n t['bar'] = 280;\n t['braceright'] = 389;\n t['asciitilde'] = 584;\n t['exclamdown'] = 333;\n t['cent'] = 556;\n t['sterling'] = 556;\n t['fraction'] = 167;\n t['yen'] = 556;\n t['florin'] = 556;\n t['section'] = 556;\n t['currency'] = 556;\n t['quotesingle'] = 238;\n t['quotedblleft'] = 500;\n t['guillemotleft'] = 556;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 611;\n t['fl'] = 611;\n t['endash'] = 556;\n t['dagger'] = 556;\n t['daggerdbl'] = 556;\n t['periodcentered'] = 278;\n t['paragraph'] = 556;\n t['bullet'] = 350;\n t['quotesinglbase'] = 278;\n t['quotedblbase'] = 500;\n t['quotedblright'] = 500;\n t['guillemotright'] = 556;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 611;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 1000;\n t['ordfeminine'] = 370;\n t['Lslash'] = 611;\n t['Oslash'] = 778;\n t['OE'] = 1000;\n t['ordmasculine'] = 365;\n t['ae'] = 889;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 611;\n t['oe'] = 944;\n t['germandbls'] = 611;\n t['Idieresis'] = 278;\n t['eacute'] = 556;\n t['abreve'] = 556;\n t['uhungarumlaut'] = 611;\n t['ecaron'] = 556;\n t['Ydieresis'] = 667;\n t['divide'] = 584;\n t['Yacute'] = 667;\n t['Acircumflex'] = 722;\n t['aacute'] = 556;\n t['Ucircumflex'] = 722;\n t['yacute'] = 556;\n t['scommaaccent'] = 556;\n t['ecircumflex'] = 556;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 556;\n t['Uacute'] = 722;\n t['uogonek'] = 611;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 737;\n t['Emacron'] = 667;\n t['ccaron'] = 556;\n t['aring'] = 556;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 278;\n t['agrave'] = 556;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 722;\n t['atilde'] = 556;\n t['Edotaccent'] = 667;\n t['scaron'] = 556;\n t['scedilla'] = 556;\n t['iacute'] = 278;\n t['lozenge'] = 494;\n t['Rcaron'] = 722;\n t['Gcommaaccent'] = 778;\n t['ucircumflex'] = 611;\n t['acircumflex'] = 556;\n t['Amacron'] = 722;\n t['rcaron'] = 389;\n t['ccedilla'] = 556;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 667;\n t['Omacron'] = 778;\n t['Racute'] = 722;\n t['Sacute'] = 667;\n t['dcaron'] = 743;\n t['Umacron'] = 722;\n t['uring'] = 611;\n t['threesuperior'] = 333;\n t['Ograve'] = 778;\n t['Agrave'] = 722;\n t['Abreve'] = 722;\n t['multiply'] = 584;\n t['uacute'] = 611;\n t['Tcaron'] = 611;\n t['partialdiff'] = 494;\n t['ydieresis'] = 556;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 556;\n t['edieresis'] = 556;\n t['cacute'] = 556;\n t['nacute'] = 611;\n t['umacron'] = 611;\n t['Ncaron'] = 722;\n t['Iacute'] = 278;\n t['plusminus'] = 584;\n t['brokenbar'] = 280;\n t['registered'] = 737;\n t['Gbreve'] = 778;\n t['Idotaccent'] = 278;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 389;\n t['omacron'] = 611;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 722;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 389;\n t['eogonek'] = 556;\n t['Uogonek'] = 722;\n t['Aacute'] = 722;\n t['Adieresis'] = 722;\n t['egrave'] = 556;\n t['zacute'] = 500;\n t['iogonek'] = 278;\n t['Oacute'] = 778;\n t['oacute'] = 611;\n t['amacron'] = 556;\n t['sacute'] = 556;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 778;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 611;\n t['twosuperior'] = 333;\n t['Odieresis'] = 778;\n t['mu'] = 611;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 611;\n t['Eogonek'] = 667;\n t['dcroat'] = 611;\n t['threequarters'] = 834;\n t['Scedilla'] = 667;\n t['lcaron'] = 400;\n t['Kcommaaccent'] = 722;\n t['Lacute'] = 611;\n t['trademark'] = 1000;\n t['edotaccent'] = 556;\n t['Igrave'] = 278;\n t['Imacron'] = 278;\n t['Lcaron'] = 611;\n t['onehalf'] = 834;\n t['lessequal'] = 549;\n t['ocircumflex'] = 611;\n t['ntilde'] = 611;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 556;\n t['gbreve'] = 611;\n t['onequarter'] = 834;\n t['Scaron'] = 667;\n t['Scommaaccent'] = 667;\n t['Ohungarumlaut'] = 778;\n t['degree'] = 400;\n t['ograve'] = 611;\n t['Ccaron'] = 722;\n t['ugrave'] = 611;\n t['radical'] = 549;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 389;\n t['Ntilde'] = 722;\n t['otilde'] = 611;\n t['Rcommaaccent'] = 722;\n t['Lcommaaccent'] = 611;\n t['Atilde'] = 722;\n t['Aogonek'] = 722;\n t['Aring'] = 722;\n t['Otilde'] = 778;\n t['zdotaccent'] = 500;\n t['Ecaron'] = 667;\n t['Iogonek'] = 278;\n t['kcommaaccent'] = 556;\n t['minus'] = 584;\n t['Icircumflex'] = 278;\n t['ncaron'] = 611;\n t['tcommaaccent'] = 333;\n t['logicalnot'] = 584;\n t['odieresis'] = 611;\n t['udieresis'] = 611;\n t['notequal'] = 549;\n t['gcommaaccent'] = 611;\n t['eth'] = 611;\n t['zcaron'] = 500;\n t['ncommaaccent'] = 611;\n t['onesuperior'] = 333;\n t['imacron'] = 278;\n t['Euro'] = 556;\n });\n t['Helvetica-Oblique'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 278;\n t['exclam'] = 278;\n t['quotedbl'] = 355;\n t['numbersign'] = 556;\n t['dollar'] = 556;\n t['percent'] = 889;\n t['ampersand'] = 667;\n t['quoteright'] = 222;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 389;\n t['plus'] = 584;\n t['comma'] = 278;\n t['hyphen'] = 333;\n t['period'] = 278;\n t['slash'] = 278;\n t['zero'] = 556;\n t['one'] = 556;\n t['two'] = 556;\n t['three'] = 556;\n t['four'] = 556;\n t['five'] = 556;\n t['six'] = 556;\n t['seven'] = 556;\n t['eight'] = 556;\n t['nine'] = 556;\n t['colon'] = 278;\n t['semicolon'] = 278;\n t['less'] = 584;\n t['equal'] = 584;\n t['greater'] = 584;\n t['question'] = 556;\n t['at'] = 1015;\n t['A'] = 667;\n t['B'] = 667;\n t['C'] = 722;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 611;\n t['G'] = 778;\n t['H'] = 722;\n t['I'] = 278;\n t['J'] = 500;\n t['K'] = 667;\n t['L'] = 556;\n t['M'] = 833;\n t['N'] = 722;\n t['O'] = 778;\n t['P'] = 667;\n t['Q'] = 778;\n t['R'] = 722;\n t['S'] = 667;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 667;\n t['W'] = 944;\n t['X'] = 667;\n t['Y'] = 667;\n t['Z'] = 611;\n t['bracketleft'] = 278;\n t['backslash'] = 278;\n t['bracketright'] = 278;\n t['asciicircum'] = 469;\n t['underscore'] = 556;\n t['quoteleft'] = 222;\n t['a'] = 556;\n t['b'] = 556;\n t['c'] = 500;\n t['d'] = 556;\n t['e'] = 556;\n t['f'] = 278;\n t['g'] = 556;\n t['h'] = 556;\n t['i'] = 222;\n t['j'] = 222;\n t['k'] = 500;\n t['l'] = 222;\n t['m'] = 833;\n t['n'] = 556;\n t['o'] = 556;\n t['p'] = 556;\n t['q'] = 556;\n t['r'] = 333;\n t['s'] = 500;\n t['t'] = 278;\n t['u'] = 556;\n t['v'] = 500;\n t['w'] = 722;\n t['x'] = 500;\n t['y'] = 500;\n t['z'] = 500;\n t['braceleft'] = 334;\n t['bar'] = 260;\n t['braceright'] = 334;\n t['asciitilde'] = 584;\n t['exclamdown'] = 333;\n t['cent'] = 556;\n t['sterling'] = 556;\n t['fraction'] = 167;\n t['yen'] = 556;\n t['florin'] = 556;\n t['section'] = 556;\n t['currency'] = 556;\n t['quotesingle'] = 191;\n t['quotedblleft'] = 333;\n t['guillemotleft'] = 556;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 500;\n t['fl'] = 500;\n t['endash'] = 556;\n t['dagger'] = 556;\n t['daggerdbl'] = 556;\n t['periodcentered'] = 278;\n t['paragraph'] = 537;\n t['bullet'] = 350;\n t['quotesinglbase'] = 222;\n t['quotedblbase'] = 333;\n t['quotedblright'] = 333;\n t['guillemotright'] = 556;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 611;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 1000;\n t['ordfeminine'] = 370;\n t['Lslash'] = 556;\n t['Oslash'] = 778;\n t['OE'] = 1000;\n t['ordmasculine'] = 365;\n t['ae'] = 889;\n t['dotlessi'] = 278;\n t['lslash'] = 222;\n t['oslash'] = 611;\n t['oe'] = 944;\n t['germandbls'] = 611;\n t['Idieresis'] = 278;\n t['eacute'] = 556;\n t['abreve'] = 556;\n t['uhungarumlaut'] = 556;\n t['ecaron'] = 556;\n t['Ydieresis'] = 667;\n t['divide'] = 584;\n t['Yacute'] = 667;\n t['Acircumflex'] = 667;\n t['aacute'] = 556;\n t['Ucircumflex'] = 722;\n t['yacute'] = 500;\n t['scommaaccent'] = 500;\n t['ecircumflex'] = 556;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 556;\n t['Uacute'] = 722;\n t['uogonek'] = 556;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 737;\n t['Emacron'] = 667;\n t['ccaron'] = 500;\n t['aring'] = 556;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 222;\n t['agrave'] = 556;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 722;\n t['atilde'] = 556;\n t['Edotaccent'] = 667;\n t['scaron'] = 500;\n t['scedilla'] = 500;\n t['iacute'] = 278;\n t['lozenge'] = 471;\n t['Rcaron'] = 722;\n t['Gcommaaccent'] = 778;\n t['ucircumflex'] = 556;\n t['acircumflex'] = 556;\n t['Amacron'] = 667;\n t['rcaron'] = 333;\n t['ccedilla'] = 500;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 667;\n t['Omacron'] = 778;\n t['Racute'] = 722;\n t['Sacute'] = 667;\n t['dcaron'] = 643;\n t['Umacron'] = 722;\n t['uring'] = 556;\n t['threesuperior'] = 333;\n t['Ograve'] = 778;\n t['Agrave'] = 667;\n t['Abreve'] = 667;\n t['multiply'] = 584;\n t['uacute'] = 556;\n t['Tcaron'] = 611;\n t['partialdiff'] = 476;\n t['ydieresis'] = 500;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 556;\n t['edieresis'] = 556;\n t['cacute'] = 500;\n t['nacute'] = 556;\n t['umacron'] = 556;\n t['Ncaron'] = 722;\n t['Iacute'] = 278;\n t['plusminus'] = 584;\n t['brokenbar'] = 260;\n t['registered'] = 737;\n t['Gbreve'] = 778;\n t['Idotaccent'] = 278;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 333;\n t['omacron'] = 556;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 722;\n t['lcommaaccent'] = 222;\n t['tcaron'] = 317;\n t['eogonek'] = 556;\n t['Uogonek'] = 722;\n t['Aacute'] = 667;\n t['Adieresis'] = 667;\n t['egrave'] = 556;\n t['zacute'] = 500;\n t['iogonek'] = 222;\n t['Oacute'] = 778;\n t['oacute'] = 556;\n t['amacron'] = 556;\n t['sacute'] = 500;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 778;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 556;\n t['twosuperior'] = 333;\n t['Odieresis'] = 778;\n t['mu'] = 556;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 556;\n t['Eogonek'] = 667;\n t['dcroat'] = 556;\n t['threequarters'] = 834;\n t['Scedilla'] = 667;\n t['lcaron'] = 299;\n t['Kcommaaccent'] = 667;\n t['Lacute'] = 556;\n t['trademark'] = 1000;\n t['edotaccent'] = 556;\n t['Igrave'] = 278;\n t['Imacron'] = 278;\n t['Lcaron'] = 556;\n t['onehalf'] = 834;\n t['lessequal'] = 549;\n t['ocircumflex'] = 556;\n t['ntilde'] = 556;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 556;\n t['gbreve'] = 556;\n t['onequarter'] = 834;\n t['Scaron'] = 667;\n t['Scommaaccent'] = 667;\n t['Ohungarumlaut'] = 778;\n t['degree'] = 400;\n t['ograve'] = 556;\n t['Ccaron'] = 722;\n t['ugrave'] = 556;\n t['radical'] = 453;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 333;\n t['Ntilde'] = 722;\n t['otilde'] = 556;\n t['Rcommaaccent'] = 722;\n t['Lcommaaccent'] = 556;\n t['Atilde'] = 667;\n t['Aogonek'] = 667;\n t['Aring'] = 667;\n t['Otilde'] = 778;\n t['zdotaccent'] = 500;\n t['Ecaron'] = 667;\n t['Iogonek'] = 278;\n t['kcommaaccent'] = 500;\n t['minus'] = 584;\n t['Icircumflex'] = 278;\n t['ncaron'] = 556;\n t['tcommaaccent'] = 278;\n t['logicalnot'] = 584;\n t['odieresis'] = 556;\n t['udieresis'] = 556;\n t['notequal'] = 549;\n t['gcommaaccent'] = 556;\n t['eth'] = 556;\n t['zcaron'] = 500;\n t['ncommaaccent'] = 556;\n t['onesuperior'] = 333;\n t['imacron'] = 278;\n t['Euro'] = 556;\n });\n t['Symbol'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 250;\n t['exclam'] = 333;\n t['universal'] = 713;\n t['numbersign'] = 500;\n t['existential'] = 549;\n t['percent'] = 833;\n t['ampersand'] = 778;\n t['suchthat'] = 439;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asteriskmath'] = 500;\n t['plus'] = 549;\n t['comma'] = 250;\n t['minus'] = 549;\n t['period'] = 250;\n t['slash'] = 278;\n t['zero'] = 500;\n t['one'] = 500;\n t['two'] = 500;\n t['three'] = 500;\n t['four'] = 500;\n t['five'] = 500;\n t['six'] = 500;\n t['seven'] = 500;\n t['eight'] = 500;\n t['nine'] = 500;\n t['colon'] = 278;\n t['semicolon'] = 278;\n t['less'] = 549;\n t['equal'] = 549;\n t['greater'] = 549;\n t['question'] = 444;\n t['congruent'] = 549;\n t['Alpha'] = 722;\n t['Beta'] = 667;\n t['Chi'] = 722;\n t['Delta'] = 612;\n t['Epsilon'] = 611;\n t['Phi'] = 763;\n t['Gamma'] = 603;\n t['Eta'] = 722;\n t['Iota'] = 333;\n t['theta1'] = 631;\n t['Kappa'] = 722;\n t['Lambda'] = 686;\n t['Mu'] = 889;\n t['Nu'] = 722;\n t['Omicron'] = 722;\n t['Pi'] = 768;\n t['Theta'] = 741;\n t['Rho'] = 556;\n t['Sigma'] = 592;\n t['Tau'] = 611;\n t['Upsilon'] = 690;\n t['sigma1'] = 439;\n t['Omega'] = 768;\n t['Xi'] = 645;\n t['Psi'] = 795;\n t['Zeta'] = 611;\n t['bracketleft'] = 333;\n t['therefore'] = 863;\n t['bracketright'] = 333;\n t['perpendicular'] = 658;\n t['underscore'] = 500;\n t['radicalex'] = 500;\n t['alpha'] = 631;\n t['beta'] = 549;\n t['chi'] = 549;\n t['delta'] = 494;\n t['epsilon'] = 439;\n t['phi'] = 521;\n t['gamma'] = 411;\n t['eta'] = 603;\n t['iota'] = 329;\n t['phi1'] = 603;\n t['kappa'] = 549;\n t['lambda'] = 549;\n t['mu'] = 576;\n t['nu'] = 521;\n t['omicron'] = 549;\n t['pi'] = 549;\n t['theta'] = 521;\n t['rho'] = 549;\n t['sigma'] = 603;\n t['tau'] = 439;\n t['upsilon'] = 576;\n t['omega1'] = 713;\n t['omega'] = 686;\n t['xi'] = 493;\n t['psi'] = 686;\n t['zeta'] = 494;\n t['braceleft'] = 480;\n t['bar'] = 200;\n t['braceright'] = 480;\n t['similar'] = 549;\n t['Euro'] = 750;\n t['Upsilon1'] = 620;\n t['minute'] = 247;\n t['lessequal'] = 549;\n t['fraction'] = 167;\n t['infinity'] = 713;\n t['florin'] = 500;\n t['club'] = 753;\n t['diamond'] = 753;\n t['heart'] = 753;\n t['spade'] = 753;\n t['arrowboth'] = 1042;\n t['arrowleft'] = 987;\n t['arrowup'] = 603;\n t['arrowright'] = 987;\n t['arrowdown'] = 603;\n t['degree'] = 400;\n t['plusminus'] = 549;\n t['second'] = 411;\n t['greaterequal'] = 549;\n t['multiply'] = 549;\n t['proportional'] = 713;\n t['partialdiff'] = 494;\n t['bullet'] = 460;\n t['divide'] = 549;\n t['notequal'] = 549;\n t['equivalence'] = 549;\n t['approxequal'] = 549;\n t['ellipsis'] = 1000;\n t['arrowvertex'] = 603;\n t['arrowhorizex'] = 1000;\n t['carriagereturn'] = 658;\n t['aleph'] = 823;\n t['Ifraktur'] = 686;\n t['Rfraktur'] = 795;\n t['weierstrass'] = 987;\n t['circlemultiply'] = 768;\n t['circleplus'] = 768;\n t['emptyset'] = 823;\n t['intersection'] = 768;\n t['union'] = 768;\n t['propersuperset'] = 713;\n t['reflexsuperset'] = 713;\n t['notsubset'] = 713;\n t['propersubset'] = 713;\n t['reflexsubset'] = 713;\n t['element'] = 713;\n t['notelement'] = 713;\n t['angle'] = 768;\n t['gradient'] = 713;\n t['registerserif'] = 790;\n t['copyrightserif'] = 790;\n t['trademarkserif'] = 890;\n t['product'] = 823;\n t['radical'] = 549;\n t['dotmath'] = 250;\n t['logicalnot'] = 713;\n t['logicaland'] = 603;\n t['logicalor'] = 603;\n t['arrowdblboth'] = 1042;\n t['arrowdblleft'] = 987;\n t['arrowdblup'] = 603;\n t['arrowdblright'] = 987;\n t['arrowdbldown'] = 603;\n t['lozenge'] = 494;\n t['angleleft'] = 329;\n t['registersans'] = 790;\n t['copyrightsans'] = 790;\n t['trademarksans'] = 786;\n t['summation'] = 713;\n t['parenlefttp'] = 384;\n t['parenleftex'] = 384;\n t['parenleftbt'] = 384;\n t['bracketlefttp'] = 384;\n t['bracketleftex'] = 384;\n t['bracketleftbt'] = 384;\n t['bracelefttp'] = 494;\n t['braceleftmid'] = 494;\n t['braceleftbt'] = 494;\n t['braceex'] = 494;\n t['angleright'] = 329;\n t['integral'] = 274;\n t['integraltp'] = 686;\n t['integralex'] = 686;\n t['integralbt'] = 686;\n t['parenrighttp'] = 384;\n t['parenrightex'] = 384;\n t['parenrightbt'] = 384;\n t['bracketrighttp'] = 384;\n t['bracketrightex'] = 384;\n t['bracketrightbt'] = 384;\n t['bracerighttp'] = 494;\n t['bracerightmid'] = 494;\n t['bracerightbt'] = 494;\n t['apple'] = 790;\n });\n t['Times-Roman'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 250;\n t['exclam'] = 333;\n t['quotedbl'] = 408;\n t['numbersign'] = 500;\n t['dollar'] = 500;\n t['percent'] = 833;\n t['ampersand'] = 778;\n t['quoteright'] = 333;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 500;\n t['plus'] = 564;\n t['comma'] = 250;\n t['hyphen'] = 333;\n t['period'] = 250;\n t['slash'] = 278;\n t['zero'] = 500;\n t['one'] = 500;\n t['two'] = 500;\n t['three'] = 500;\n t['four'] = 500;\n t['five'] = 500;\n t['six'] = 500;\n t['seven'] = 500;\n t['eight'] = 500;\n t['nine'] = 500;\n t['colon'] = 278;\n t['semicolon'] = 278;\n t['less'] = 564;\n t['equal'] = 564;\n t['greater'] = 564;\n t['question'] = 444;\n t['at'] = 921;\n t['A'] = 722;\n t['B'] = 667;\n t['C'] = 667;\n t['D'] = 722;\n t['E'] = 611;\n t['F'] = 556;\n t['G'] = 722;\n t['H'] = 722;\n t['I'] = 333;\n t['J'] = 389;\n t['K'] = 722;\n t['L'] = 611;\n t['M'] = 889;\n t['N'] = 722;\n t['O'] = 722;\n t['P'] = 556;\n t['Q'] = 722;\n t['R'] = 667;\n t['S'] = 556;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 722;\n t['W'] = 944;\n t['X'] = 722;\n t['Y'] = 722;\n t['Z'] = 611;\n t['bracketleft'] = 333;\n t['backslash'] = 278;\n t['bracketright'] = 333;\n t['asciicircum'] = 469;\n t['underscore'] = 500;\n t['quoteleft'] = 333;\n t['a'] = 444;\n t['b'] = 500;\n t['c'] = 444;\n t['d'] = 500;\n t['e'] = 444;\n t['f'] = 333;\n t['g'] = 500;\n t['h'] = 500;\n t['i'] = 278;\n t['j'] = 278;\n t['k'] = 500;\n t['l'] = 278;\n t['m'] = 778;\n t['n'] = 500;\n t['o'] = 500;\n t['p'] = 500;\n t['q'] = 500;\n t['r'] = 333;\n t['s'] = 389;\n t['t'] = 278;\n t['u'] = 500;\n t['v'] = 500;\n t['w'] = 722;\n t['x'] = 500;\n t['y'] = 500;\n t['z'] = 444;\n t['braceleft'] = 480;\n t['bar'] = 200;\n t['braceright'] = 480;\n t['asciitilde'] = 541;\n t['exclamdown'] = 333;\n t['cent'] = 500;\n t['sterling'] = 500;\n t['fraction'] = 167;\n t['yen'] = 500;\n t['florin'] = 500;\n t['section'] = 500;\n t['currency'] = 500;\n t['quotesingle'] = 180;\n t['quotedblleft'] = 444;\n t['guillemotleft'] = 500;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 556;\n t['fl'] = 556;\n t['endash'] = 500;\n t['dagger'] = 500;\n t['daggerdbl'] = 500;\n t['periodcentered'] = 250;\n t['paragraph'] = 453;\n t['bullet'] = 350;\n t['quotesinglbase'] = 333;\n t['quotedblbase'] = 444;\n t['quotedblright'] = 444;\n t['guillemotright'] = 500;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 444;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 889;\n t['ordfeminine'] = 276;\n t['Lslash'] = 611;\n t['Oslash'] = 722;\n t['OE'] = 889;\n t['ordmasculine'] = 310;\n t['ae'] = 667;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 500;\n t['oe'] = 722;\n t['germandbls'] = 500;\n t['Idieresis'] = 333;\n t['eacute'] = 444;\n t['abreve'] = 444;\n t['uhungarumlaut'] = 500;\n t['ecaron'] = 444;\n t['Ydieresis'] = 722;\n t['divide'] = 564;\n t['Yacute'] = 722;\n t['Acircumflex'] = 722;\n t['aacute'] = 444;\n t['Ucircumflex'] = 722;\n t['yacute'] = 500;\n t['scommaaccent'] = 389;\n t['ecircumflex'] = 444;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 444;\n t['Uacute'] = 722;\n t['uogonek'] = 500;\n t['Edieresis'] = 611;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 760;\n t['Emacron'] = 611;\n t['ccaron'] = 444;\n t['aring'] = 444;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 278;\n t['agrave'] = 444;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 667;\n t['atilde'] = 444;\n t['Edotaccent'] = 611;\n t['scaron'] = 389;\n t['scedilla'] = 389;\n t['iacute'] = 278;\n t['lozenge'] = 471;\n t['Rcaron'] = 667;\n t['Gcommaaccent'] = 722;\n t['ucircumflex'] = 500;\n t['acircumflex'] = 444;\n t['Amacron'] = 722;\n t['rcaron'] = 333;\n t['ccedilla'] = 444;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 556;\n t['Omacron'] = 722;\n t['Racute'] = 667;\n t['Sacute'] = 556;\n t['dcaron'] = 588;\n t['Umacron'] = 722;\n t['uring'] = 500;\n t['threesuperior'] = 300;\n t['Ograve'] = 722;\n t['Agrave'] = 722;\n t['Abreve'] = 722;\n t['multiply'] = 564;\n t['uacute'] = 500;\n t['Tcaron'] = 611;\n t['partialdiff'] = 476;\n t['ydieresis'] = 500;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 611;\n t['adieresis'] = 444;\n t['edieresis'] = 444;\n t['cacute'] = 444;\n t['nacute'] = 500;\n t['umacron'] = 500;\n t['Ncaron'] = 722;\n t['Iacute'] = 333;\n t['plusminus'] = 564;\n t['brokenbar'] = 200;\n t['registered'] = 760;\n t['Gbreve'] = 722;\n t['Idotaccent'] = 333;\n t['summation'] = 600;\n t['Egrave'] = 611;\n t['racute'] = 333;\n t['omacron'] = 500;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 667;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 326;\n t['eogonek'] = 444;\n t['Uogonek'] = 722;\n t['Aacute'] = 722;\n t['Adieresis'] = 722;\n t['egrave'] = 444;\n t['zacute'] = 444;\n t['iogonek'] = 278;\n t['Oacute'] = 722;\n t['oacute'] = 500;\n t['amacron'] = 444;\n t['sacute'] = 389;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 722;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 500;\n t['twosuperior'] = 300;\n t['Odieresis'] = 722;\n t['mu'] = 500;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 500;\n t['Eogonek'] = 611;\n t['dcroat'] = 500;\n t['threequarters'] = 750;\n t['Scedilla'] = 556;\n t['lcaron'] = 344;\n t['Kcommaaccent'] = 722;\n t['Lacute'] = 611;\n t['trademark'] = 980;\n t['edotaccent'] = 444;\n t['Igrave'] = 333;\n t['Imacron'] = 333;\n t['Lcaron'] = 611;\n t['onehalf'] = 750;\n t['lessequal'] = 549;\n t['ocircumflex'] = 500;\n t['ntilde'] = 500;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 611;\n t['emacron'] = 444;\n t['gbreve'] = 500;\n t['onequarter'] = 750;\n t['Scaron'] = 556;\n t['Scommaaccent'] = 556;\n t['Ohungarumlaut'] = 722;\n t['degree'] = 400;\n t['ograve'] = 500;\n t['Ccaron'] = 667;\n t['ugrave'] = 500;\n t['radical'] = 453;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 333;\n t['Ntilde'] = 722;\n t['otilde'] = 500;\n t['Rcommaaccent'] = 667;\n t['Lcommaaccent'] = 611;\n t['Atilde'] = 722;\n t['Aogonek'] = 722;\n t['Aring'] = 722;\n t['Otilde'] = 722;\n t['zdotaccent'] = 444;\n t['Ecaron'] = 611;\n t['Iogonek'] = 333;\n t['kcommaaccent'] = 500;\n t['minus'] = 564;\n t['Icircumflex'] = 333;\n t['ncaron'] = 500;\n t['tcommaaccent'] = 278;\n t['logicalnot'] = 564;\n t['odieresis'] = 500;\n t['udieresis'] = 500;\n t['notequal'] = 549;\n t['gcommaaccent'] = 500;\n t['eth'] = 500;\n t['zcaron'] = 444;\n t['ncommaaccent'] = 500;\n t['onesuperior'] = 300;\n t['imacron'] = 278;\n t['Euro'] = 500;\n });\n t['Times-Bold'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 250;\n t['exclam'] = 333;\n t['quotedbl'] = 555;\n t['numbersign'] = 500;\n t['dollar'] = 500;\n t['percent'] = 1000;\n t['ampersand'] = 833;\n t['quoteright'] = 333;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 500;\n t['plus'] = 570;\n t['comma'] = 250;\n t['hyphen'] = 333;\n t['period'] = 250;\n t['slash'] = 278;\n t['zero'] = 500;\n t['one'] = 500;\n t['two'] = 500;\n t['three'] = 500;\n t['four'] = 500;\n t['five'] = 500;\n t['six'] = 500;\n t['seven'] = 500;\n t['eight'] = 500;\n t['nine'] = 500;\n t['colon'] = 333;\n t['semicolon'] = 333;\n t['less'] = 570;\n t['equal'] = 570;\n t['greater'] = 570;\n t['question'] = 500;\n t['at'] = 930;\n t['A'] = 722;\n t['B'] = 667;\n t['C'] = 722;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 611;\n t['G'] = 778;\n t['H'] = 778;\n t['I'] = 389;\n t['J'] = 500;\n t['K'] = 778;\n t['L'] = 667;\n t['M'] = 944;\n t['N'] = 722;\n t['O'] = 778;\n t['P'] = 611;\n t['Q'] = 778;\n t['R'] = 722;\n t['S'] = 556;\n t['T'] = 667;\n t['U'] = 722;\n t['V'] = 722;\n t['W'] = 1000;\n t['X'] = 722;\n t['Y'] = 722;\n t['Z'] = 667;\n t['bracketleft'] = 333;\n t['backslash'] = 278;\n t['bracketright'] = 333;\n t['asciicircum'] = 581;\n t['underscore'] = 500;\n t['quoteleft'] = 333;\n t['a'] = 500;\n t['b'] = 556;\n t['c'] = 444;\n t['d'] = 556;\n t['e'] = 444;\n t['f'] = 333;\n t['g'] = 500;\n t['h'] = 556;\n t['i'] = 278;\n t['j'] = 333;\n t['k'] = 556;\n t['l'] = 278;\n t['m'] = 833;\n t['n'] = 556;\n t['o'] = 500;\n t['p'] = 556;\n t['q'] = 556;\n t['r'] = 444;\n t['s'] = 389;\n t['t'] = 333;\n t['u'] = 556;\n t['v'] = 500;\n t['w'] = 722;\n t['x'] = 500;\n t['y'] = 500;\n t['z'] = 444;\n t['braceleft'] = 394;\n t['bar'] = 220;\n t['braceright'] = 394;\n t['asciitilde'] = 520;\n t['exclamdown'] = 333;\n t['cent'] = 500;\n t['sterling'] = 500;\n t['fraction'] = 167;\n t['yen'] = 500;\n t['florin'] = 500;\n t['section'] = 500;\n t['currency'] = 500;\n t['quotesingle'] = 278;\n t['quotedblleft'] = 500;\n t['guillemotleft'] = 500;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 556;\n t['fl'] = 556;\n t['endash'] = 500;\n t['dagger'] = 500;\n t['daggerdbl'] = 500;\n t['periodcentered'] = 250;\n t['paragraph'] = 540;\n t['bullet'] = 350;\n t['quotesinglbase'] = 333;\n t['quotedblbase'] = 500;\n t['quotedblright'] = 500;\n t['guillemotright'] = 500;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 500;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 1000;\n t['ordfeminine'] = 300;\n t['Lslash'] = 667;\n t['Oslash'] = 778;\n t['OE'] = 1000;\n t['ordmasculine'] = 330;\n t['ae'] = 722;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 500;\n t['oe'] = 722;\n t['germandbls'] = 556;\n t['Idieresis'] = 389;\n t['eacute'] = 444;\n t['abreve'] = 500;\n t['uhungarumlaut'] = 556;\n t['ecaron'] = 444;\n t['Ydieresis'] = 722;\n t['divide'] = 570;\n t['Yacute'] = 722;\n t['Acircumflex'] = 722;\n t['aacute'] = 500;\n t['Ucircumflex'] = 722;\n t['yacute'] = 500;\n t['scommaaccent'] = 389;\n t['ecircumflex'] = 444;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 500;\n t['Uacute'] = 722;\n t['uogonek'] = 556;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 747;\n t['Emacron'] = 667;\n t['ccaron'] = 444;\n t['aring'] = 500;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 278;\n t['agrave'] = 500;\n t['Tcommaaccent'] = 667;\n t['Cacute'] = 722;\n t['atilde'] = 500;\n t['Edotaccent'] = 667;\n t['scaron'] = 389;\n t['scedilla'] = 389;\n t['iacute'] = 278;\n t['lozenge'] = 494;\n t['Rcaron'] = 722;\n t['Gcommaaccent'] = 778;\n t['ucircumflex'] = 556;\n t['acircumflex'] = 500;\n t['Amacron'] = 722;\n t['rcaron'] = 444;\n t['ccedilla'] = 444;\n t['Zdotaccent'] = 667;\n t['Thorn'] = 611;\n t['Omacron'] = 778;\n t['Racute'] = 722;\n t['Sacute'] = 556;\n t['dcaron'] = 672;\n t['Umacron'] = 722;\n t['uring'] = 556;\n t['threesuperior'] = 300;\n t['Ograve'] = 778;\n t['Agrave'] = 722;\n t['Abreve'] = 722;\n t['multiply'] = 570;\n t['uacute'] = 556;\n t['Tcaron'] = 667;\n t['partialdiff'] = 494;\n t['ydieresis'] = 500;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 500;\n t['edieresis'] = 444;\n t['cacute'] = 444;\n t['nacute'] = 556;\n t['umacron'] = 556;\n t['Ncaron'] = 722;\n t['Iacute'] = 389;\n t['plusminus'] = 570;\n t['brokenbar'] = 220;\n t['registered'] = 747;\n t['Gbreve'] = 778;\n t['Idotaccent'] = 389;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 444;\n t['omacron'] = 500;\n t['Zacute'] = 667;\n t['Zcaron'] = 667;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 722;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 416;\n t['eogonek'] = 444;\n t['Uogonek'] = 722;\n t['Aacute'] = 722;\n t['Adieresis'] = 722;\n t['egrave'] = 444;\n t['zacute'] = 444;\n t['iogonek'] = 278;\n t['Oacute'] = 778;\n t['oacute'] = 500;\n t['amacron'] = 500;\n t['sacute'] = 389;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 778;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 556;\n t['twosuperior'] = 300;\n t['Odieresis'] = 778;\n t['mu'] = 556;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 500;\n t['Eogonek'] = 667;\n t['dcroat'] = 556;\n t['threequarters'] = 750;\n t['Scedilla'] = 556;\n t['lcaron'] = 394;\n t['Kcommaaccent'] = 778;\n t['Lacute'] = 667;\n t['trademark'] = 1000;\n t['edotaccent'] = 444;\n t['Igrave'] = 389;\n t['Imacron'] = 389;\n t['Lcaron'] = 667;\n t['onehalf'] = 750;\n t['lessequal'] = 549;\n t['ocircumflex'] = 500;\n t['ntilde'] = 556;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 444;\n t['gbreve'] = 500;\n t['onequarter'] = 750;\n t['Scaron'] = 556;\n t['Scommaaccent'] = 556;\n t['Ohungarumlaut'] = 778;\n t['degree'] = 400;\n t['ograve'] = 500;\n t['Ccaron'] = 722;\n t['ugrave'] = 556;\n t['radical'] = 549;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 444;\n t['Ntilde'] = 722;\n t['otilde'] = 500;\n t['Rcommaaccent'] = 722;\n t['Lcommaaccent'] = 667;\n t['Atilde'] = 722;\n t['Aogonek'] = 722;\n t['Aring'] = 722;\n t['Otilde'] = 778;\n t['zdotaccent'] = 444;\n t['Ecaron'] = 667;\n t['Iogonek'] = 389;\n t['kcommaaccent'] = 556;\n t['minus'] = 570;\n t['Icircumflex'] = 389;\n t['ncaron'] = 556;\n t['tcommaaccent'] = 333;\n t['logicalnot'] = 570;\n t['odieresis'] = 500;\n t['udieresis'] = 556;\n t['notequal'] = 549;\n t['gcommaaccent'] = 500;\n t['eth'] = 500;\n t['zcaron'] = 444;\n t['ncommaaccent'] = 556;\n t['onesuperior'] = 300;\n t['imacron'] = 278;\n t['Euro'] = 500;\n });\n t['Times-BoldItalic'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 250;\n t['exclam'] = 389;\n t['quotedbl'] = 555;\n t['numbersign'] = 500;\n t['dollar'] = 500;\n t['percent'] = 833;\n t['ampersand'] = 778;\n t['quoteright'] = 333;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 500;\n t['plus'] = 570;\n t['comma'] = 250;\n t['hyphen'] = 333;\n t['period'] = 250;\n t['slash'] = 278;\n t['zero'] = 500;\n t['one'] = 500;\n t['two'] = 500;\n t['three'] = 500;\n t['four'] = 500;\n t['five'] = 500;\n t['six'] = 500;\n t['seven'] = 500;\n t['eight'] = 500;\n t['nine'] = 500;\n t['colon'] = 333;\n t['semicolon'] = 333;\n t['less'] = 570;\n t['equal'] = 570;\n t['greater'] = 570;\n t['question'] = 500;\n t['at'] = 832;\n t['A'] = 667;\n t['B'] = 667;\n t['C'] = 667;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 667;\n t['G'] = 722;\n t['H'] = 778;\n t['I'] = 389;\n t['J'] = 500;\n t['K'] = 667;\n t['L'] = 611;\n t['M'] = 889;\n t['N'] = 722;\n t['O'] = 722;\n t['P'] = 611;\n t['Q'] = 722;\n t['R'] = 667;\n t['S'] = 556;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 667;\n t['W'] = 889;\n t['X'] = 667;\n t['Y'] = 611;\n t['Z'] = 611;\n t['bracketleft'] = 333;\n t['backslash'] = 278;\n t['bracketright'] = 333;\n t['asciicircum'] = 570;\n t['underscore'] = 500;\n t['quoteleft'] = 333;\n t['a'] = 500;\n t['b'] = 500;\n t['c'] = 444;\n t['d'] = 500;\n t['e'] = 444;\n t['f'] = 333;\n t['g'] = 500;\n t['h'] = 556;\n t['i'] = 278;\n t['j'] = 278;\n t['k'] = 500;\n t['l'] = 278;\n t['m'] = 778;\n t['n'] = 556;\n t['o'] = 500;\n t['p'] = 500;\n t['q'] = 500;\n t['r'] = 389;\n t['s'] = 389;\n t['t'] = 278;\n t['u'] = 556;\n t['v'] = 444;\n t['w'] = 667;\n t['x'] = 500;\n t['y'] = 444;\n t['z'] = 389;\n t['braceleft'] = 348;\n t['bar'] = 220;\n t['braceright'] = 348;\n t['asciitilde'] = 570;\n t['exclamdown'] = 389;\n t['cent'] = 500;\n t['sterling'] = 500;\n t['fraction'] = 167;\n t['yen'] = 500;\n t['florin'] = 500;\n t['section'] = 500;\n t['currency'] = 500;\n t['quotesingle'] = 278;\n t['quotedblleft'] = 500;\n t['guillemotleft'] = 500;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 556;\n t['fl'] = 556;\n t['endash'] = 500;\n t['dagger'] = 500;\n t['daggerdbl'] = 500;\n t['periodcentered'] = 250;\n t['paragraph'] = 500;\n t['bullet'] = 350;\n t['quotesinglbase'] = 333;\n t['quotedblbase'] = 500;\n t['quotedblright'] = 500;\n t['guillemotright'] = 500;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 500;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 944;\n t['ordfeminine'] = 266;\n t['Lslash'] = 611;\n t['Oslash'] = 722;\n t['OE'] = 944;\n t['ordmasculine'] = 300;\n t['ae'] = 722;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 500;\n t['oe'] = 722;\n t['germandbls'] = 500;\n t['Idieresis'] = 389;\n t['eacute'] = 444;\n t['abreve'] = 500;\n t['uhungarumlaut'] = 556;\n t['ecaron'] = 444;\n t['Ydieresis'] = 611;\n t['divide'] = 570;\n t['Yacute'] = 611;\n t['Acircumflex'] = 667;\n t['aacute'] = 500;\n t['Ucircumflex'] = 722;\n t['yacute'] = 444;\n t['scommaaccent'] = 389;\n t['ecircumflex'] = 444;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 500;\n t['Uacute'] = 722;\n t['uogonek'] = 556;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 747;\n t['Emacron'] = 667;\n t['ccaron'] = 444;\n t['aring'] = 500;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 278;\n t['agrave'] = 500;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 667;\n t['atilde'] = 500;\n t['Edotaccent'] = 667;\n t['scaron'] = 389;\n t['scedilla'] = 389;\n t['iacute'] = 278;\n t['lozenge'] = 494;\n t['Rcaron'] = 667;\n t['Gcommaaccent'] = 722;\n t['ucircumflex'] = 556;\n t['acircumflex'] = 500;\n t['Amacron'] = 667;\n t['rcaron'] = 389;\n t['ccedilla'] = 444;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 611;\n t['Omacron'] = 722;\n t['Racute'] = 667;\n t['Sacute'] = 556;\n t['dcaron'] = 608;\n t['Umacron'] = 722;\n t['uring'] = 556;\n t['threesuperior'] = 300;\n t['Ograve'] = 722;\n t['Agrave'] = 667;\n t['Abreve'] = 667;\n t['multiply'] = 570;\n t['uacute'] = 556;\n t['Tcaron'] = 611;\n t['partialdiff'] = 494;\n t['ydieresis'] = 444;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 500;\n t['edieresis'] = 444;\n t['cacute'] = 444;\n t['nacute'] = 556;\n t['umacron'] = 556;\n t['Ncaron'] = 722;\n t['Iacute'] = 389;\n t['plusminus'] = 570;\n t['brokenbar'] = 220;\n t['registered'] = 747;\n t['Gbreve'] = 722;\n t['Idotaccent'] = 389;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 389;\n t['omacron'] = 500;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 667;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 366;\n t['eogonek'] = 444;\n t['Uogonek'] = 722;\n t['Aacute'] = 667;\n t['Adieresis'] = 667;\n t['egrave'] = 444;\n t['zacute'] = 389;\n t['iogonek'] = 278;\n t['Oacute'] = 722;\n t['oacute'] = 500;\n t['amacron'] = 500;\n t['sacute'] = 389;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 722;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 500;\n t['twosuperior'] = 300;\n t['Odieresis'] = 722;\n t['mu'] = 576;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 500;\n t['Eogonek'] = 667;\n t['dcroat'] = 500;\n t['threequarters'] = 750;\n t['Scedilla'] = 556;\n t['lcaron'] = 382;\n t['Kcommaaccent'] = 667;\n t['Lacute'] = 611;\n t['trademark'] = 1000;\n t['edotaccent'] = 444;\n t['Igrave'] = 389;\n t['Imacron'] = 389;\n t['Lcaron'] = 611;\n t['onehalf'] = 750;\n t['lessequal'] = 549;\n t['ocircumflex'] = 500;\n t['ntilde'] = 556;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 444;\n t['gbreve'] = 500;\n t['onequarter'] = 750;\n t['Scaron'] = 556;\n t['Scommaaccent'] = 556;\n t['Ohungarumlaut'] = 722;\n t['degree'] = 400;\n t['ograve'] = 500;\n t['Ccaron'] = 667;\n t['ugrave'] = 556;\n t['radical'] = 549;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 389;\n t['Ntilde'] = 722;\n t['otilde'] = 500;\n t['Rcommaaccent'] = 667;\n t['Lcommaaccent'] = 611;\n t['Atilde'] = 667;\n t['Aogonek'] = 667;\n t['Aring'] = 667;\n t['Otilde'] = 722;\n t['zdotaccent'] = 389;\n t['Ecaron'] = 667;\n t['Iogonek'] = 389;\n t['kcommaaccent'] = 500;\n t['minus'] = 606;\n t['Icircumflex'] = 389;\n t['ncaron'] = 556;\n t['tcommaaccent'] = 278;\n t['logicalnot'] = 606;\n t['odieresis'] = 500;\n t['udieresis'] = 556;\n t['notequal'] = 549;\n t['gcommaaccent'] = 500;\n t['eth'] = 500;\n t['zcaron'] = 389;\n t['ncommaaccent'] = 556;\n t['onesuperior'] = 300;\n t['imacron'] = 278;\n t['Euro'] = 500;\n });\n t['Times-Italic'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 250;\n t['exclam'] = 333;\n t['quotedbl'] = 420;\n t['numbersign'] = 500;\n t['dollar'] = 500;\n t['percent'] = 833;\n t['ampersand'] = 778;\n t['quoteright'] = 333;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 500;\n t['plus'] = 675;\n t['comma'] = 250;\n t['hyphen'] = 333;\n t['period'] = 250;\n t['slash'] = 278;\n t['zero'] = 500;\n t['one'] = 500;\n t['two'] = 500;\n t['three'] = 500;\n t['four'] = 500;\n t['five'] = 500;\n t['six'] = 500;\n t['seven'] = 500;\n t['eight'] = 500;\n t['nine'] = 500;\n t['colon'] = 333;\n t['semicolon'] = 333;\n t['less'] = 675;\n t['equal'] = 675;\n t['greater'] = 675;\n t['question'] = 500;\n t['at'] = 920;\n t['A'] = 611;\n t['B'] = 611;\n t['C'] = 667;\n t['D'] = 722;\n t['E'] = 611;\n t['F'] = 611;\n t['G'] = 722;\n t['H'] = 722;\n t['I'] = 333;\n t['J'] = 444;\n t['K'] = 667;\n t['L'] = 556;\n t['M'] = 833;\n t['N'] = 667;\n t['O'] = 722;\n t['P'] = 611;\n t['Q'] = 722;\n t['R'] = 611;\n t['S'] = 500;\n t['T'] = 556;\n t['U'] = 722;\n t['V'] = 611;\n t['W'] = 833;\n t['X'] = 611;\n t['Y'] = 556;\n t['Z'] = 556;\n t['bracketleft'] = 389;\n t['backslash'] = 278;\n t['bracketright'] = 389;\n t['asciicircum'] = 422;\n t['underscore'] = 500;\n t['quoteleft'] = 333;\n t['a'] = 500;\n t['b'] = 500;\n t['c'] = 444;\n t['d'] = 500;\n t['e'] = 444;\n t['f'] = 278;\n t['g'] = 500;\n t['h'] = 500;\n t['i'] = 278;\n t['j'] = 278;\n t['k'] = 444;\n t['l'] = 278;\n t['m'] = 722;\n t['n'] = 500;\n t['o'] = 500;\n t['p'] = 500;\n t['q'] = 500;\n t['r'] = 389;\n t['s'] = 389;\n t['t'] = 278;\n t['u'] = 500;\n t['v'] = 444;\n t['w'] = 667;\n t['x'] = 444;\n t['y'] = 444;\n t['z'] = 389;\n t['braceleft'] = 400;\n t['bar'] = 275;\n t['braceright'] = 400;\n t['asciitilde'] = 541;\n t['exclamdown'] = 389;\n t['cent'] = 500;\n t['sterling'] = 500;\n t['fraction'] = 167;\n t['yen'] = 500;\n t['florin'] = 500;\n t['section'] = 500;\n t['currency'] = 500;\n t['quotesingle'] = 214;\n t['quotedblleft'] = 556;\n t['guillemotleft'] = 500;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 500;\n t['fl'] = 500;\n t['endash'] = 500;\n t['dagger'] = 500;\n t['daggerdbl'] = 500;\n t['periodcentered'] = 250;\n t['paragraph'] = 523;\n t['bullet'] = 350;\n t['quotesinglbase'] = 333;\n t['quotedblbase'] = 556;\n t['quotedblright'] = 556;\n t['guillemotright'] = 500;\n t['ellipsis'] = 889;\n t['perthousand'] = 1000;\n t['questiondown'] = 500;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 889;\n t['AE'] = 889;\n t['ordfeminine'] = 276;\n t['Lslash'] = 556;\n t['Oslash'] = 722;\n t['OE'] = 944;\n t['ordmasculine'] = 310;\n t['ae'] = 667;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 500;\n t['oe'] = 667;\n t['germandbls'] = 500;\n t['Idieresis'] = 333;\n t['eacute'] = 444;\n t['abreve'] = 500;\n t['uhungarumlaut'] = 500;\n t['ecaron'] = 444;\n t['Ydieresis'] = 556;\n t['divide'] = 675;\n t['Yacute'] = 556;\n t['Acircumflex'] = 611;\n t['aacute'] = 500;\n t['Ucircumflex'] = 722;\n t['yacute'] = 444;\n t['scommaaccent'] = 389;\n t['ecircumflex'] = 444;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 500;\n t['Uacute'] = 722;\n t['uogonek'] = 500;\n t['Edieresis'] = 611;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 760;\n t['Emacron'] = 611;\n t['ccaron'] = 444;\n t['aring'] = 500;\n t['Ncommaaccent'] = 667;\n t['lacute'] = 278;\n t['agrave'] = 500;\n t['Tcommaaccent'] = 556;\n t['Cacute'] = 667;\n t['atilde'] = 500;\n t['Edotaccent'] = 611;\n t['scaron'] = 389;\n t['scedilla'] = 389;\n t['iacute'] = 278;\n t['lozenge'] = 471;\n t['Rcaron'] = 611;\n t['Gcommaaccent'] = 722;\n t['ucircumflex'] = 500;\n t['acircumflex'] = 500;\n t['Amacron'] = 611;\n t['rcaron'] = 389;\n t['ccedilla'] = 444;\n t['Zdotaccent'] = 556;\n t['Thorn'] = 611;\n t['Omacron'] = 722;\n t['Racute'] = 611;\n t['Sacute'] = 500;\n t['dcaron'] = 544;\n t['Umacron'] = 722;\n t['uring'] = 500;\n t['threesuperior'] = 300;\n t['Ograve'] = 722;\n t['Agrave'] = 611;\n t['Abreve'] = 611;\n t['multiply'] = 675;\n t['uacute'] = 500;\n t['Tcaron'] = 556;\n t['partialdiff'] = 476;\n t['ydieresis'] = 444;\n t['Nacute'] = 667;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 611;\n t['adieresis'] = 500;\n t['edieresis'] = 444;\n t['cacute'] = 444;\n t['nacute'] = 500;\n t['umacron'] = 500;\n t['Ncaron'] = 667;\n t['Iacute'] = 333;\n t['plusminus'] = 675;\n t['brokenbar'] = 275;\n t['registered'] = 760;\n t['Gbreve'] = 722;\n t['Idotaccent'] = 333;\n t['summation'] = 600;\n t['Egrave'] = 611;\n t['racute'] = 389;\n t['omacron'] = 500;\n t['Zacute'] = 556;\n t['Zcaron'] = 556;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 667;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 300;\n t['eogonek'] = 444;\n t['Uogonek'] = 722;\n t['Aacute'] = 611;\n t['Adieresis'] = 611;\n t['egrave'] = 444;\n t['zacute'] = 389;\n t['iogonek'] = 278;\n t['Oacute'] = 722;\n t['oacute'] = 500;\n t['amacron'] = 500;\n t['sacute'] = 389;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 722;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 500;\n t['twosuperior'] = 300;\n t['Odieresis'] = 722;\n t['mu'] = 500;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 500;\n t['Eogonek'] = 611;\n t['dcroat'] = 500;\n t['threequarters'] = 750;\n t['Scedilla'] = 500;\n t['lcaron'] = 300;\n t['Kcommaaccent'] = 667;\n t['Lacute'] = 556;\n t['trademark'] = 980;\n t['edotaccent'] = 444;\n t['Igrave'] = 333;\n t['Imacron'] = 333;\n t['Lcaron'] = 611;\n t['onehalf'] = 750;\n t['lessequal'] = 549;\n t['ocircumflex'] = 500;\n t['ntilde'] = 500;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 611;\n t['emacron'] = 444;\n t['gbreve'] = 500;\n t['onequarter'] = 750;\n t['Scaron'] = 500;\n t['Scommaaccent'] = 500;\n t['Ohungarumlaut'] = 722;\n t['degree'] = 400;\n t['ograve'] = 500;\n t['Ccaron'] = 667;\n t['ugrave'] = 500;\n t['radical'] = 453;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 389;\n t['Ntilde'] = 667;\n t['otilde'] = 500;\n t['Rcommaaccent'] = 611;\n t['Lcommaaccent'] = 556;\n t['Atilde'] = 611;\n t['Aogonek'] = 611;\n t['Aring'] = 611;\n t['Otilde'] = 722;\n t['zdotaccent'] = 389;\n t['Ecaron'] = 611;\n t['Iogonek'] = 333;\n t['kcommaaccent'] = 444;\n t['minus'] = 675;\n t['Icircumflex'] = 333;\n t['ncaron'] = 500;\n t['tcommaaccent'] = 278;\n t['logicalnot'] = 675;\n t['odieresis'] = 500;\n t['udieresis'] = 500;\n t['notequal'] = 549;\n t['gcommaaccent'] = 500;\n t['eth'] = 500;\n t['zcaron'] = 389;\n t['ncommaaccent'] = 500;\n t['onesuperior'] = 300;\n t['imacron'] = 278;\n t['Euro'] = 500;\n });\n t['ZapfDingbats'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 278;\n t['a1'] = 974;\n t['a2'] = 961;\n t['a202'] = 974;\n t['a3'] = 980;\n t['a4'] = 719;\n t['a5'] = 789;\n t['a119'] = 790;\n t['a118'] = 791;\n t['a117'] = 690;\n t['a11'] = 960;\n t['a12'] = 939;\n t['a13'] = 549;\n t['a14'] = 855;\n t['a15'] = 911;\n t['a16'] = 933;\n t['a105'] = 911;\n t['a17'] = 945;\n t['a18'] = 974;\n t['a19'] = 755;\n t['a20'] = 846;\n t['a21'] = 762;\n t['a22'] = 761;\n t['a23'] = 571;\n t['a24'] = 677;\n t['a25'] = 763;\n t['a26'] = 760;\n t['a27'] = 759;\n t['a28'] = 754;\n t['a6'] = 494;\n t['a7'] = 552;\n t['a8'] = 537;\n t['a9'] = 577;\n t['a10'] = 692;\n t['a29'] = 786;\n t['a30'] = 788;\n t['a31'] = 788;\n t['a32'] = 790;\n t['a33'] = 793;\n t['a34'] = 794;\n t['a35'] = 816;\n t['a36'] = 823;\n t['a37'] = 789;\n t['a38'] = 841;\n t['a39'] = 823;\n t['a40'] = 833;\n t['a41'] = 816;\n t['a42'] = 831;\n t['a43'] = 923;\n t['a44'] = 744;\n t['a45'] = 723;\n t['a46'] = 749;\n t['a47'] = 790;\n t['a48'] = 792;\n t['a49'] = 695;\n t['a50'] = 776;\n t['a51'] = 768;\n t['a52'] = 792;\n t['a53'] = 759;\n t['a54'] = 707;\n t['a55'] = 708;\n t['a56'] = 682;\n t['a57'] = 701;\n t['a58'] = 826;\n t['a59'] = 815;\n t['a60'] = 789;\n t['a61'] = 789;\n t['a62'] = 707;\n t['a63'] = 687;\n t['a64'] = 696;\n t['a65'] = 689;\n t['a66'] = 786;\n t['a67'] = 787;\n t['a68'] = 713;\n t['a69'] = 791;\n t['a70'] = 785;\n t['a71'] = 791;\n t['a72'] = 873;\n t['a73'] = 761;\n t['a74'] = 762;\n t['a203'] = 762;\n t['a75'] = 759;\n t['a204'] = 759;\n t['a76'] = 892;\n t['a77'] = 892;\n t['a78'] = 788;\n t['a79'] = 784;\n t['a81'] = 438;\n t['a82'] = 138;\n t['a83'] = 277;\n t['a84'] = 415;\n t['a97'] = 392;\n t['a98'] = 392;\n t['a99'] = 668;\n t['a100'] = 668;\n t['a89'] = 390;\n t['a90'] = 390;\n t['a93'] = 317;\n t['a94'] = 317;\n t['a91'] = 276;\n t['a92'] = 276;\n t['a205'] = 509;\n t['a85'] = 509;\n t['a206'] = 410;\n t['a86'] = 410;\n t['a87'] = 234;\n t['a88'] = 234;\n t['a95'] = 334;\n t['a96'] = 334;\n t['a101'] = 732;\n t['a102'] = 544;\n t['a103'] = 544;\n t['a104'] = 910;\n t['a106'] = 667;\n t['a107'] = 760;\n t['a108'] = 760;\n t['a112'] = 776;\n t['a111'] = 595;\n t['a110'] = 694;\n t['a109'] = 626;\n t['a120'] = 788;\n t['a121'] = 788;\n t['a122'] = 788;\n t['a123'] = 788;\n t['a124'] = 788;\n t['a125'] = 788;\n t['a126'] = 788;\n t['a127'] = 788;\n t['a128'] = 788;\n t['a129'] = 788;\n t['a130'] = 788;\n t['a131'] = 788;\n t['a132'] = 788;\n t['a133'] = 788;\n t['a134'] = 788;\n t['a135'] = 788;\n t['a136'] = 788;\n t['a137'] = 788;\n t['a138'] = 788;\n t['a139'] = 788;\n t['a140'] = 788;\n t['a141'] = 788;\n t['a142'] = 788;\n t['a143'] = 788;\n t['a144'] = 788;\n t['a145'] = 788;\n t['a146'] = 788;\n t['a147'] = 788;\n t['a148'] = 788;\n t['a149'] = 788;\n t['a150'] = 788;\n t['a151'] = 788;\n t['a152'] = 788;\n t['a153'] = 788;\n t['a154'] = 788;\n t['a155'] = 788;\n t['a156'] = 788;\n t['a157'] = 788;\n t['a158'] = 788;\n t['a159'] = 788;\n t['a160'] = 894;\n t['a161'] = 838;\n t['a163'] = 1016;\n t['a164'] = 458;\n t['a196'] = 748;\n t['a165'] = 924;\n t['a192'] = 748;\n t['a166'] = 918;\n t['a167'] = 927;\n t['a168'] = 928;\n t['a169'] = 928;\n t['a170'] = 834;\n t['a171'] = 873;\n t['a172'] = 828;\n t['a173'] = 924;\n t['a162'] = 924;\n t['a174'] = 917;\n t['a175'] = 930;\n t['a176'] = 931;\n t['a177'] = 463;\n t['a178'] = 883;\n t['a179'] = 836;\n t['a193'] = 836;\n t['a180'] = 867;\n t['a199'] = 867;\n t['a181'] = 696;\n t['a200'] = 696;\n t['a182'] = 874;\n t['a201'] = 874;\n t['a183'] = 760;\n t['a184'] = 946;\n t['a197'] = 771;\n t['a185'] = 865;\n t['a194'] = 771;\n t['a198'] = 888;\n t['a186'] = 967;\n t['a195'] = 888;\n t['a187'] = 831;\n t['a188'] = 873;\n t['a189'] = 927;\n t['a190'] = 970;\n t['a191'] = 918;\n });\n });\n exports.getMetrics = getMetrics;\n\n /***/\n }, /* 98 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var MurmurHash3_64 = function MurmurHash3_64Closure(seed) {\n var MASK_HIGH = 0xffff0000;\n var MASK_LOW = 0xffff;\n function MurmurHash3_64(seed) {\n var SEED = 0xc3d2e1f0;\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n MurmurHash3_64.prototype = {\n update: function MurmurHash3_64_update(input) {\n var i;\n if (typeof input === 'string') {\n var data = new Uint8Array(input.length * 2);\n var length = 0;\n for (i = 0; i < input.length; i++) {\n var code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object' && 'byteLength' in input) {\n data = input;\n length = data.byteLength;\n } else {\n throw new Error('Wrong data format in MurmurHash3_64_update. ' + 'Input must be a string or array.');\n }\n var blockCounts = length >> 2;\n var tailLength = length - blockCounts * 4;\n var dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n var k1 = 0;\n var k2 = 0;\n var h1 = this.h1;\n var h2 = this.h2;\n var C1 = 0xcc9e2d51;\n var C2 = 0x1b873593;\n var C1_LOW = C1 & MASK_LOW;\n var C2_LOW = C2 & MASK_LOW;\n for (i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n return this;\n },\n hexdigest: function MurmurHash3_64_hexdigest() {\n var h1 = this.h1;\n var h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n for (var i = 0, arr = [h1, h2], str = ''; i < arr.length; i++) {\n var hex = (arr[i] >>> 0).toString(16);\n while (hex.length < 8) {\n hex = '0' + hex;\n }\n str += hex;\n }\n return str;\n }\n };\n return MurmurHash3_64;\n }();\n exports.MurmurHash3_64 = MurmurHash3_64;\n\n /***/\n }, /* 99 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.getTilingPatternIR = exports.Pattern = undefined;\n var _util = __w_pdfjs_require__(0);\n var _colorspace = __w_pdfjs_require__(15);\n var _primitives = __w_pdfjs_require__(1);\n var _function = __w_pdfjs_require__(32);\n var ShadingType = {\n FUNCTION_BASED: 1,\n AXIAL: 2,\n RADIAL: 3,\n FREE_FORM_MESH: 4,\n LATTICE_FORM_MESH: 5,\n COONS_PATCH_MESH: 6,\n TENSOR_PATCH_MESH: 7\n };\n var Pattern = function PatternClosure() {\n function Pattern() {\n throw new Error('should not call Pattern constructor');\n }\n Pattern.prototype = {\n getPattern: function Pattern_getPattern(ctx) {\n throw new Error('Should not call Pattern.getStyle: ' + ctx);\n }\n };\n Pattern.parseShading = function Pattern_parseShading(shading, matrix, xref, res, handler) {\n var dict = (0, _primitives.isStream)(shading) ? shading.dict : shading;\n var type = dict.get('ShadingType');\n try {\n switch (type) {\n case ShadingType.AXIAL:\n case ShadingType.RADIAL:\n return new Shadings.RadialAxial(dict, matrix, xref, res);\n case ShadingType.FREE_FORM_MESH:\n case ShadingType.LATTICE_FORM_MESH:\n case ShadingType.COONS_PATCH_MESH:\n case ShadingType.TENSOR_PATCH_MESH:\n return new Shadings.Mesh(shading, matrix, xref, res);\n default:\n throw new _util.FormatError('Unsupported ShadingType: ' + type);\n }\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n handler.send('UnsupportedFeature', {\n featureId: _util.UNSUPPORTED_FEATURES.shadingPattern\n });\n (0, _util.warn)(ex);\n return new Shadings.Dummy();\n }\n };\n return Pattern;\n }();\n var Shadings = {};\n Shadings.SMALL_NUMBER = 1e-6;\n Shadings.RadialAxial = function RadialAxialClosure() {\n function RadialAxial(dict, matrix, xref, res) {\n this.matrix = matrix;\n this.coordsArr = dict.getArray('Coords');\n this.shadingType = dict.get('ShadingType');\n this.type = 'Pattern';\n var cs = dict.get('ColorSpace', 'CS');\n cs = _colorspace.ColorSpace.parse(cs, xref, res);\n this.cs = cs;\n var t0 = 0.0,\n t1 = 1.0;\n if (dict.has('Domain')) {\n var domainArr = dict.getArray('Domain');\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n var extendStart = false,\n extendEnd = false;\n if (dict.has('Extend')) {\n var extendArr = dict.getArray('Extend');\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\n var x1 = this.coordsArr[0];\n var y1 = this.coordsArr[1];\n var r1 = this.coordsArr[2];\n var x2 = this.coordsArr[3];\n var y2 = this.coordsArr[4];\n var r2 = this.coordsArr[5];\n var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n (0, _util.warn)('Unsupported radial gradient.');\n }\n }\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n var fnObj = dict.get('Function');\n var fn = _function.PDFFunction.parseArray(xref, fnObj);\n var diff = t1 - t0;\n var step = diff / 10;\n var colorStops = this.colorStops = [];\n if (t0 >= t1 || step <= 0) {\n (0, _util.info)('Bad shading domain.');\n return;\n }\n var color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n var rgbColor;\n for (var i = t0; i <= t1; i += step) {\n ratio[0] = i;\n fn(ratio, 0, color, 0);\n rgbColor = cs.getRgb(color, 0);\n var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n colorStops.push([(i - t0) / diff, cssColor]);\n }\n var background = 'transparent';\n if (dict.has('Background')) {\n rgbColor = cs.getRgb(dict.get('Background'), 0);\n background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n if (!extendStart) {\n colorStops.unshift([0, background]);\n colorStops[1][0] += Shadings.SMALL_NUMBER;\n }\n if (!extendEnd) {\n colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER;\n colorStops.push([1, background]);\n }\n this.colorStops = colorStops;\n }\n RadialAxial.prototype = {\n getIR: function RadialAxial_getIR() {\n var coordsArr = this.coordsArr;\n var shadingType = this.shadingType;\n var type, p0, p1, r0, r1;\n if (shadingType === ShadingType.AXIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[2], coordsArr[3]];\n r0 = null;\n r1 = null;\n type = 'axial';\n } else if (shadingType === ShadingType.RADIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[3], coordsArr[4]];\n r0 = coordsArr[2];\n r1 = coordsArr[5];\n type = 'radial';\n } else {\n (0, _util.unreachable)('getPattern type unknown: ' + shadingType);\n }\n var matrix = this.matrix;\n if (matrix) {\n p0 = _util.Util.applyTransform(p0, matrix);\n p1 = _util.Util.applyTransform(p1, matrix);\n if (shadingType === ShadingType.RADIAL) {\n var scale = _util.Util.singularValueDecompose2dScale(matrix);\n r0 *= scale[0];\n r1 *= scale[1];\n }\n }\n return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1];\n }\n };\n return RadialAxial;\n }();\n Shadings.Mesh = function MeshClosure() {\n function MeshStreamReader(stream, context) {\n this.stream = stream;\n this.context = context;\n this.buffer = 0;\n this.bufferLength = 0;\n var numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n var csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n }\n MeshStreamReader.prototype = {\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n if (this.bufferLength > 0) {\n return true;\n }\n var nextByte = this.stream.getByte();\n if (nextByte < 0) {\n return false;\n }\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n },\n readBits: function MeshStreamReader_readBits(n) {\n var buffer = this.buffer;\n var bufferLength = this.bufferLength;\n if (n === 32) {\n if (bufferLength === 0) {\n return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0;\n }\n buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();\n var nextByte = this.stream.getByte();\n this.buffer = nextByte & (1 << bufferLength) - 1;\n return (buffer << 8 - bufferLength | (nextByte & 0xFF) >> bufferLength) >>> 0;\n }\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n while (bufferLength < n) {\n buffer = buffer << 8 | this.stream.getByte();\n bufferLength += 8;\n }\n bufferLength -= n;\n this.bufferLength = bufferLength;\n this.buffer = buffer & (1 << bufferLength) - 1;\n return buffer >> bufferLength;\n },\n align: function MeshStreamReader_align() {\n this.buffer = 0;\n this.bufferLength = 0;\n },\n readFlag: function MeshStreamReader_readFlag() {\n return this.readBits(this.context.bitsPerFlag);\n },\n readCoordinate: function MeshStreamReader_readCoordinate() {\n var bitsPerCoordinate = this.context.bitsPerCoordinate;\n var xi = this.readBits(bitsPerCoordinate);\n var yi = this.readBits(bitsPerCoordinate);\n var decode = this.context.decode;\n var scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n },\n readComponents: function MeshStreamReader_readComponents() {\n var numComps = this.context.numComps;\n var bitsPerComponent = this.context.bitsPerComponent;\n var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n var decode = this.context.decode;\n var components = this.tmpCompsBuf;\n for (var i = 0, j = 4; i < numComps; i++, j += 2) {\n var ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n var color = this.tmpCsCompsBuf;\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\n return this.context.colorSpace.getRgb(color, 0);\n }\n };\n function decodeType4Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var operators = [];\n var ps = [];\n var verticesLeft = 0;\n while (reader.hasData) {\n var f = reader.readFlag();\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n if (verticesLeft === 0) {\n if (!(0 <= f && f <= 2)) {\n throw new _util.FormatError('Unknown type4 flag');\n }\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n case 1:\n ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n case 2:\n ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n }\n operators.push(f);\n }\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n reader.align();\n }\n mesh.figures.push({\n type: 'triangles',\n coords: new Int32Array(ps),\n colors: new Int32Array(ps)\n });\n }\n function decodeType5Shading(mesh, reader, verticesPerRow) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = [];\n while (reader.hasData) {\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n }\n mesh.figures.push({\n type: 'lattice',\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n verticesPerRow: verticesPerRow\n });\n }\n var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n var TRIANGLE_DENSITY = 20;\n var getB = function getBClosure() {\n function buildB(count) {\n var lut = [];\n for (var i = 0; i <= count; i++) {\n var t = i / count,\n t_ = 1 - t;\n lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t]));\n }\n return lut;\n }\n var cache = [];\n return function getB(count) {\n if (!cache[count]) {\n cache[count] = buildB(count);\n }\n return cache[count];\n };\n }();\n function buildFigureFromPatch(mesh, index) {\n var figure = mesh.figures[index];\n (0, _util.assert)(figure.type === 'patch', 'Unexpected patch mesh figure');\n var coords = mesh.coords,\n colors = mesh.colors;\n var pi = figure.coords;\n var ci = figure.colors;\n var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / (mesh.bounds[2] - mesh.bounds[0]));\n splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy));\n var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / (mesh.bounds[3] - mesh.bounds[1]));\n splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy));\n var verticesPerRow = splitXBy + 1;\n var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n var k = 0;\n var cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n var c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n var bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n for (var row = 0; row <= splitYBy; row++) {\n cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0;\n cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0;\n cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0;\n cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0;\n cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0;\n cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0;\n for (var col = 0; col <= splitXBy; col++, k++) {\n if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n continue;\n }\n var x = 0,\n y = 0;\n var q = 0;\n for (var i = 0; i <= 3; i++) {\n for (var j = 0; j <= 3; j++, q++) {\n var m = bRow[row][i] * bCol[col][j];\n x += coords[pi[q]][0] * m;\n y += coords[pi[q]][1] * m;\n }\n }\n figureCoords[k] = coords.length;\n coords.push([x, y]);\n figureColors[k] = colors.length;\n var newColor = new Uint8Array(3);\n newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0;\n newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0;\n newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0;\n colors.push(newColor);\n }\n }\n figureCoords[0] = pi[0];\n figureColors[0] = ci[0];\n figureCoords[splitXBy] = pi[3];\n figureColors[splitXBy] = ci[1];\n figureCoords[verticesPerRow * splitYBy] = pi[12];\n figureColors[verticesPerRow * splitYBy] = ci[2];\n figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n mesh.figures[index] = {\n type: 'lattice',\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow: verticesPerRow\n };\n }\n function decodeType6Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n while (reader.hasData) {\n var f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError('Unknown type6 flag');\n }\n var i, ii;\n var pi = coords.length;\n for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n var ci = colors.length;\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n var tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n case 0:\n ps[12] = pi + 3;\n ps[13] = pi + 4;\n ps[14] = pi + 5;\n ps[15] = pi + 6;\n ps[8] = pi + 2;\n ps[11] = pi + 7;\n ps[4] = pi + 1;\n ps[7] = pi + 8;\n ps[0] = pi;\n ps[1] = pi + 11;\n ps[2] = pi + 10;\n ps[3] = pi + 9;\n cs[2] = ci + 1;\n cs[3] = ci + 2;\n cs[0] = ci;\n cs[1] = ci + 3;\n break;\n case 1:\n tmp1 = ps[12];\n tmp2 = ps[13];\n tmp3 = ps[14];\n tmp4 = ps[15];\n ps[12] = tmp4;\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = tmp3;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[2];\n tmp2 = cs[3];\n cs[2] = tmp2;\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[7];\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1];\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n case 3:\n ps[12] = ps[0];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[1];\n ps[11] = pi + 3;\n ps[4] = ps[2];\n ps[7] = pi + 4;\n ps[0] = ps[3];\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n cs[2] = cs[0];\n cs[3] = ci;\n cs[0] = cs[1];\n cs[1] = ci + 1;\n break;\n }\n ps[5] = coords.length;\n coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]);\n ps[6] = coords.length;\n coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]);\n ps[9] = coords.length;\n coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]);\n ps[10] = coords.length;\n coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]);\n mesh.figures.push({\n type: 'patch',\n coords: new Int32Array(ps),\n colors: new Int32Array(cs)\n });\n }\n }\n function decodeType7Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n while (reader.hasData) {\n var f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError('Unknown type7 flag');\n }\n var i, ii;\n var pi = coords.length;\n for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n var ci = colors.length;\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n var tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n case 0:\n ps[12] = pi + 3;\n ps[13] = pi + 4;\n ps[14] = pi + 5;\n ps[15] = pi + 6;\n ps[8] = pi + 2;\n ps[9] = pi + 13;\n ps[10] = pi + 14;\n ps[11] = pi + 7;\n ps[4] = pi + 1;\n ps[5] = pi + 12;\n ps[6] = pi + 15;\n ps[7] = pi + 8;\n ps[0] = pi;\n ps[1] = pi + 11;\n ps[2] = pi + 10;\n ps[3] = pi + 9;\n cs[2] = ci + 1;\n cs[3] = ci + 2;\n cs[0] = ci;\n cs[1] = ci + 3;\n break;\n case 1:\n tmp1 = ps[12];\n tmp2 = ps[13];\n tmp3 = ps[14];\n tmp4 = ps[15];\n ps[12] = tmp4;\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = tmp3;\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[2];\n tmp2 = cs[3];\n cs[2] = tmp2;\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[7];\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1];\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n case 3:\n ps[12] = ps[0];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[1];\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = ps[2];\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = ps[3];\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n cs[2] = cs[0];\n cs[3] = ci;\n cs[0] = cs[1];\n cs[1] = ci + 1;\n break;\n }\n mesh.figures.push({\n type: 'patch',\n coords: new Int32Array(ps),\n colors: new Int32Array(cs)\n });\n }\n }\n function updateBounds(mesh) {\n var minX = mesh.coords[0][0],\n minY = mesh.coords[0][1],\n maxX = minX,\n maxY = minY;\n for (var i = 1, ii = mesh.coords.length; i < ii; i++) {\n var x = mesh.coords[i][0],\n y = mesh.coords[i][1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n mesh.bounds = [minX, minY, maxX, maxY];\n }\n function packData(mesh) {\n var i, ii, j, jj;\n var coords = mesh.coords;\n var coordsPacked = new Float32Array(coords.length * 2);\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n var xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n mesh.coords = coordsPacked;\n var colors = mesh.colors;\n var colorsPacked = new Uint8Array(colors.length * 3);\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n var c = colors[i];\n colorsPacked[j++] = c[0];\n colorsPacked[j++] = c[1];\n colorsPacked[j++] = c[2];\n }\n mesh.colors = colorsPacked;\n var figures = mesh.figures;\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n for (j = 0, jj = ps.length; j < jj; j++) {\n ps[j] *= 2;\n cs[j] *= 3;\n }\n }\n }\n function Mesh(stream, matrix, xref, res) {\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError('Mesh data is not a stream');\n }\n var dict = stream.dict;\n this.matrix = matrix;\n this.shadingType = dict.get('ShadingType');\n this.type = 'Pattern';\n this.bbox = dict.getArray('BBox');\n var cs = dict.get('ColorSpace', 'CS');\n cs = _colorspace.ColorSpace.parse(cs, xref, res);\n this.cs = cs;\n this.background = dict.has('Background') ? cs.getRgb(dict.get('Background'), 0) : null;\n var fnObj = dict.get('Function');\n var fn = fnObj ? _function.PDFFunction.parseArray(xref, fnObj) : null;\n this.coords = [];\n this.colors = [];\n this.figures = [];\n var decodeContext = {\n bitsPerCoordinate: dict.get('BitsPerCoordinate'),\n bitsPerComponent: dict.get('BitsPerComponent'),\n bitsPerFlag: dict.get('BitsPerFlag'),\n decode: dict.getArray('Decode'),\n colorFn: fn,\n colorSpace: cs,\n numComps: fn ? 1 : cs.numComps\n };\n var reader = new MeshStreamReader(stream, decodeContext);\n var patchMesh = false;\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n decodeType4Shading(this, reader);\n break;\n case ShadingType.LATTICE_FORM_MESH:\n var verticesPerRow = dict.get('VerticesPerRow') | 0;\n if (verticesPerRow < 2) {\n throw new _util.FormatError('Invalid VerticesPerRow');\n }\n decodeType5Shading(this, reader, verticesPerRow);\n break;\n case ShadingType.COONS_PATCH_MESH:\n decodeType6Shading(this, reader);\n patchMesh = true;\n break;\n case ShadingType.TENSOR_PATCH_MESH:\n decodeType7Shading(this, reader);\n patchMesh = true;\n break;\n default:\n (0, _util.unreachable)('Unsupported mesh type.');\n break;\n }\n if (patchMesh) {\n updateBounds(this);\n for (var i = 0, ii = this.figures.length; i < ii; i++) {\n buildFigureFromPatch(this, i);\n }\n }\n updateBounds(this);\n packData(this);\n }\n Mesh.prototype = {\n getIR: function Mesh_getIR() {\n return ['Mesh', this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background];\n }\n };\n return Mesh;\n }();\n Shadings.Dummy = function DummyClosure() {\n function Dummy() {\n this.type = 'Pattern';\n }\n Dummy.prototype = {\n getIR: function Dummy_getIR() {\n return ['Dummy'];\n }\n };\n return Dummy;\n }();\n function getTilingPatternIR(operatorList, dict, args) {\n var matrix = dict.getArray('Matrix');\n var bbox = _util.Util.normalizeRect(dict.getArray('BBox'));\n var xstep = dict.get('XStep');\n var ystep = dict.get('YStep');\n var paintType = dict.get('PaintType');\n var tilingType = dict.get('TilingType');\n if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new _util.FormatError('Invalid getTilingPatternIR /BBox array: [' + bbox + '].');\n }\n return ['TilingPattern', args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n }\n exports.Pattern = Pattern;\n exports.getTilingPatternIR = getTilingPatternIR;\n\n /***/\n }, /* 100 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.NetworkPdfManager = exports.LocalPdfManager = undefined;\n var _util = __w_pdfjs_require__(0);\n var _chunked_stream = __w_pdfjs_require__(54);\n var _document = __w_pdfjs_require__(91);\n var _stream = __w_pdfjs_require__(3);\n var BasePdfManager = function BasePdfManagerClosure() {\n function BasePdfManager() {\n throw new Error('Cannot initialize BaseManagerManager');\n }\n BasePdfManager.prototype = {\n get docId() {\n return this._docId;\n },\n get password() {\n return this._password;\n },\n get docBaseUrl() {\n var docBaseUrl = null;\n if (this._docBaseUrl) {\n var absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl);\n if (absoluteUrl) {\n docBaseUrl = absoluteUrl.href;\n } else {\n (0, _util.warn)('Invalid absolute docBaseUrl: \"' + this._docBaseUrl + '\".');\n }\n }\n return (0, _util.shadow)(this, 'docBaseUrl', docBaseUrl);\n },\n onLoadedStream: function BasePdfManager_onLoadedStream() {\n throw new _util.NotImplementedException();\n },\n ensureDoc: function BasePdfManager_ensureDoc(prop, args) {\n return this.ensure(this.pdfDocument, prop, args);\n },\n ensureXRef: function BasePdfManager_ensureXRef(prop, args) {\n return this.ensure(this.pdfDocument.xref, prop, args);\n },\n ensureCatalog: function BasePdfManager_ensureCatalog(prop, args) {\n return this.ensure(this.pdfDocument.catalog, prop, args);\n },\n getPage: function BasePdfManager_getPage(pageIndex) {\n return this.pdfDocument.getPage(pageIndex);\n },\n cleanup: function BasePdfManager_cleanup() {\n return this.pdfDocument.cleanup();\n },\n ensure: function BasePdfManager_ensure(obj, prop, args) {\n return new _util.NotImplementedException();\n },\n requestRange: function BasePdfManager_requestRange(begin, end) {\n return new _util.NotImplementedException();\n },\n requestLoadedStream: function BasePdfManager_requestLoadedStream() {\n return new _util.NotImplementedException();\n },\n sendProgressiveData: function BasePdfManager_sendProgressiveData(chunk) {\n return new _util.NotImplementedException();\n },\n updatePassword: function BasePdfManager_updatePassword(password) {\n this._password = password;\n },\n terminate: function BasePdfManager_terminate() {\n return new _util.NotImplementedException();\n }\n };\n return BasePdfManager;\n }();\n var LocalPdfManager = function LocalPdfManagerClosure() {\n function LocalPdfManager(docId, data, password, evaluatorOptions, docBaseUrl) {\n this._docId = docId;\n this._password = password;\n this._docBaseUrl = docBaseUrl;\n this.evaluatorOptions = evaluatorOptions;\n var stream = new _stream.Stream(data);\n this.pdfDocument = new _document.PDFDocument(this, stream);\n this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n this._loadedStreamCapability.resolve(stream);\n }\n _util.Util.inherit(LocalPdfManager, BasePdfManager, {\n ensure: function LocalPdfManager_ensure(obj, prop, args) {\n return new Promise(function (resolve, reject) {\n try {\n var value = obj[prop];\n var result;\n if (typeof value === 'function') {\n result = value.apply(obj, args);\n } else {\n result = value;\n }\n resolve(result);\n } catch (e) {\n reject(e);\n }\n });\n },\n requestRange: function LocalPdfManager_requestRange(begin, end) {\n return Promise.resolve();\n },\n requestLoadedStream: function LocalPdfManager_requestLoadedStream() {},\n onLoadedStream: function LocalPdfManager_onLoadedStream() {\n return this._loadedStreamCapability.promise;\n },\n terminate: function LocalPdfManager_terminate() {}\n });\n return LocalPdfManager;\n }();\n var NetworkPdfManager = function NetworkPdfManagerClosure() {\n function NetworkPdfManager(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) {\n this._docId = docId;\n this._password = args.password;\n this._docBaseUrl = docBaseUrl;\n this.msgHandler = args.msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n var params = {\n msgHandler: args.msgHandler,\n url: args.url,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize\n };\n this.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, params);\n this.pdfDocument = new _document.PDFDocument(this, this.streamManager.getStream());\n }\n _util.Util.inherit(NetworkPdfManager, BasePdfManager, {\n ensure: function NetworkPdfManager_ensure(obj, prop, args) {\n var pdfManager = this;\n return new Promise(function (resolve, reject) {\n function ensureHelper() {\n try {\n var result;\n var value = obj[prop];\n if (typeof value === 'function') {\n result = value.apply(obj, args);\n } else {\n result = value;\n }\n resolve(result);\n } catch (e) {\n if (!(e instanceof _util.MissingDataException)) {\n reject(e);\n return;\n }\n pdfManager.streamManager.requestRange(e.begin, e.end).then(ensureHelper, reject);\n }\n }\n ensureHelper();\n });\n },\n requestRange: function NetworkPdfManager_requestRange(begin, end) {\n return this.streamManager.requestRange(begin, end);\n },\n requestLoadedStream: function NetworkPdfManager_requestLoadedStream() {\n this.streamManager.requestAllChunks();\n },\n sendProgressiveData: function NetworkPdfManager_sendProgressiveData(chunk) {\n this.streamManager.onReceiveData({\n chunk: chunk\n });\n },\n onLoadedStream: function NetworkPdfManager_onLoadedStream() {\n return this.streamManager.onLoadedStream();\n },\n terminate: function NetworkPdfManager_terminate() {\n this.streamManager.abort();\n }\n });\n return NetworkPdfManager;\n }();\n exports.LocalPdfManager = LocalPdfManager;\n exports.NetworkPdfManager = NetworkPdfManager;\n\n /***/\n }, /* 101 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PostScriptParser = exports.PostScriptLexer = undefined;\n var _util = __w_pdfjs_require__(0);\n var _primitives = __w_pdfjs_require__(1);\n var PostScriptParser = function PostScriptParserClosure() {\n function PostScriptParser(lexer) {\n this.lexer = lexer;\n this.operators = [];\n this.token = null;\n this.prev = null;\n }\n PostScriptParser.prototype = {\n nextToken: function PostScriptParser_nextToken() {\n this.prev = this.token;\n this.token = this.lexer.getToken();\n },\n accept: function PostScriptParser_accept(type) {\n if (this.token.type === type) {\n this.nextToken();\n return true;\n }\n return false;\n },\n expect: function PostScriptParser_expect(type) {\n if (this.accept(type)) {\n return true;\n }\n throw new _util.FormatError('Unexpected symbol: found ' + this.token.type + ' expected ' + type + '.');\n },\n parse: function PostScriptParser_parse() {\n this.nextToken();\n this.expect(PostScriptTokenTypes.LBRACE);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n return this.operators;\n },\n parseBlock: function PostScriptParser_parseBlock() {\n while (true) {\n if (this.accept(PostScriptTokenTypes.NUMBER)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n this.parseCondition();\n } else {\n return;\n }\n }\n },\n parseCondition: function PostScriptParser_parseCondition() {\n var conditionLocation = this.operators.length;\n this.operators.push(null, null);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n if (this.accept(PostScriptTokenTypes.IF)) {\n this.operators[conditionLocation] = this.operators.length;\n this.operators[conditionLocation + 1] = 'jz';\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n var jumpLocation = this.operators.length;\n this.operators.push(null, null);\n var endOfTrue = this.operators.length;\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n this.expect(PostScriptTokenTypes.IFELSE);\n this.operators[jumpLocation] = this.operators.length;\n this.operators[jumpLocation + 1] = 'j';\n this.operators[conditionLocation] = endOfTrue;\n this.operators[conditionLocation + 1] = 'jz';\n } else {\n throw new _util.FormatError('PS Function: error parsing conditional.');\n }\n }\n };\n return PostScriptParser;\n }();\n var PostScriptTokenTypes = {\n LBRACE: 0,\n RBRACE: 1,\n NUMBER: 2,\n OPERATOR: 3,\n IF: 4,\n IFELSE: 5\n };\n var PostScriptToken = function PostScriptTokenClosure() {\n function PostScriptToken(type, value) {\n this.type = type;\n this.value = value;\n }\n var opCache = Object.create(null);\n PostScriptToken.getOperator = function PostScriptToken_getOperator(op) {\n var opValue = opCache[op];\n if (opValue) {\n return opValue;\n }\n return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n };\n PostScriptToken.LBRACE = new PostScriptToken(PostScriptTokenTypes.LBRACE, '{');\n PostScriptToken.RBRACE = new PostScriptToken(PostScriptTokenTypes.RBRACE, '}');\n PostScriptToken.IF = new PostScriptToken(PostScriptTokenTypes.IF, 'IF');\n PostScriptToken.IFELSE = new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE');\n return PostScriptToken;\n }();\n var PostScriptLexer = function PostScriptLexerClosure() {\n function PostScriptLexer(stream) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n }\n PostScriptLexer.prototype = {\n nextChar: function PostScriptLexer_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n getToken: function PostScriptLexer_getToken() {\n var comment = false;\n var ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return _primitives.EOF;\n }\n if (comment) {\n if (ch === 0x0A || ch === 0x0D) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (!(0, _util.isSpace)(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n switch (ch | 0) {\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n case 0x38:\n case 0x39:\n case 0x2B:\n case 0x2D:\n case 0x2E:\n return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());\n case 0x7B:\n this.nextChar();\n return PostScriptToken.LBRACE;\n case 0x7D:\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n var strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A)) {\n strBuf.push(String.fromCharCode(ch));\n }\n var str = strBuf.join('');\n switch (str.toLowerCase()) {\n case 'if':\n return PostScriptToken.IF;\n case 'ifelse':\n return PostScriptToken.IFELSE;\n default:\n return PostScriptToken.getOperator(str);\n }\n },\n getNumber: function PostScriptLexer_getNumber() {\n var ch = this.currentChar;\n var strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= 0x30 && ch <= 0x39 || ch === 0x2D || ch === 0x2E) {\n strBuf.push(String.fromCharCode(ch));\n } else {\n break;\n }\n }\n var value = parseFloat(strBuf.join(''));\n if (isNaN(value)) {\n throw new _util.FormatError('Invalid floating point number: ' + value);\n }\n return value;\n }\n };\n return PostScriptLexer;\n }();\n exports.PostScriptLexer = PostScriptLexer;\n exports.PostScriptParser = PostScriptParser;\n\n /***/\n }, /* 102 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.Type1Parser = undefined;\n var _util = __w_pdfjs_require__(0);\n var _encodings = __w_pdfjs_require__(16);\n var _stream = __w_pdfjs_require__(3);\n var HINTING_ENABLED = false;\n var Type1CharString = function Type1CharStringClosure() {\n var COMMAND_MAP = {\n 'hstem': [1],\n 'vstem': [3],\n 'vmoveto': [4],\n 'rlineto': [5],\n 'hlineto': [6],\n 'vlineto': [7],\n 'rrcurveto': [8],\n 'callsubr': [10],\n 'flex': [12, 35],\n 'drop': [12, 18],\n 'endchar': [14],\n 'rmoveto': [21],\n 'hmoveto': [22],\n 'vhcurveto': [30],\n 'hvcurveto': [31]\n };\n function Type1CharString() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n Type1CharString.prototype = {\n convert: function Type1CharString_convert(encoded, subrs, seacAnalysisEnabled) {\n var count = encoded.length;\n var error = false;\n var wx, sbx, subrNumber;\n for (var i = 0; i < count; i++) {\n var value = encoded[i];\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n switch (value) {\n case 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case 3:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case 4:\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n var dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n case 5:\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n case 6:\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n case 7:\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n case 8:\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n case 9:\n this.stack = [];\n break;\n case 10:\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n break;\n case 11:\n return error;\n case 13:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n wx = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx);\n error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n break;\n case 14:\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n case 21:\n if (this.flexing) {\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n case 22:\n if (this.flexing) {\n this.stack.push(0);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n case 30:\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n case 31:\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n case (12 << 8) + 0:\n this.stack = [];\n break;\n case (12 << 8) + 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case (12 << 8) + 2:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case (12 << 8) + 6:\n if (seacAnalysisEnabled) {\n this.seac = this.stack.splice(-4, 4);\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n break;\n case (12 << 8) + 7:\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n this.stack.pop();\n wx = this.stack.pop();\n var sby = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx, sby);\n error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n break;\n case (12 << 8) + 12:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n var num2 = this.stack.pop();\n var num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n case (12 << 8) + 16:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n var numArgs = this.stack.pop();\n if (subrNumber === 0 && numArgs === 3) {\n var flexArgs = this.stack.splice(this.stack.length - 17, 17);\n this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]);\n error = this.executeCommand(13, COMMAND_MAP.flex, true);\n this.flexing = false;\n this.stack.push(flexArgs[15], flexArgs[16]);\n } else if (subrNumber === 1 && numArgs === 0) {\n this.flexing = true;\n }\n break;\n case (12 << 8) + 17:\n break;\n case (12 << 8) + 33:\n this.stack = [];\n break;\n default:\n (0, _util.warn)('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n if (error) {\n break;\n }\n continue;\n } else if (value <= 246) {\n value = value - 139;\n } else if (value <= 250) {\n value = (value - 247) * 256 + encoded[++i] + 108;\n } else if (value <= 254) {\n value = -((value - 251) * 256) - encoded[++i] - 108;\n } else {\n value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n }\n this.stack.push(value);\n }\n return error;\n },\n executeCommand: function executeCommand(howManyArgs, command, keepStack) {\n var stackLength = this.stack.length;\n if (howManyArgs > stackLength) {\n return true;\n }\n var start = stackLength - howManyArgs;\n for (var i = start; i < stackLength; i++) {\n var value = this.stack[i];\n if (value === (value | 0)) {\n this.output.push(28, value >> 8 & 0xff, value & 0xff);\n } else {\n value = 65536 * value | 0;\n this.output.push(255, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF);\n }\n }\n this.output.push.apply(this.output, command);\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n return false;\n }\n };\n return Type1CharString;\n }();\n var Type1Parser = function Type1ParserClosure() {\n var EEXEC_ENCRYPT_KEY = 55665;\n var CHAR_STRS_ENCRYPT_KEY = 4330;\n function isHexDigit(code) {\n return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n }\n function decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n var r = key | 0,\n c1 = 52845,\n c2 = 22719,\n i,\n j;\n for (i = 0; i < discardNumber; i++) {\n r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n }\n var count = data.length - discardNumber;\n var decrypted = new Uint8Array(count);\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n var value = data[i];\n decrypted[j] = value ^ r >> 8;\n r = (value + r) * c1 + c2 & (1 << 16) - 1;\n }\n return decrypted;\n }\n function decryptAscii(data, key, discardNumber) {\n var r = key | 0,\n c1 = 52845,\n c2 = 22719;\n var count = data.length,\n maybeLength = count >>> 1;\n var decrypted = new Uint8Array(maybeLength);\n var i, j;\n for (i = 0, j = 0; i < count; i++) {\n var digit1 = data[i];\n if (!isHexDigit(digit1)) {\n continue;\n }\n i++;\n var digit2;\n while (i < count && !isHexDigit(digit2 = data[i])) {\n i++;\n }\n if (i < count) {\n var value = parseInt(String.fromCharCode(digit1, digit2), 16);\n decrypted[j++] = value ^ r >> 8;\n r = (value + r) * c1 + c2 & (1 << 16) - 1;\n }\n }\n return Array.prototype.slice.call(decrypted, discardNumber, j);\n }\n function isSpecial(c) {\n return c === 0x2F || c === 0x5B || c === 0x5D || c === 0x7B || c === 0x7D || c === 0x28 || c === 0x29;\n }\n function Type1Parser(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n var data = stream.getBytes();\n var isBinary = !(isHexDigit(data[0]) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]));\n stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n }\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n this.stream = stream;\n this.nextChar();\n }\n Type1Parser.prototype = {\n readNumberArray: function Type1Parser_readNumberArray() {\n this.getToken();\n var array = [];\n while (true) {\n var token = this.getToken();\n if (token === null || token === ']' || token === '}') {\n break;\n }\n array.push(parseFloat(token || 0));\n }\n return array;\n },\n readNumber: function Type1Parser_readNumber() {\n var token = this.getToken();\n return parseFloat(token || 0);\n },\n readInt: function Type1Parser_readInt() {\n var token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n },\n readBoolean: function Type1Parser_readBoolean() {\n var token = this.getToken();\n return token === 'true' ? 1 : 0;\n },\n nextChar: function Type1_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n getToken: function Type1Parser_getToken() {\n var comment = false;\n var ch = this.currentChar;\n while (true) {\n if (ch === -1) {\n return null;\n }\n if (comment) {\n if (ch === 0x0A || ch === 0x0D) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (!(0, _util.isSpace)(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n var token = '';\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !(0, _util.isSpace)(ch) && !isSpecial(ch));\n return token;\n },\n extractFontProgram: function Type1Parser_extractFontProgram() {\n var stream = this.stream;\n var subrs = [],\n charstrings = [];\n var privateData = Object.create(null);\n privateData['lenIV'] = 4;\n var program = {\n subrs: [],\n charstrings: [],\n properties: {\n 'privateData': privateData\n }\n };\n var token, length, data, lenIV, encoded;\n while ((token = this.getToken()) !== null) {\n if (token !== '/') {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case 'CharStrings':\n this.getToken();\n this.getToken();\n this.getToken();\n this.getToken();\n while (true) {\n token = this.getToken();\n if (token === null || token === 'end') {\n break;\n }\n if (token !== '/') {\n continue;\n }\n var glyph = this.getToken();\n length = this.readInt();\n this.getToken();\n data = stream.makeSubStream(stream.pos, length);\n lenIV = program.properties.privateData['lenIV'];\n encoded = decrypt(data.getBytes(), CHAR_STRS_ENCRYPT_KEY, lenIV);\n stream.skip(length);\n this.nextChar();\n token = this.getToken();\n if (token === 'noaccess') {\n this.getToken();\n }\n charstrings.push({\n glyph: glyph,\n encoded: encoded\n });\n }\n break;\n case 'Subrs':\n this.readInt();\n this.getToken();\n while ((token = this.getToken()) === 'dup') {\n var index = this.readInt();\n length = this.readInt();\n this.getToken();\n data = stream.makeSubStream(stream.pos, length);\n lenIV = program.properties.privateData['lenIV'];\n encoded = decrypt(data.getBytes(), CHAR_STRS_ENCRYPT_KEY, lenIV);\n stream.skip(length);\n this.nextChar();\n token = this.getToken();\n if (token === 'noaccess') {\n this.getToken();\n }\n subrs[index] = encoded;\n }\n break;\n case 'BlueValues':\n case 'OtherBlues':\n case 'FamilyBlues':\n case 'FamilyOtherBlues':\n var blueArray = this.readNumberArray();\n if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n program.properties.privateData[token] = blueArray;\n }\n break;\n case 'StemSnapH':\n case 'StemSnapV':\n program.properties.privateData[token] = this.readNumberArray();\n break;\n case 'StdHW':\n case 'StdVW':\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n case 'BlueShift':\n case 'lenIV':\n case 'BlueFuzz':\n case 'BlueScale':\n case 'LanguageGroup':\n case 'ExpansionFactor':\n program.properties.privateData[token] = this.readNumber();\n break;\n case 'ForceBold':\n program.properties.privateData[token] = this.readBoolean();\n break;\n }\n }\n for (var i = 0; i < charstrings.length; i++) {\n glyph = charstrings[i].glyph;\n encoded = charstrings[i].encoded;\n var charString = new Type1CharString();\n var error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n var output = charString.output;\n if (error) {\n output = [14];\n }\n program.charstrings.push({\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac\n });\n }\n return program;\n },\n extractFontHeader: function Type1Parser_extractFontHeader(properties) {\n var token;\n while ((token = this.getToken()) !== null) {\n if (token !== '/') {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case 'FontMatrix':\n var matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n case 'Encoding':\n var encodingArg = this.getToken();\n var encoding;\n if (!/^\\d+$/.test(encodingArg)) {\n encoding = (0, _encodings.getEncoding)(encodingArg);\n } else {\n encoding = [];\n var size = parseInt(encodingArg, 10) | 0;\n this.getToken();\n for (var j = 0; j < size; j++) {\n token = this.getToken();\n while (token !== 'dup' && token !== 'def') {\n token = this.getToken();\n if (token === null) {\n return;\n }\n }\n if (token === 'def') {\n break;\n }\n var index = this.readInt();\n this.getToken();\n var glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken();\n }\n }\n properties.builtInEncoding = encoding;\n break;\n case 'FontBBox':\n var fontBBox = this.readNumberArray();\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n break;\n }\n }\n }\n };\n return Type1Parser;\n }();\n exports.Type1Parser = Type1Parser;\n\n /***/\n }, /* 103 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var pdfjsVersion = '1.9.489';\n var pdfjsBuild = 'b7fcaff0';\n var pdfjsCoreWorker = __w_pdfjs_require__(61);\n exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;\n\n /***/\n }, /* 104 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n if (typeof PDFJS === 'undefined' || !PDFJS.compatibilityChecked) {\n var globalScope = __w_pdfjs_require__(105);\n var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';\n var isAndroid = /Android/.test(userAgent);\n var isAndroidPre3 = /Android\\s[0-2][^\\d]/.test(userAgent);\n var isAndroidPre5 = /Android\\s[0-4][^\\d]/.test(userAgent);\n var isChrome = userAgent.indexOf('Chrom') >= 0;\n var isChromeWithRangeBug = /Chrome\\/(39|40)\\./.test(userAgent);\n var isIOSChrome = userAgent.indexOf('CriOS') >= 0;\n var isIE = userAgent.indexOf('Trident') >= 0;\n var isIOS = /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent);\n var isOpera = userAgent.indexOf('Opera') >= 0;\n var isSafari = /Safari\\//.test(userAgent) && !/(Chrome\\/|Android\\s)/.test(userAgent);\n var hasDOM = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object';\n if (typeof PDFJS === 'undefined') {\n globalScope.PDFJS = {};\n }\n PDFJS.compatibilityChecked = true;\n (function checkTypedArrayCompatibility() {\n if (typeof Uint8ClampedArray === 'undefined') {\n globalScope.Uint8ClampedArray = __w_pdfjs_require__(63);\n }\n if (typeof Uint8Array !== 'undefined') {\n if (typeof Uint8Array.prototype.subarray === 'undefined') {\n Uint8Array.prototype.subarray = function subarray(start, end) {\n return new Uint8Array(this.slice(start, end));\n };\n Float32Array.prototype.subarray = function subarray(start, end) {\n return new Float32Array(this.slice(start, end));\n };\n }\n if (typeof Float64Array === 'undefined') {\n globalScope.Float64Array = Float32Array;\n }\n return;\n }\n function subarray(start, end) {\n return new TypedArray(this.slice(start, end));\n }\n function setArrayOffset(array, offset) {\n if (arguments.length < 2) {\n offset = 0;\n }\n for (var i = 0, n = array.length; i < n; ++i, ++offset) {\n this[offset] = array[i] & 0xFF;\n }\n }\n function Uint32ArrayView(buffer, length) {\n this.buffer = buffer;\n this.byteLength = buffer.length;\n this.length = length;\n ensureUint32ArrayViewProps(this.length);\n }\n Uint32ArrayView.prototype = Object.create(null);\n var uint32ArrayViewSetters = 0;\n function createUint32ArrayProp(index) {\n return {\n get: function get() {\n var buffer = this.buffer,\n offset = index << 2;\n return (buffer[offset] | buffer[offset + 1] << 8 | buffer[offset + 2] << 16 | buffer[offset + 3] << 24) >>> 0;\n },\n set: function set(value) {\n var buffer = this.buffer,\n offset = index << 2;\n buffer[offset] = value & 255;\n buffer[offset + 1] = value >> 8 & 255;\n buffer[offset + 2] = value >> 16 & 255;\n buffer[offset + 3] = value >>> 24 & 255;\n }\n };\n }\n function ensureUint32ArrayViewProps(length) {\n while (uint32ArrayViewSetters < length) {\n Object.defineProperty(Uint32ArrayView.prototype, uint32ArrayViewSetters, createUint32ArrayProp(uint32ArrayViewSetters));\n uint32ArrayViewSetters++;\n }\n }\n function TypedArray(arg1) {\n var result, i, n;\n if (typeof arg1 === 'number') {\n result = [];\n for (i = 0; i < arg1; ++i) {\n result[i] = 0;\n }\n } else if ('slice' in arg1) {\n result = arg1.slice(0);\n } else {\n result = [];\n for (i = 0, n = arg1.length; i < n; ++i) {\n result[i] = arg1[i];\n }\n }\n result.subarray = subarray;\n result.buffer = result;\n result.byteLength = result.length;\n result.set = setArrayOffset;\n if ((typeof arg1 === 'undefined' ? 'undefined' : _typeof(arg1)) === 'object' && arg1.buffer) {\n result.buffer = arg1.buffer;\n }\n return result;\n }\n globalScope.Uint8Array = TypedArray;\n globalScope.Int8Array = TypedArray;\n globalScope.Int32Array = TypedArray;\n globalScope.Uint16Array = TypedArray;\n globalScope.Float32Array = TypedArray;\n globalScope.Float64Array = TypedArray;\n globalScope.Uint32Array = function () {\n if (arguments.length === 3) {\n if (arguments[1] !== 0) {\n throw new Error('offset !== 0 is not supported');\n }\n return new Uint32ArrayView(arguments[0], arguments[2]);\n }\n return TypedArray.apply(this, arguments);\n };\n })();\n (function canvasPixelArrayBuffer() {\n if (!hasDOM || !window.CanvasPixelArray) {\n return;\n }\n var cpaProto = window.CanvasPixelArray.prototype;\n if ('buffer' in cpaProto) {\n return;\n }\n Object.defineProperty(cpaProto, 'buffer', {\n get: function get() {\n return this;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(cpaProto, 'byteLength', {\n get: function get() {\n return this.length;\n },\n enumerable: false,\n configurable: true\n });\n })();\n (function normalizeURLObject() {\n if (!globalScope.URL) {\n globalScope.URL = globalScope.webkitURL;\n }\n })();\n (function checkObjectDefinePropertyCompatibility() {\n if (typeof Object.defineProperty !== 'undefined') {\n var definePropertyPossible = true;\n try {\n if (hasDOM) {\n Object.defineProperty(new Image(), 'id', {\n value: 'test'\n });\n }\n var Test = function Test() {};\n Test.prototype = {\n get id() {}\n };\n Object.defineProperty(new Test(), 'id', {\n value: '',\n configurable: true,\n enumerable: true,\n writable: false\n });\n } catch (e) {\n definePropertyPossible = false;\n }\n if (definePropertyPossible) {\n return;\n }\n }\n Object.defineProperty = function objectDefineProperty(obj, name, def) {\n delete obj[name];\n if ('get' in def) {\n obj.__defineGetter__(name, def['get']);\n }\n if ('set' in def) {\n obj.__defineSetter__(name, def['set']);\n }\n if ('value' in def) {\n obj.__defineSetter__(name, function objectDefinePropertySetter(value) {\n this.__defineGetter__(name, function objectDefinePropertyGetter() {\n return value;\n });\n return value;\n });\n obj[name] = def.value;\n }\n };\n })();\n (function checkXMLHttpRequestResponseCompatibility() {\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n var xhrPrototype = XMLHttpRequest.prototype;\n var xhr = new XMLHttpRequest();\n if (!('overrideMimeType' in xhr)) {\n Object.defineProperty(xhrPrototype, 'overrideMimeType', {\n value: function xmlHttpRequestOverrideMimeType(mimeType) {}\n });\n }\n if ('responseType' in xhr) {\n return;\n }\n Object.defineProperty(xhrPrototype, 'responseType', {\n get: function xmlHttpRequestGetResponseType() {\n return this._responseType || 'text';\n },\n set: function xmlHttpRequestSetResponseType(value) {\n if (value === 'text' || value === 'arraybuffer') {\n this._responseType = value;\n if (value === 'arraybuffer' && typeof this.overrideMimeType === 'function') {\n this.overrideMimeType('text/plain; charset=x-user-defined');\n }\n }\n }\n });\n if (typeof VBArray !== 'undefined') {\n Object.defineProperty(xhrPrototype, 'response', {\n get: function xmlHttpRequestResponseGet() {\n if (this.responseType === 'arraybuffer') {\n return new Uint8Array(new VBArray(this.responseBody).toArray());\n }\n return this.responseText;\n }\n });\n return;\n }\n Object.defineProperty(xhrPrototype, 'response', {\n get: function xmlHttpRequestResponseGet() {\n if (this.responseType !== 'arraybuffer') {\n return this.responseText;\n }\n var text = this.responseText;\n var i,\n n = text.length;\n var result = new Uint8Array(n);\n for (i = 0; i < n; ++i) {\n result[i] = text.charCodeAt(i) & 0xFF;\n }\n return result.buffer;\n }\n });\n })();\n (function checkWindowBtoaCompatibility() {\n if ('btoa' in globalScope) {\n return;\n }\n var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n globalScope.btoa = function (chars) {\n var buffer = '';\n var i, n;\n for (i = 0, n = chars.length; i < n; i += 3) {\n var b1 = chars.charCodeAt(i) & 0xFF;\n var b2 = chars.charCodeAt(i + 1) & 0xFF;\n var b3 = chars.charCodeAt(i + 2) & 0xFF;\n var d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n var d3 = i + 1 < n ? (b2 & 0xF) << 2 | b3 >> 6 : 64;\n var d4 = i + 2 < n ? b3 & 0x3F : 64;\n buffer += digits.charAt(d1) + digits.charAt(d2) + digits.charAt(d3) + digits.charAt(d4);\n }\n return buffer;\n };\n })();\n (function checkWindowAtobCompatibility() {\n if ('atob' in globalScope) {\n return;\n }\n var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n globalScope.atob = function (input) {\n input = input.replace(/=+$/, '');\n if (input.length % 4 === 1) {\n throw new Error('bad atob input');\n }\n for (var bc = 0, bs, buffer, idx = 0, output = ''; buffer = input.charAt(idx++); ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) {\n buffer = digits.indexOf(buffer);\n }\n return output;\n };\n })();\n (function checkFunctionPrototypeBindCompatibility() {\n if (typeof Function.prototype.bind !== 'undefined') {\n return;\n }\n Function.prototype.bind = function functionPrototypeBind(obj) {\n var fn = this,\n headArgs = Array.prototype.slice.call(arguments, 1);\n var bound = function functionPrototypeBindBound() {\n var args = headArgs.concat(Array.prototype.slice.call(arguments));\n return fn.apply(obj, args);\n };\n return bound;\n };\n })();\n (function checkDatasetProperty() {\n if (!hasDOM) {\n return;\n }\n var div = document.createElement('div');\n if ('dataset' in div) {\n return;\n }\n Object.defineProperty(HTMLElement.prototype, 'dataset', {\n get: function get() {\n if (this._dataset) {\n return this._dataset;\n }\n var dataset = {};\n for (var j = 0, jj = this.attributes.length; j < jj; j++) {\n var attribute = this.attributes[j];\n if (attribute.name.substring(0, 5) !== 'data-') {\n continue;\n }\n var key = attribute.name.substring(5).replace(/\\-([a-z])/g, function (all, ch) {\n return ch.toUpperCase();\n });\n dataset[key] = attribute.value;\n }\n Object.defineProperty(this, '_dataset', {\n value: dataset,\n writable: false,\n enumerable: false\n });\n return dataset;\n },\n enumerable: true\n });\n })();\n (function checkClassListProperty() {\n function changeList(element, itemName, add, remove) {\n var s = element.className || '';\n var list = s.split(/\\s+/g);\n if (list[0] === '') {\n list.shift();\n }\n var index = list.indexOf(itemName);\n if (index < 0 && add) {\n list.push(itemName);\n }\n if (index >= 0 && remove) {\n list.splice(index, 1);\n }\n element.className = list.join(' ');\n return index >= 0;\n }\n if (!hasDOM) {\n return;\n }\n var div = document.createElement('div');\n if ('classList' in div) {\n return;\n }\n var classListPrototype = {\n add: function add(name) {\n changeList(this.element, name, true, false);\n },\n contains: function contains(name) {\n return changeList(this.element, name, false, false);\n },\n remove: function remove(name) {\n changeList(this.element, name, false, true);\n },\n toggle: function toggle(name) {\n changeList(this.element, name, true, true);\n }\n };\n Object.defineProperty(HTMLElement.prototype, 'classList', {\n get: function get() {\n if (this._classList) {\n return this._classList;\n }\n var classList = Object.create(classListPrototype, {\n element: {\n value: this,\n writable: false,\n enumerable: true\n }\n });\n Object.defineProperty(this, '_classList', {\n value: classList,\n writable: false,\n enumerable: false\n });\n return classList;\n },\n enumerable: true\n });\n })();\n (function checkWorkerConsoleCompatibility() {\n if (typeof importScripts === 'undefined' || 'console' in globalScope) {\n return;\n }\n var consoleTimer = {};\n var workerConsole = {\n log: function log() {\n var args = Array.prototype.slice.call(arguments);\n globalScope.postMessage({\n targetName: 'main',\n action: 'console_log',\n data: args\n });\n },\n error: function error() {\n var args = Array.prototype.slice.call(arguments);\n globalScope.postMessage({\n targetName: 'main',\n action: 'console_error',\n data: args\n });\n },\n time: function time(name) {\n consoleTimer[name] = Date.now();\n },\n timeEnd: function timeEnd(name) {\n var time = consoleTimer[name];\n if (!time) {\n throw new Error('Unknown timer name ' + name);\n }\n this.log('Timer:', name, Date.now() - time);\n }\n };\n globalScope.console = workerConsole;\n })();\n (function checkConsoleCompatibility() {\n if (!hasDOM) {\n return;\n }\n if (!('console' in window)) {\n window.console = {\n log: function log() {},\n error: function error() {},\n warn: function warn() {}\n };\n return;\n }\n if (!('bind' in console.log)) {\n console.log = function (fn) {\n return function (msg) {\n return fn(msg);\n };\n }(console.log);\n console.error = function (fn) {\n return function (msg) {\n return fn(msg);\n };\n }(console.error);\n console.warn = function (fn) {\n return function (msg) {\n return fn(msg);\n };\n }(console.warn);\n return;\n }\n })();\n (function checkOnClickCompatibility() {\n function ignoreIfTargetDisabled(event) {\n if (isDisabled(event.target)) {\n event.stopPropagation();\n }\n }\n function isDisabled(node) {\n return node.disabled || node.parentNode && isDisabled(node.parentNode);\n }\n if (isOpera) {\n document.addEventListener('click', ignoreIfTargetDisabled, true);\n }\n })();\n (function checkOnBlobSupport() {\n if (isIE || isIOSChrome) {\n PDFJS.disableCreateObjectURL = true;\n }\n })();\n (function checkNavigatorLanguage() {\n if (typeof navigator === 'undefined') {\n return;\n }\n if ('language' in navigator) {\n return;\n }\n PDFJS.locale = navigator.userLanguage || 'en-US';\n })();\n (function checkRangeRequests() {\n if (isSafari || isAndroidPre3 || isChromeWithRangeBug || isIOS) {\n PDFJS.disableRange = true;\n PDFJS.disableStream = true;\n }\n })();\n (function checkHistoryManipulation() {\n if (!hasDOM) {\n return;\n }\n if (!history.pushState || isAndroidPre3) {\n PDFJS.disableHistory = true;\n }\n })();\n (function checkSetPresenceInImageData() {\n if (!hasDOM) {\n return;\n }\n if (window.CanvasPixelArray) {\n if (typeof window.CanvasPixelArray.prototype.set !== 'function') {\n window.CanvasPixelArray.prototype.set = function (arr) {\n for (var i = 0, ii = this.length; i < ii; i++) {\n this[i] = arr[i];\n }\n };\n }\n } else {\n var polyfill = false,\n versionMatch;\n if (isChrome) {\n versionMatch = userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\n polyfill = versionMatch && parseInt(versionMatch[2]) < 21;\n } else if (isAndroid) {\n polyfill = isAndroidPre5;\n } else if (isSafari) {\n versionMatch = userAgent.match(/Version\\/([0-9]+)\\.([0-9]+)\\.([0-9]+) Safari\\//);\n polyfill = versionMatch && parseInt(versionMatch[1]) < 6;\n }\n if (polyfill) {\n var contextPrototype = window.CanvasRenderingContext2D.prototype;\n var createImageData = contextPrototype.createImageData;\n contextPrototype.createImageData = function (w, h) {\n var imageData = createImageData.call(this, w, h);\n imageData.data.set = function (arr) {\n for (var i = 0, ii = this.length; i < ii; i++) {\n this[i] = arr[i];\n }\n };\n return imageData;\n };\n contextPrototype = null;\n }\n }\n })();\n (function checkRequestAnimationFrame() {\n function installFakeAnimationFrameFunctions() {\n window.requestAnimationFrame = function (callback) {\n return window.setTimeout(callback, 20);\n };\n window.cancelAnimationFrame = function (timeoutID) {\n window.clearTimeout(timeoutID);\n };\n }\n if (!hasDOM) {\n return;\n }\n if (isIOS) {\n installFakeAnimationFrameFunctions();\n return;\n }\n if ('requestAnimationFrame' in window) {\n return;\n }\n window.requestAnimationFrame = window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame;\n if (window.requestAnimationFrame) {\n return;\n }\n installFakeAnimationFrameFunctions();\n })();\n (function checkCanvasSizeLimitation() {\n if (isIOS || isAndroid) {\n PDFJS.maxCanvasPixels = 5242880;\n }\n })();\n (function checkFullscreenSupport() {\n if (!hasDOM) {\n return;\n }\n if (isIE && window.parent !== window) {\n PDFJS.disableFullscreen = true;\n }\n })();\n (function checkCurrentScript() {\n if (!hasDOM) {\n return;\n }\n if ('currentScript' in document) {\n return;\n }\n Object.defineProperty(document, 'currentScript', {\n get: function get() {\n var scripts = document.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n },\n enumerable: true,\n configurable: true\n });\n })();\n (function checkInputTypeNumberAssign() {\n if (!hasDOM) {\n return;\n }\n var el = document.createElement('input');\n try {\n el.type = 'number';\n } catch (ex) {\n var inputProto = el.constructor.prototype;\n var typeProperty = Object.getOwnPropertyDescriptor(inputProto, 'type');\n Object.defineProperty(inputProto, 'type', {\n get: function get() {\n return typeProperty.get.call(this);\n },\n set: function set(value) {\n typeProperty.set.call(this, value === 'number' ? 'text' : value);\n },\n enumerable: true,\n configurable: true\n });\n }\n })();\n (function checkDocumentReadyState() {\n if (!hasDOM) {\n return;\n }\n if (!document.attachEvent) {\n return;\n }\n var documentProto = document.constructor.prototype;\n var readyStateProto = Object.getOwnPropertyDescriptor(documentProto, 'readyState');\n Object.defineProperty(documentProto, 'readyState', {\n get: function get() {\n var value = readyStateProto.get.call(this);\n return value === 'interactive' ? 'loading' : value;\n },\n set: function set(value) {\n readyStateProto.set.call(this, value);\n },\n enumerable: true,\n configurable: true\n });\n })();\n (function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n })();\n (function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = function (value) {\n return typeof value === 'number' && isNaN(value);\n };\n })();\n (function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n };\n })();\n (function checkPromise() {\n if (globalScope.Promise) {\n if (typeof globalScope.Promise.all !== 'function') {\n globalScope.Promise.all = function (iterable) {\n var count = 0,\n results = [],\n resolve,\n reject;\n var promise = new globalScope.Promise(function (resolve_, reject_) {\n resolve = resolve_;\n reject = reject_;\n });\n iterable.forEach(function (p, i) {\n count++;\n p.then(function (result) {\n results[i] = result;\n count--;\n if (count === 0) {\n resolve(results);\n }\n }, reject);\n });\n if (count === 0) {\n resolve(results);\n }\n return promise;\n };\n }\n if (typeof globalScope.Promise.resolve !== 'function') {\n globalScope.Promise.resolve = function (value) {\n return new globalScope.Promise(function (resolve) {\n resolve(value);\n });\n };\n }\n if (typeof globalScope.Promise.reject !== 'function') {\n globalScope.Promise.reject = function (reason) {\n return new globalScope.Promise(function (resolve, reject) {\n reject(reason);\n });\n };\n }\n if (typeof globalScope.Promise.prototype.catch !== 'function') {\n globalScope.Promise.prototype.catch = function (onReject) {\n return globalScope.Promise.prototype.then(undefined, onReject);\n };\n }\n return;\n }\n var STATUS_PENDING = 0;\n var STATUS_RESOLVED = 1;\n var STATUS_REJECTED = 2;\n var REJECTION_TIMEOUT = 500;\n var HandlerManager = {\n handlers: [],\n running: false,\n unhandledRejections: [],\n pendingRejectionCheck: false,\n scheduleHandlers: function scheduleHandlers(promise) {\n if (promise._status === STATUS_PENDING) {\n return;\n }\n this.handlers = this.handlers.concat(promise._handlers);\n promise._handlers = [];\n if (this.running) {\n return;\n }\n this.running = true;\n setTimeout(this.runHandlers.bind(this), 0);\n },\n runHandlers: function runHandlers() {\n var RUN_TIMEOUT = 1;\n var timeoutAt = Date.now() + RUN_TIMEOUT;\n while (this.handlers.length > 0) {\n var handler = this.handlers.shift();\n var nextStatus = handler.thisPromise._status;\n var nextValue = handler.thisPromise._value;\n try {\n if (nextStatus === STATUS_RESOLVED) {\n if (typeof handler.onResolve === 'function') {\n nextValue = handler.onResolve(nextValue);\n }\n } else if (typeof handler.onReject === 'function') {\n nextValue = handler.onReject(nextValue);\n nextStatus = STATUS_RESOLVED;\n if (handler.thisPromise._unhandledRejection) {\n this.removeUnhandeledRejection(handler.thisPromise);\n }\n }\n } catch (ex) {\n nextStatus = STATUS_REJECTED;\n nextValue = ex;\n }\n handler.nextPromise._updateStatus(nextStatus, nextValue);\n if (Date.now() >= timeoutAt) {\n break;\n }\n }\n if (this.handlers.length > 0) {\n setTimeout(this.runHandlers.bind(this), 0);\n return;\n }\n this.running = false;\n },\n addUnhandledRejection: function addUnhandledRejection(promise) {\n this.unhandledRejections.push({\n promise: promise,\n time: Date.now()\n });\n this.scheduleRejectionCheck();\n },\n removeUnhandeledRejection: function removeUnhandeledRejection(promise) {\n promise._unhandledRejection = false;\n for (var i = 0; i < this.unhandledRejections.length; i++) {\n if (this.unhandledRejections[i].promise === promise) {\n this.unhandledRejections.splice(i);\n i--;\n }\n }\n },\n scheduleRejectionCheck: function scheduleRejectionCheck() {\n var _this = this;\n if (this.pendingRejectionCheck) {\n return;\n }\n this.pendingRejectionCheck = true;\n setTimeout(function () {\n _this.pendingRejectionCheck = false;\n var now = Date.now();\n for (var i = 0; i < _this.unhandledRejections.length; i++) {\n if (now - _this.unhandledRejections[i].time > REJECTION_TIMEOUT) {\n var unhandled = _this.unhandledRejections[i].promise._value;\n var msg = 'Unhandled rejection: ' + unhandled;\n if (unhandled.stack) {\n msg += '\\n' + unhandled.stack;\n }\n try {\n throw new Error(msg);\n } catch (_) {\n console.warn(msg);\n }\n _this.unhandledRejections.splice(i);\n i--;\n }\n }\n if (_this.unhandledRejections.length) {\n _this.scheduleRejectionCheck();\n }\n }, REJECTION_TIMEOUT);\n }\n };\n var Promise = function Promise(resolver) {\n this._status = STATUS_PENDING;\n this._handlers = [];\n try {\n resolver.call(this, this._resolve.bind(this), this._reject.bind(this));\n } catch (e) {\n this._reject(e);\n }\n };\n Promise.all = function Promise_all(promises) {\n var resolveAll, rejectAll;\n var deferred = new Promise(function (resolve, reject) {\n resolveAll = resolve;\n rejectAll = reject;\n });\n var unresolved = promises.length;\n var results = [];\n if (unresolved === 0) {\n resolveAll(results);\n return deferred;\n }\n function reject(reason) {\n if (deferred._status === STATUS_REJECTED) {\n return;\n }\n results = [];\n rejectAll(reason);\n }\n for (var i = 0, ii = promises.length; i < ii; ++i) {\n var promise = promises[i];\n var resolve = function (i) {\n return function (value) {\n if (deferred._status === STATUS_REJECTED) {\n return;\n }\n results[i] = value;\n unresolved--;\n if (unresolved === 0) {\n resolveAll(results);\n }\n };\n }(i);\n if (Promise.isPromise(promise)) {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n return deferred;\n };\n Promise.isPromise = function Promise_isPromise(value) {\n return value && typeof value.then === 'function';\n };\n Promise.resolve = function Promise_resolve(value) {\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function Promise_reject(reason) {\n return new Promise(function (resolve, reject) {\n reject(reason);\n });\n };\n Promise.prototype = {\n _status: null,\n _value: null,\n _handlers: null,\n _unhandledRejection: null,\n _updateStatus: function Promise__updateStatus(status, value) {\n if (this._status === STATUS_RESOLVED || this._status === STATUS_REJECTED) {\n return;\n }\n if (status === STATUS_RESOLVED && Promise.isPromise(value)) {\n value.then(this._updateStatus.bind(this, STATUS_RESOLVED), this._updateStatus.bind(this, STATUS_REJECTED));\n return;\n }\n this._status = status;\n this._value = value;\n if (status === STATUS_REJECTED && this._handlers.length === 0) {\n this._unhandledRejection = true;\n HandlerManager.addUnhandledRejection(this);\n }\n HandlerManager.scheduleHandlers(this);\n },\n _resolve: function Promise_resolve(value) {\n this._updateStatus(STATUS_RESOLVED, value);\n },\n _reject: function Promise_reject(reason) {\n this._updateStatus(STATUS_REJECTED, reason);\n },\n then: function Promise_then(onResolve, onReject) {\n var nextPromise = new Promise(function (resolve, reject) {\n this.resolve = resolve;\n this.reject = reject;\n });\n this._handlers.push({\n thisPromise: this,\n onResolve: onResolve,\n onReject: onReject,\n nextPromise: nextPromise\n });\n HandlerManager.scheduleHandlers(this);\n return nextPromise;\n },\n catch: function Promise_catch(onReject) {\n return this.then(undefined, onReject);\n }\n };\n globalScope.Promise = Promise;\n })();\n (function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n var id = 0;\n function WeakMap() {\n this.id = '$weakmap' + id++;\n }\n WeakMap.prototype = {\n has: function has(obj) {\n if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' && typeof obj !== 'function' || obj === null) {\n return false;\n }\n return !!Object.getOwnPropertyDescriptor(obj, this.id);\n },\n get: function get(obj) {\n return this.has(obj) ? obj[this.id] : undefined;\n },\n set: function set(obj, value) {\n Object.defineProperty(obj, this.id, {\n value: value,\n enumerable: false,\n configurable: true\n });\n },\n delete: function _delete(obj) {\n delete obj[this.id];\n }\n };\n globalScope.WeakMap = WeakMap;\n })();\n (function checkURLConstructor() {\n var hasWorkingUrl = false;\n try {\n if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {\n var u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n hasWorkingUrl = u.href === 'http://a/c%20d';\n }\n } catch (e) {}\n if (hasWorkingUrl) {\n return;\n }\n var relative = Object.create(null);\n relative['ftp'] = 21;\n relative['file'] = 0;\n relative['gopher'] = 70;\n relative['http'] = 80;\n relative['https'] = 443;\n relative['ws'] = 80;\n relative['wss'] = 443;\n var relativePathDotMapping = Object.create(null);\n relativePathDotMapping['%2e'] = '.';\n relativePathDotMapping['.%2e'] = '..';\n relativePathDotMapping['%2e.'] = '..';\n relativePathDotMapping['%2e%2e'] = '..';\n function isRelativeScheme(scheme) {\n return relative[scheme] !== undefined;\n }\n function invalid() {\n clear.call(this);\n this._isInvalid = true;\n }\n function IDNAToASCII(h) {\n if (h === '') {\n invalid.call(this);\n }\n return h.toLowerCase();\n }\n function percentEscape(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n return encodeURIComponent(c);\n }\n function percentEscapeQuery(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n return encodeURIComponent(c);\n }\n var EOF,\n ALPHA = /[a-zA-Z]/,\n ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n function parse(input, stateOverride, base) {\n function err(message) {\n errors.push(message);\n }\n var state = stateOverride || 'scheme start',\n cursor = 0,\n buffer = '',\n seenAt = false,\n seenBracket = false,\n errors = [];\n loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {\n var c = input[cursor];\n switch (state) {\n case 'scheme start':\n if (c && ALPHA.test(c)) {\n buffer += c.toLowerCase();\n state = 'scheme';\n } else if (!stateOverride) {\n buffer = '';\n state = 'no scheme';\n continue;\n } else {\n err('Invalid scheme.');\n break loop;\n }\n break;\n case 'scheme':\n if (c && ALPHANUMERIC.test(c)) {\n buffer += c.toLowerCase();\n } else if (c === ':') {\n this._scheme = buffer;\n buffer = '';\n if (stateOverride) {\n break loop;\n }\n if (isRelativeScheme(this._scheme)) {\n this._isRelative = true;\n }\n if (this._scheme === 'file') {\n state = 'relative';\n } else if (this._isRelative && base && base._scheme === this._scheme) {\n state = 'relative or authority';\n } else if (this._isRelative) {\n state = 'authority first slash';\n } else {\n state = 'scheme data';\n }\n } else if (!stateOverride) {\n buffer = '';\n cursor = 0;\n state = 'no scheme';\n continue;\n } else if (c === EOF) {\n break loop;\n } else {\n err('Code point not allowed in scheme: ' + c);\n break loop;\n }\n break;\n case 'scheme data':\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else {\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._schemeData += percentEscape(c);\n }\n }\n break;\n case 'no scheme':\n if (!base || !isRelativeScheme(base._scheme)) {\n err('Missing scheme.');\n invalid.call(this);\n } else {\n state = 'relative';\n continue;\n }\n break;\n case 'relative or authority':\n if (c === '/' && input[cursor + 1] === '/') {\n state = 'authority ignore slashes';\n } else {\n err('Expected /, got: ' + c);\n state = 'relative';\n continue;\n }\n break;\n case 'relative':\n this._isRelative = true;\n if (this._scheme !== 'file') {\n this._scheme = base._scheme;\n }\n if (c === EOF) {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._username = base._username;\n this._password = base._password;\n break loop;\n } else if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n state = 'relative slash';\n } else if (c === '?') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = '?';\n this._username = base._username;\n this._password = base._password;\n state = 'query';\n } else if (c === '#') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._fragment = '#';\n this._username = base._username;\n this._password = base._password;\n state = 'fragment';\n } else {\n var nextC = input[cursor + 1];\n var nextNextC = input[cursor + 2];\n if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' && nextNextC !== '?' && nextNextC !== '#') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n this._path = base._path.slice();\n this._path.pop();\n }\n state = 'relative path';\n continue;\n }\n break;\n case 'relative slash':\n if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n if (this._scheme === 'file') {\n state = 'file host';\n } else {\n state = 'authority ignore slashes';\n }\n } else {\n if (this._scheme !== 'file') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n }\n state = 'relative path';\n continue;\n }\n break;\n case 'authority first slash':\n if (c === '/') {\n state = 'authority second slash';\n } else {\n err('Expected \\'/\\', got: ' + c);\n state = 'authority ignore slashes';\n continue;\n }\n break;\n case 'authority second slash':\n state = 'authority ignore slashes';\n if (c !== '/') {\n err('Expected \\'/\\', got: ' + c);\n continue;\n }\n break;\n case 'authority ignore slashes':\n if (c !== '/' && c !== '\\\\') {\n state = 'authority';\n continue;\n } else {\n err('Expected authority, got: ' + c);\n }\n break;\n case 'authority':\n if (c === '@') {\n if (seenAt) {\n err('@ already seen.');\n buffer += '%40';\n }\n seenAt = true;\n for (var i = 0; i < buffer.length; i++) {\n var cp = buffer[i];\n if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n err('Invalid whitespace in authority.');\n continue;\n }\n if (cp === ':' && this._password === null) {\n this._password = '';\n continue;\n }\n var tempC = percentEscape(cp);\n if (this._password !== null) {\n this._password += tempC;\n } else {\n this._username += tempC;\n }\n }\n buffer = '';\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n cursor -= buffer.length;\n buffer = '';\n state = 'host';\n continue;\n } else {\n buffer += c;\n }\n break;\n case 'file host':\n if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {\n state = 'relative path';\n } else if (buffer.length === 0) {\n state = 'relative path start';\n } else {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n }\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid whitespace in file host.');\n } else {\n buffer += c;\n }\n break;\n case 'host':\n case 'hostname':\n if (c === ':' && !seenBracket) {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'port';\n if (stateOverride === 'hostname') {\n break loop;\n }\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n if (stateOverride) {\n break loop;\n }\n continue;\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n if (c === '[') {\n seenBracket = true;\n } else if (c === ']') {\n seenBracket = false;\n }\n buffer += c;\n } else {\n err('Invalid code point in host/hostname: ' + c);\n }\n break;\n case 'port':\n if (/[0-9]/.test(c)) {\n buffer += c;\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#' || stateOverride) {\n if (buffer !== '') {\n var temp = parseInt(buffer, 10);\n if (temp !== relative[this._scheme]) {\n this._port = temp + '';\n }\n buffer = '';\n }\n if (stateOverride) {\n break loop;\n }\n state = 'relative path start';\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid code point in port: ' + c);\n } else {\n invalid.call(this);\n }\n break;\n case 'relative path start':\n if (c === '\\\\') {\n err('\\'\\\\\\' not allowed in path.');\n }\n state = 'relative path';\n if (c !== '/' && c !== '\\\\') {\n continue;\n }\n break;\n case 'relative path':\n if (c === EOF || c === '/' || c === '\\\\' || !stateOverride && (c === '?' || c === '#')) {\n if (c === '\\\\') {\n err('\\\\ not allowed in relative path.');\n }\n var tmp;\n if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n buffer = tmp;\n }\n if (buffer === '..') {\n this._path.pop();\n if (c !== '/' && c !== '\\\\') {\n this._path.push('');\n }\n } else if (buffer === '.' && c !== '/' && c !== '\\\\') {\n this._path.push('');\n } else if (buffer !== '.') {\n if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {\n buffer = buffer[0] + ':';\n }\n this._path.push(buffer);\n }\n buffer = '';\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n }\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n buffer += percentEscape(c);\n }\n break;\n case 'query':\n if (!stateOverride && c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._query += percentEscapeQuery(c);\n }\n break;\n case 'fragment':\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._fragment += c;\n }\n break;\n }\n cursor++;\n }\n }\n function clear() {\n this._scheme = '';\n this._schemeData = '';\n this._username = '';\n this._password = null;\n this._host = '';\n this._port = '';\n this._path = [];\n this._query = '';\n this._fragment = '';\n this._isInvalid = false;\n this._isRelative = false;\n }\n function JURL(url, base) {\n if (base !== undefined && !(base instanceof JURL)) {\n base = new JURL(String(base));\n }\n this._url = url;\n clear.call(this);\n var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n parse.call(this, input, null, base);\n }\n JURL.prototype = {\n toString: function toString() {\n return this.href;\n },\n get href() {\n if (this._isInvalid) {\n return this._url;\n }\n var authority = '';\n if (this._username !== '' || this._password !== null) {\n authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';\n }\n return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n },\n set href(value) {\n clear.call(this);\n parse.call(this, value);\n },\n get protocol() {\n return this._scheme + ':';\n },\n set protocol(value) {\n if (this._isInvalid) {\n return;\n }\n parse.call(this, value + ':', 'scheme start');\n },\n get host() {\n return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n },\n set host(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'host');\n },\n get hostname() {\n return this._host;\n },\n set hostname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'hostname');\n },\n get port() {\n return this._port;\n },\n set port(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'port');\n },\n get pathname() {\n return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n },\n set pathname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._path = [];\n parse.call(this, value, 'relative path start');\n },\n get search() {\n return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;\n },\n set search(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._query = '?';\n if (value[0] === '?') {\n value = value.slice(1);\n }\n parse.call(this, value, 'query');\n },\n get hash() {\n return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;\n },\n set hash(value) {\n if (this._isInvalid) {\n return;\n }\n this._fragment = '#';\n if (value[0] === '#') {\n value = value.slice(1);\n }\n parse.call(this, value, 'fragment');\n },\n get origin() {\n var host;\n if (this._isInvalid || !this._scheme) {\n return '';\n }\n switch (this._scheme) {\n case 'data':\n case 'file':\n case 'javascript':\n case 'mailto':\n return 'null';\n case 'blob':\n try {\n return new JURL(this._schemeData).origin || 'null';\n } catch (_) {}\n return 'null';\n }\n host = this.host;\n if (!host) {\n return '';\n }\n return this._scheme + '://' + host;\n }\n };\n var OriginalURL = globalScope.URL;\n if (OriginalURL) {\n JURL.createObjectURL = function (blob) {\n return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n };\n JURL.revokeObjectURL = function (url) {\n OriginalURL.revokeObjectURL(url);\n };\n }\n globalScope.URL = JURL;\n })();\n }\n\n /***/\n }, /* 105 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {};\n\n /***/\n }, /* 106 */\n /***/function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var isReadableStreamSupported = false;\n if (typeof ReadableStream !== 'undefined') {\n try {\n new ReadableStream({\n start: function start(controller) {\n controller.close();\n }\n });\n isReadableStreamSupported = true;\n } catch (e) {}\n }\n if (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n } else {\n exports.ReadableStream = __w_pdfjs_require__(62).ReadableStream;\n }\n\n /***/\n }\n /******/])\n );\n});","map":{"version":3,"names":["webpackUniversalModuleDefinition","root","factory","exports","module","define","amd","pdfjsDistBuildPdfWorker","modules","installedModules","__w_pdfjs_require__","moduleId","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","unreachable","warn","utf8StringToString","stringToUTF8String","stringToPDFString","stringToBytes","string32","shadow","setVerbosityLevel","ReadableStream","removeNullCharacters","readUint32","readUint16","readInt8","log2","loadJpegStream","isEvalSupported","isLittleEndian","createValidAbsoluteUrl","isSameOrigin","isNodeJS","isSpace","isString","isNum","isInt","isEmptyObj","isBool","isArrayBuffer","isArray","info","getVerbosityLevel","getLookupTableFactory","deprecated","createObjectURL","createPromiseCapability","createBlob","bytesToString","assert","arraysToBytes","arrayByteLength","FormatError","XRefParseException","Util","UnknownErrorException","UnexpectedResponseException","TextRenderingMode","StreamType","StatTimer","PasswordResponses","PasswordException","PageViewport","NotImplementedException","NativeImageDecoding","MissingPDFException","MissingDataException","MessageHandler","InvalidPDFException","AbortException","CMapCompressionType","ImageKind","FontType","AnnotationType","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","UNSUPPORTED_FEATURES","VERBOSITY_LEVELS","OPS","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","undefined","_typeof","Symbol","iterator","obj","constructor","_streams_polyfill","NONE","DECODE","DISPLAY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","HIDDEN","PRINT","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RL","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","errors","warnings","infos","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","verbosity","level","msg","console","log","details","Error","cond","unknown","forms","javaScript","smask","shadingPattern","font","baseUrl","otherUrl","base","URL","origin","e","other","isValidProtocol","url","protocol","absoluteUrl","ex","prop","writable","initializer","lookup","create","NEED_PASSWORD","INCORRECT_PASSWORD","PasswordExceptionClosure","code","message","UnknownErrorExceptionClosure","InvalidPDFExceptionClosure","MissingPDFExceptionClosure","UnexpectedResponseExceptionClosure","status","NotImplementedExceptionClosure","MissingDataExceptionClosure","begin","end","XRefParseExceptionClosure","FormatErrorClosure","AbortExceptionClosure","NullCharactersRegExp","str","replace","bytes","length","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","Math","min","chunk","subarray","push","join","Uint8Array","charCodeAt","arr","byteLength","resultLength","ii","item","itemLength","pos","data","set","x","start","offset","buffer8","view32","Uint32Array","buffer","Function","UtilClosure","rgbBuf","makeCssRgb","Util_makeCssRgb","r","g","b","Util_transform","m1","m2","applyTransform","Util_applyTransform","xt","yt","applyInverseTransform","Util_applyInverseTransform","getAxialAlignedBoundingBox","Util_getAxialAlignedBoundingBox","p1","p2","slice","p3","p4","max","inverseTransform","Util_inverseTransform","apply3dTransform","Util_apply3dTransform","v","singularValueDecompose2dScale","Util_singularValueDecompose2dScale","transpose","a","first","second","sqrt","sx","sy","normalizeRect","Util_normalizeRect","rect","intersect","Util_intersect","rect1","rect2","compare","orderedX","sort","orderedY","result","sign","Util_sign","num","ROMAN_NUMBER_MAP","toRoman","Util_toRoman","number","lowerCase","romanBuf","romanStr","toLowerCase","appendToArray","Util_appendToArray","arr1","arr2","Array","prependToArray","Util_prependToArray","unshift","extendObj","obj1","obj2","key","getInheritableProperty","Util_getInheritableProperty","dict","getArray","has","inherit","Util_inherit","sub","loadScript","Util_loadScript","src","callback","script","document","createElement","loaded","setAttribute","onload","getElementsByTagName","appendChild","PageViewportClosure","viewBox","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","width","height","abs","fontScale","clone","PageViewPort_clone","args","convertToViewportPoint","PageViewport_convertToViewportPoint","y","convertToViewportRectangle","PageViewport_convertToViewportRectangle","tl","br","convertToPdfPoint","PageViewport_convertToPdfPoint","PDFStringTranslateTable","charAt","decodeURIComponent","escape","unescape","encodeURIComponent","ch","process","capability","promise","Promise","resolve","reject","StatTimerClosure","rpad","pad","started","times","enabled","time","StatTimer_time","Date","now","timeEnd","StatTimer_timeEnd","toString","StatTimer_toString","out","longest","span","duration","contentType","Blob","type","createObjectURLClosure","digits","forceDataSchema","arguments","blob","b1","b2","b3","d1","d2","d3","d4","resolveCall","fn","thisArg","wrapReason","reason","resolveOrReject","success","finalize","catch","sourceName","targetName","comObj","_this","callbackId","streamId","postMessageTransfers","streamSinks","streamControllers","callbacksCapabilities","ah","actionHandler","_onComObjOnMessage","event","stream","_processStreamMessage","isReply","error","action","_sourceName","_targetName","then","postMessage","_createStreamSink","addEventListener","on","actionName","handler","scope","send","transfers","sendWithPromise","sendWithStream","queueingStrategy","_this2","controller","startCapability","startCall","isClosed","desiredSize","pull","pullCapability","pullCall","cancel","cancelCapability","cancelCall","_this3","self","sendStreamRequest","_ref","streamSink","enqueue","size","isCancelled","lastDesiredSize","sinkCapability","ready","close","onPull","onCancel","_this4","sendStreamResponse","_ref2","deleteStreamController","all","map","destroy","removeEventListener","id","imageUrl","objs","img","Image","loadJpegStream_onloadClosure","onerror","loadJpegStream_onerrorClosure","isStream","isRefsEqual","isRef","isName","isDict","isCmd","isEOF","RefSetCache","RefSet","Ref","Name","Dict","Cmd","EOF","_util","NameClosure","nameCache","Name_get","nameValue","CmdClosure","cmd","cmdCache","Cmd_get","cmdValue","DictClosure","nonSerializable","nonSerializableClosure","xref","_map","objId","suppressEncryption","__nonSerializable__","assignXref","Dict_assignXref","newXref","Dict_get","key1","key2","key3","fetchIfRef","getAsync","Dict_getAsync","fetchIfRefAsync","Dict_getArray","fetch","getRaw","Dict_getRaw","getKeys","Dict_getKeys","keys","Dict_set","Dict_has","forEach","Dict_forEach","empty","merge","dictArray","mergedDict","keyName","RefClosure","gen","Ref_toString","RefSetClosure","RefSet_has","ref","put","RefSet_put","remove","RefSet_remove","RefSetCacheClosure","RefSetCache_get","RefSetCache_has","RefSetCache_put","putAlias","RefSetCache_putAlias","aliasRef","RefSetCache_forEach","clear","RefSetCache_clear","v1","v2","getBytes","store","uid","_Symbol","USE_SYMBOL","$exports","LZWStream","StringStream","StreamsSequenceStream","Stream","RunLengthStream","PredictorStream","NullStream","JpxStream","JpegStream","Jbig2Stream","FlateStream","DecodeStream","DecryptStream","CCITTFaxStream","AsciiHexStream","Ascii85Stream","_primitives","_jbig","_jpg","_jpx","StreamClosure","arrayBuffer","isEmpty","getByte","Stream_getByte","getUint16","Stream_getUint16","b0","getInt32","Stream_getInt32","Stream_getBytes","strEnd","peekByte","Stream_peekByte","peekedByte","peekBytes","Stream_peekBytes","skip","Stream_skip","reset","Stream_reset","moveStart","Stream_moveStart","makeSubStream","Stream_makeSubStream","StringStreamClosure","DecodeStreamClosure","emptyBuffer","maybeMinBufferLength","bufferLength","eof","minBufferLength","readBlock","ensureBuffer","DecodeStream_ensureBuffer","requested","buffer2","DecodeStream_getByte","DecodeStream_getUint16","DecodeStream_getInt32","DecodeStream_getBytes","bufEnd","DecodeStream_peekByte","DecodeStream_peekBytes","DecodeStream_makeSubStream","DecodeStream_skip","DecodeStream_reset","getBaseStreams","DecodeStream_getBaseStreams","StreamsSequenceStreamClosure","streams","streamSequenceStreamReadBlock","shift","newLength","StreamsSequenceStream_getBaseStreams","baseStreams","FlateStreamClosure","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","maybeLength","cmf","flg","codeSize","codeBuf","getBits","FlateStream_getBits","bits","getCode","FlateStream_getCode","table","codes","maxLen","codeLen","codeVal","generateHuffmanTable","flateStreamGenerateHuffmanTable","lengths","len","val","code2","t","FlateStream_readBlock","hdr","blockLen","check","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","codeLengths","bitsLength","bitsOffset","what","repeatLength","limit","code1","dist","k","PredictorStreamClosure","params","predictor","readBlockTiff","readBlockPng","colors","columns","pixBytes","rowBytes","predictorStreamReadBlockTiff","rawBytes","inbuf","outbuf","inbits","outbits","compArray","bitMask","j","kk","predictorStreamReadBlockPng","prevRow","up","upLeft","left","pa","pb","pc","JpegStreamClosure","JpegStream_bytes","JpegStream_ensureBuffer","req","jpegImage","JpegImage","decodeArr","forceRGB","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","decodeTransform","colorTransform","parse","getData","drawWidth","drawHeight","JpegStream_getBytes","getIR","JpegStream_getIR","JpxStreamClosure","JpxStream_bytes","JpxStream_ensureBuffer","jpxImage","JpxImage","componentsCount","tileCount","tiles","items","Uint8ClampedArray","tileComponents","tileWidth","tileHeight","tileLeft","tileTop","top","srcPosition","dataPosition","imgRowSize","tileRowSize","Jbig2StreamClosure","Jbig2Stream_bytes","Jbig2Stream_ensureBuffer","jbig2Image","Jbig2Image","chunks","globalsStream","globals","parseChunks","dataLength","DecryptStreamClosure","decrypt","nextChunk","initialized","chunkSize","DecryptStream_readBlock","hasMoreData","Ascii85StreamClosure","input","Ascii85Stream_readBlock","TILDA_CHAR","Z_LOWER_CHAR","AsciiHexStreamClosure","firstDigit","AsciiHexStream_readBlock","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","RunLengthStreamClosure","RunLengthStream_readBlock","repeatHeader","source","CCITTFaxStreamClosure","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","encoding","eoline","byteAlign","rows","eoblock","black","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","lookBits","eatBits","CCITTFaxStream_readBlock","lookChar","addPixels","ccittFaxStreamAddPixels","a1","blackPixels","err","addPixelsNeg","ccittFaxStreamAddPixelsNeg","CCITTFaxStream_lookChar","refPos","code3","getTwoDimCode","getBlackCode","getWhiteCode","gotEOL","findTableCode","ccittFaxStreamFindTableCode","limitValue","ccittFaxStreamGetTwoDimCode","ccittFaxStreamGetWhiteCode","ccittFaxStreamGetBlackCode","CCITTFaxStream_lookBits","CCITTFaxStream_eatBits","LZWStreamClosure","earlyChange","cachedData","bitsCached","maxLzwDictionarySize","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","Uint16Array","dictionaryPrevCodes","currentSequence","currentSequenceLength","readBits","LZWStream_readBits","lastCode","LZWStream_readBlock","blockSize","estimatedDecodedSize","decodedSizeDelta","q","prevCode","decodedLength","currentBufferLength","hasPrev","NullStreamClosure","global","window","__g","dP","createDesc","f","it","toInteger","anObject","IE8_DOM_DEFINE","toPrimitive","O","P","Attributes","TypeError","ceil","floor","isNaN","defined","px","random","concat","ColorSpace","_function","ColorSpaceClosure","resizeRgbImage","bpc","w1","h1","w2","h2","alpha01","dest","COMPONENTS","xRatio","yRatio","py","newIndex","oldIndex","xScaled","w1Scanline","getRgb","ColorSpace_getRgb","srcOffset","rgb","getRgbItem","ColorSpace_getRgbItem","destOffset","getRgbBuffer","ColorSpace_getRgbBuffer","count","getOutputLength","ColorSpace_getOutputLength","inputLength","isPassthrough","ColorSpace_isPassthrough","fillRgb","ColorSpace_fillRgb","originalWidth","originalHeight","actualHeight","comps","numComponentColors","needsResizing","numComps","allColors","colorMap","destPos","rgbPos","usesZeroToOneRange","ColorSpace_parse","cs","res","IR","parseToIR","AlternateCS","fromIR","ColorSpace_fromIR","whitePoint","blackPoint","gamma","singletons","gray","cmyk","CalGrayCS","matrix","CalRGBCS","basePatternCS","PatternCS","baseIndexedCS","hiVal","IndexedCS","alt","tintFnIR","PDFFunction","range","LabCS","ColorSpace_parseToIR","colorSpaces","refcs","mode","altIR","altCS","isDefaultDecode","ColorSpace_isDefaultDecode","decode","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","AlternateCSClosure","tintFn","defaultColor","Float32Array","tmpBuf","AlternateCS_getRgbItem","AlternateCS_getRgbBuffer","baseNumComps","baseBuf","scaled","tinted","AlternateCS_getOutputLength","AlternateCS_isDefaultDecode","decodeMap","PatternCSClosure","baseCS","IndexedCSClosure","highVal","IndexedCS_getRgbItem","IndexedCS_getRgbBuffer","outputDelta","lookupPos","IndexedCS_getOutputLength","IndexedCS_isDefaultDecode","DeviceGrayCSClosure","DeviceGrayCS_getRgbItem","DeviceGrayCS_getRgbBuffer","DeviceGrayCS_getOutputLength","DeviceGrayCS_isDefaultDecode","DeviceRgbCSClosure","DeviceRgbCS_getRgbItem","DeviceRgbCS_getRgbBuffer","DeviceRgbCS_getOutputLength","DeviceRgbCS_isPassthrough","DeviceRgbCS_isDefaultDecode","DeviceCmykCSClosure","convertToRgb","srcScale","DeviceCmykCS_getRgbItem","DeviceCmykCS_getRgbBuffer","DeviceCmykCS_getOutputLength","DeviceCmykCS_isDefaultDecode","CalGrayCSClosure","XW","YW","ZW","XB","YB","ZB","G","A","AG","pow","L","CalGrayCS_getRgbItem","CalGrayCS_getRgbBuffer","CalGrayCS_getOutputLength","CalGrayCS_isDefaultDecode","CalRGBCSClosure","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","GR","GG","GB","MXA","MYA","MZA","MXB","MYB","MZB","MXC","MYC","MZC","matrixProduct","convertToFlat","sourceWhitePoint","LMS","convertToD65","D65X","D65Y","D65Z","sRGBTransferFunction","color","adjustToRange","decodeL","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","B","C","AGR","BGG","CGB","X","Y","Z","XYZ","XYZ_Black","XYZ_D65","SRGB","sR","sG","sB","round","CalRGBCS_getRgbItem","CalRGBCS_getRgbBuffer","CalRGBCS_getOutputLength","CalRGBCS_isDefaultDecode","LabCSClosure","amin","amax","bmin","bmax","fn_g","high1","low2","high2","maxVal","Ls","as","bs","M","N","LabCS_getRgbItem","LabCS_getRgbBuffer","LabCS_getOutputLength","LabCS_isDefaultDecode","ExpertEncoding","MacExpertEncoding","MacRomanEncoding","StandardEncoding","WinAnsiEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","getEncoding","encodingName","isObject","core","version","__e","exec","bitmap","index","IObject","Parser","Linearization","Lexer","_stream","MAX_LENGTH_TO_CACHE","ParserClosure","lexer","allowStreams","recoveryMode","imageCache","refill","Parser_refill","buf1","getObj","buf2","Parser_shift","tryShift","Parser_tryShift","Parser_getObj","cipherTransform","makeInlineImage","array","makeStream","decryptString","findDefaultInlineStreamEnd","E","I","SPACE","LF","CR","NUL","startPos","state","maybeEIPos","followingBytes","findDCTDecodeInlineStreamEnd","Parser_findDCTDecodeInlineStreamEnd","foundEOI","markerLength","inlineStreamSkipEI","findASCII85DecodeInlineStreamEnd","Parser_findASCII85DecodeInlineStreamEnd","TILDE","GT","findASCIIHexDecodeInlineStreamEnd","Parser_findASCIIHexDecodeInlineStreamEnd","Parser_inlineStreamSkipEI","Parser_makeInlineImage","filter","filterName","filterZero","imageStream","adler32","imageBytes","cacheEntry","createStream","cacheKey","Parser_makeStream","skipToNextLine","nextChar","SCAN_BLOCK_SIZE","ENDSTREAM_SIGNATURE_LENGTH","ENDSTREAM_SIGNATURE","skipped","found","scanBytes","scanLength","Parser_filter","makeFilter","filterArray","paramsArray","Parser_makeFilter","xrefStreamStats","stats","streamTypes","LexerClosure","knownCommands","specialChars","toHexDigit","Lexer_nextChar","currentChar","peekChar","Lexer_peekChar","getNumber","Lexer_getNumber","eNotation","divideBy","baseValue","powerValue","powerValueSign","currentDigit","getString","Lexer_getString","numParen","done","charBuffered","getName","Lexer_getName","previousCh","x2","getHexString","Lexer_getHexString","isFirstHex","secondDigit","Lexer_getObj","comment","knownCommandFound","possibleCommand","Lexer_skipToNextLine","LinearizationCreate","getInt","allowZeroValue","linDict","getHints","hints","hintsLength","parser","obj3","objectNumberFirst","endFirst","numPages","mainXRefEntriesOffset","pageFirst","aFunction","that","split","hide","SRC","TO_STRING","$toString","TPL","inspectSource","safe","isFunction","def","TAG","tag","stat","shared","S","valueOf","PostScriptCompiler","PostScriptEvaluator","isPDFFunction","_ps_parser","PDFFunctionClosure","CONSTRUCT_SAMPLED","CONSTRUCT_INTERPOLATED","CONSTRUCT_STICHED","CONSTRUCT_POSTSCRIPT","getSampleArray","PDFFunction_getSampleArray","outputSize","bps","sampleMul","strBytes","strIdx","PDFFunction_getIR","types","constructSampled","constructInterpolated","constructStiched","constructPostScript","typeNum","typeFn","PDFFunction_fromIR","constructSampledFromIR","constructInterpolatedFromIR","constructStichedFromIR","constructPostScriptFromIR","PDFFunction_parse","parseArray","PDFFunction_parseArray","fnObj","fnArray","jj","PDFFunction_constructSampled","toMultiArray","domain","inputSize","order","encode","samples","PDFFunction_constructSampledFromIR","interpolate","xmin","xmax","ymin","ymax","constructSampledFromIRResult","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","xi","size_i","e0","n0","n1","offset0","offset1","rj","PDFFunction_constructInterpolated","c0","c1","diff","PDFFunction_constructInterpolatedFromIR","constructInterpolatedFromIRResult","PDFFunction_constructStiched","fnRefs","fns","bounds","PDFFunction_constructStichedFromIR","fnsIR","constructStichedFromIRResult","constructStichedFromIRClip","dmin","dmax","rmin","rmax","PDFFunction_constructPostScript","PostScriptLexer","PostScriptParser","PDFFunction_constructPostScriptFromIR","compiled","compile","numOutputs","numInputs","evaluator","cache","MAX_CACHE_SIZE","cache_available","constructPostScriptFromIRResult","cachedValue","output","stack","execute","stackIndex","bound","fnDict","PostScriptStack","PostScriptStackClosure","MAX_STACK_SIZE","initialStack","PostScriptStack_push","pop","PostScriptStack_pop","copy","PostScriptStack_copy","PostScriptStack_index","roll","PostScriptStack_roll","PostScriptEvaluatorClosure","operators","PostScriptEvaluator_execute","counter","operator","atan","cos","LN10","sin","PostScriptCompilerClosure","AstNode","visit","visitor","AstArgument","visitArgument","AstLiteral","visitLiteral","AstBinaryOperation","op","arg1","arg2","visitBinaryOperation","AstMin","arg","visitMin","AstVariable","visitVariable","AstVariableDefinition","variable","visitVariableDefinition","ExpressionBuilderVisitor","parts","literal","operation","definition","buildAddOperation","num1","num2","buildMulOperation","buildSubOperation","buildMinOperation","PostScriptCompiler_compile","instructions","lastRegister","ast1","ast2","tmpVar","splice","instruction","statementBuilder","expr","getGlyphsUnicode","getDingbatsGlyphsUnicode","Constructor","forbiddenField","toObject","toAbsoluteIndex","toLength","aLen","endPos","toIObject","IS_INCLUDES","$this","el","fromIndex","cof","ARG","tryGet","T","callee","is","redefine","ctx","PROTOTYPE","$export","IS_FORCED","F","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","target","expProto","own","exp","U","W","R","propertyIsEnumerable","dPs","enumBugKeys","IE_PROTO","Empty","_createDict","createDict","iframe","lt","gt","iframeDocument","style","display","contentWindow","open","write","Properties","$keys","hiddenKeys","getOwnPropertyNames","ObjectProto","getPrototypeOf","arrayIndexOf","names","SHARED","RangeError","TYPED","VIEW","ABV","ArrayBuffer","DataView","CONSTR","Typed","TypedArrayConstructors","ArithmeticDecoder","ArithmeticDecoderClosure","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","ArithmeticDecoder_byteIn","readBit","ArithmeticDecoder_readBit","contexts","cx_index","cx_mps","qeTableIcx","qeIcx","CFFCompiler","CFFPrivateDict","CFFTopDict","CFFCharset","CFFIndex","CFFStrings","CFFHeader","CFF","CFFParser","CFFStandardStrings","_charsets","_encodings","MAX_SUBR_NESTING","CFFParserClosure","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackDelta","stackFn","stack_div","file","properties","seacAnalysisEnabled","CFFParser_parse","cff","header","parseHeader","nameIndex","parseIndex","topDictIndex","stringIndex","globalSubrIndex","topDictParsed","parseDict","topDict","strings","parseNameIndex","parseStringIndex","parsePrivateDict","isCIDFont","hasName","charStringOffset","getByName","charStringIndex","fontMatrix","fontBBox","ascent","descent","ascentScaled","charset","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","charStrings","localSubrIndex","privateDict","subrsIndex","seacs","widths","CFFParser_parseHeader","bytesLength","major","minor","hdrSize","offSize","CFFParser_parseDict","parseOperand","parseFloatOperand","NaN","parseFloat","operands","entries","CFFParser_parseIndex","cffIndex","offsets","offsetSize","offsetStart","offsetEnd","add","CFFParser_parseNameIndex","CFFParser_parseStringIndex","CFFParser_createDict","Type","cffDict","pair","setByKey","parseCharString","CFFParser_parseCharString","callDepth","stackSize","validationCommand","seac","bias","subrNumber","valid","firstStackClearing","charstring","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","defaultWidth","emptyPrivateDictionary","CFFParser_emptyPrivateDictionary","parentDict","CFFParser_parsePrivateDict","privateOffset","removeByName","privateDictEnd","dictData","subrsOffset","relativeOffset","CFFParser_parseCharsets","cid","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","format","raw","CFFParser_parseEncoding","predefined","readSupplement","supplementsCount","sid","indexOf","baseEncoding","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","CFFParser_parseFDSelect","invalidFirstGID","next","CFFFDSelect","CFFClosure","CFFHeaderClosure","CFFStringsClosure","CFFStrings_get","CFFStrings_add","CFFIndexClosure","objects","CFFIndex_add","CFFIndex_set","CFFIndex_get","CFFDict","CFFDictClosure","tables","keyToNameMap","nameToKeyMap","defaults","opcodes","values","CFFDict_setByKey","valueLength","setByName","CFFDict_setByName","CFFDict_hasName","CFFDict_getByName","CFFDict_removeByName","createTables","CFFDict_createTables","layout","entry","CFFTopDictClosure","CFFPrivateDictClosure","CFFCharsetClosure","CFFEncodingClosure","CFFFDSelectClosure","CFFFDSelect_get","glyphIndex","CFFOffsetTracker","CFFOffsetTrackerClosure","isTracking","CFFOffsetTracker_isTracking","track","CFFOffsetTracker_track","location","CFFOffsetTracker_offset","setEntryLocation","CFFOffsetTracker_setEntryLocation","dataOffset","offset2","offset3","offset4","CFFCompilerClosure","CFFCompiler_compile","CFFCompiler_add","compileHeader","compileNameIndex","subDict","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","CFFCompiler_encodeNumber","parseInt","encodeInteger","encodeFloat","CFFCompiler_encodeFloat","epsilon","nibbles","substr","CFFCompiler_encodeInteger","CFFCompiler_compileHeader","CFFCompiler_compileNameIndex","CFFCompiler_compileTopDicts","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","CFFCompiler_compilePrivateDicts","privateDictTracker","privateDictData","outputLength","subrs","CFFCompiler_compileDict","offsetTracker","CFFCompiler_compileStringIndex","compileGlobalSubrIndex","CFFCompiler_compileGlobalSubrIndex","writeByteArray","CFFCompiler_compileCharStrings","CFFCompiler_compileCharset","compileTypedArray","CFFCompiler_compileEncoding","CFFCompiler_compileFDSelect","CFFCompiler_compileTypedArray","CFFCompiler_compileIndex","lastOffset","ChunkedStreamManager","ChunkedStream","ChunkedStreamClosure","manager","loadedChunks","numChunksLoaded","numChunks","progressiveDataLength","lastSuccessfulEnsureByteChunk","getMissingChunks","ChunkedStream_getMissingChunks","ChunkedStream_getBaseStreams","allChunksLoaded","ChunkedStream_allChunksLoaded","onReceiveData","ChunkedStream_onReceiveData","beginChunk","endChunk","curChunk","onReceiveProgressiveData","ChunkedStream_onReceiveProgressiveData","position","ensureByte","ChunkedStream_ensureByte","ensureRange","ChunkedStream_ensureRange","nextEmptyChunk","ChunkedStream_nextEmptyChunk","hasChunk","ChunkedStream_hasChunk","ChunkedStream_getByte","ChunkedStream_getUint16","ChunkedStream_getInt32","ChunkedStream_getBytes","ChunkedStream_peekByte","ChunkedStream_peekBytes","getByteRange","ChunkedStream_skip","ChunkedStream_reset","ChunkedStream_moveStart","ChunkedStream_makeSubStream","ChunkedStreamSubstream","missingChunks","subStream","ChunkedStreamManagerClosure","pdfNetworkStream","rangeChunkSize","disableAutoFetch","msgHandler","currRequestId","chunksNeededByRequest","requestsByChunk","promisesByRequest","aborted","_loadedStreamCapability","onLoadedStream","ChunkedStreamManager_getLoadedStream","sendRequest","ChunkedStreamManager_sendRequest","rangeReader","getRangeReader","isStreamingSupported","onProgress","bind","readChunk","read","chunkData","requestAllChunks","ChunkedStreamManager_requestAllChunks","_requestChunks","ChunkedStreamManager_requestChunks","requestId","chunksNeeded","chunksToRequest","groupedChunksToRequest","groupChunks","groupedChunk","getStream","ChunkedStreamManager_getStream","requestRange","ChunkedStreamManager_requestRange","getBeginChunk","getEndChunk","requestRanges","ChunkedStreamManager_requestRanges","ranges","ChunkedStreamManager_groupChunks","groupedChunks","prevChunk","ChunkedStreamManager_onProgress","bytesLoaded","total","ChunkedStreamManager_onReceiveData","isProgressive","loadedRequests","requestIds","lastChunk","onError","ChunkedStreamManager_onError","ChunkedStreamManager_getBeginChunk","ChunkedStreamManager_getEndChunk","abort","ChunkedStreamManager_abort","cancelAllRequests","calculateSHA512","calculateSHA384","calculateSHA256","calculateMD5","PDF20","PDF17","CipherTransformFactory","ARCFourCipher","AES256Cipher","AES128Cipher","ARCFourCipherClosure","tmp","keyLength","encryptBlock","ARCFourCipher_encryptBlock","tmp2","decryptBlock","calculateMD5Closure","hash","h0","h3","paddedLength","padded","w","rotateArg","rotate","Word64","Word64Closure","highInteger","lowInteger","high","low","and","Word64_and","word","xor","Word64_xor","or","Word64_or","shiftRight","Word64_shiftRight","places","shiftLeft","Word64_shiftLeft","rotateRight","Word64_rotateRight","not","Word64_not","Word64_add","lowAdd","highAdd","copyTo","Word64_copyTo","assign","Word64_assign","calculateSHA256Closure","rotr","z","maj","sigma","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","h","t1","t2","calculateSHA512Closure","mode384","tmp1","tmp3","calculateSHA384Closure","NullCipher","NullCipherClosure","NullCipher_decryptBlock","AES128CipherClosure","rcon","inv_s","mixCol","mix","expandKey128","cipherKey","t3","t4","decrypt128","u","s0","s1","s2","s3","encrypt128","bufferPosition","decryptBlock2","sourceLength","iv","plain","lastBlock","psLen","AES128Cipher_decryptBlock","encrypt","AES128Cipher_encrypt","cipher","AES256CipherClosure","expandKey256","decrypt256","encrypt256","AES256Cipher_decryptBlock","AES256Cipher_encrypt","PDF17Closure","compareByteArrays","array1","array2","checkOwnerPassword","PDF17_checkOwnerPassword","password","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","PDF17_checkUserPassword","userValidationSalt","userPassword","getOwnerKey","PDF17_getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","PDF17_getUserKey","userKeySalt","userEncryption","PDF20Closure","concatArrays","calculatePDF20Hash","arrayLength","k1","remainder","PDF20_hash","concatBytes","PDF20_checkOwnerPassword","PDF20_checkUserPassword","PDF20_getOwnerKey","PDF20_getUserKey","CipherTransform","CipherTransformClosure","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","CipherTransform_createStream","cipherTransformDecryptStream","CipherTransform_decryptString","CipherTransformFactoryClosure","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","fileId","flags","encryptMetadata","hashDataSize","keyLengthInBytes","encryptionKey","checkData","derivedKey","decodeUserPassword","identityName","algorithm","cfDict","streamCryptoName","handlerDict","fileIdBytes","passwordBytes","decodedPassword","cf","stmf","strf","eff","buildObjectKey","isAes","buildCipherConstructor","cryptFilter","cfm","cipherTransformFactoryBuildCipherConstructorNone","cipherTransformFactoryBuildCipherConstructorV2","cipherTransformFactoryBuildCipherConstructorAESV2","cipherTransformFactoryBuildCipherConstructorAESV3","createCipherTransform","CipherTransformFactory_createCipherTransform","cipherConstructor","buildCipherCipherConstructor","PartialEvaluator","OperatorList","_cmap","_fonts","_unicode","_standard_fonts","_pattern","_parser","_bidi","_colorspace","_glyphlist","_metrics","_murmurhash","_image","PartialEvaluatorClosure","DefaultPartialEvaluatorOptions","maxImageSize","disableFontFace","nativeImageDecoderSupport","ignoreErrors","NativeImageDecoder","resources","canDecode","image","isDecodable","colorSpace","decodePromise","isSupported","NativeImageDecoder_isSupported","NativeImageDecoder_isDecodable","pdfManager","pageIndex","idFactory","fontCache","builtInCMapCache","_ref$options","options","fetchBuiltInCMap","cachedCMap","compressionType","TIME_SLOT_DURATION_MS","CHECK_TIME_EVERY","TimeSlotManager","TimeSlotManager_check","checked","endTime","TimeSlotManager_reset","normalizeBlendMode","deferred","TILING_PATTERN","SHADING_PATTERN","newOptions","newEvaluator","hasBlendModes","PartialEvaluator_hasBlendModes","processed","nodes","node","graphicStates","graphicStatesKeys","graphicState","bm","xObjects","xObjectsKeys","xObject","xResources","buildFormXObject","PartialEvaluator_buildFormXObject","xobj","operatorList","task","initialState","bbox","group","groupOptions","isolated","knockout","groupSubtype","backdrop","addOp","getOperatorList","buildPaintImageXObject","PartialEvaluator_buildPaintImageXObject","inline","imageMask","imgData","bitStrideLength","imgArray","inverseDecode","PDFImage","createMask","cached","softMask","mask","SMALL_IMAGE_DIMENSIONS","imageObj","createImageData","createObjId","addDependency","nativeImageDecoder","buildImage","handleSMask","PartialEvaluator_handleSmask","stateManager","smaskContent","smaskOptions","subtype","transferObj","transferFn","transferMap","handleTilingType","pattern","patternDict","tilingOpList","resourcesArray","patternResources","getTilingPatternIR","argsArray","tilingPatternIR","addDependencies","dependencies","featureId","handleSetFont","PartialEvaluator_handleSetFont","fontArgs","fontRef","fontName","loadFont","translated","isType3Font","loadType3Data","TranslatedFont","ErrorFont","loadedName","handleText","PartialEvaluator_handleText","chars","_this5","glyphs","charsToGlyphs","isAddToPathSet","textRenderingMode","buildPath","fontChar","renderer","hasBuiltPath","path","getPathJs","glyph","accent","PartialEvaluator_setGState","gState","_this6","gStateObj","gStateKeys","_loop","PartialEvaluator_loadFont","_this7","errorFont","fontRes","fontCapability","preEvaluatedFont","preEvaluateFont","descriptor","fontRefIsRef","fontID","fontAliases","aliasFontRef","Font","getFontID","docId","translatedPromise","translateFont","translatedFont","fontType","xrefFontStats","fontTypes","fontFile3","getFontType","PartialEvaluator_buildPath","lastIndex","opArgs","handleColorN","PartialEvaluator_handleColorN","patterns","patternName","shading","Pattern","parseShading","_this8","_ref2$initialState","EvalState","xobjs","StateManager","preprocessor","EvaluatorPreprocessor","timeSlotManager","closePendingRestoreOPS","argument","savedStatesDepth","promiseBody","ensureNotTerminated","stop","fontSize","combinedGlyphs","arrLength","arrItem","fillColorSpace","strokeColorSpace","shadingRes","patternIR","dictName","extGState","getTextContent","_ref3","_this9","_ref3$stateManager","_ref3$normalizeWhites","normalizeWhitespace","_ref3$combineTextItem","combineTextItems","sink","_ref3$seenStyles","seenStyles","TextState","WhitespaceRegexp","textContent","styles","textContentItem","vertical","lastAdvanceWidth","lastAdvanceHeight","textAdvanceScale","spaceWidth","fakeSpaceMin","Infinity","fakeMultiSpaceMin","fakeMultiSpaceMax","textRunBreakAllowed","SPACE_FACTOR","MULTI_SPACE_FACTOR","MULTI_SPACE_FACTOR_MAX","skipEmptyXObjs","textState","ensureTextContentItem","fontFamily","fallbackName","tsm","textHScale","textRise","glyphHeight","trm","ctm","textMatrix","textLineMatrix","scaleLineX","scaleCtmX","isMonospace","replaceWhitespace","runBidiTransform","textChunk","bidiResult","bidi","dir","buildTextContentItem","glyphWidth","vmetric","glyphUnicode","unicode","NormalizedUnicodes","getNormalizedUnicodes","reverseIfRtl","charSpacing","wordSpacing","addFakeSpaces","tx","ty","w0","translateTextMatrix","fakeSpaces","flushTextContentItem","enqueueChunk","advance","fontNameArg","fontSizeArg","isSameTextLine","breakTextRun","currentState","xObjStateManager","gStateFont","_ret2","leading","translateTextLineMatrix","carriageReturn","calcTextLineMatrixAdvance","setTextLineMatrix","sinkWrapper","enqueueInvoked","extractDataStructures","PartialEvaluator_extractDataStructures","baseDict","_this10","toUnicode","toUnicodePromise","readToUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","readCidToGidMap","differences","baseEncodingName","diffEncoding","defaultEncoding","isSymbolicFont","FontFlags","Symbolic","isNonsymbolicFont","Nonsymbolic","test","hasEncoding","buildToUnicode","PartialEvaluator_buildToUnicode","hasIncludedToUnicodeMap","charcode","glyphName","glyphsUnicodeMap","getUnicodeForGlyph","ToUnicodeMap","cMap","builtInCMap","IdentityCMap","ucs2CMapName","CMapFactory","useCMap","ucs2CMap","ucs2","IdentityToUnicodeMap","firstChar","lastChar","PartialEvaluator_readToUnicode","cmapObj","cmap","getMap","charCode","token","PartialEvaluator_readCidToGidMap","cidToGidStream","glyphsData","glyphID","extractWidths","PartialEvaluator_extractWidths","glyphsWidths","glyphsVMetrics","defaultVMetrics","vmetrics","baseFontName","metrics","getBaseFontMetrics","buildCharCodeToWidth","firstWidth","FixedPitch","isSerifFont","PartialEvaluator_isSerifFont","fontNameWoStyle","getSerifFonts","search","PartialEvaluator_getBaseFontMetrics","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","glyphWidths","PartialEvaluator_bulildCharCodeToWidth","widthsByGlyphName","PartialEvaluator_preEvaluateFont","uint8array","df","MurmurHash3_64","update","diffLength","diffBuf","diffEntry","hexdigest","PartialEvaluator_translateFont","_this11","maxCharIndex","Serif","getSymbolsFonts","baseFont","fontNameStr","baseFontStr","fontFile","length1","length2","length3","wideChars","fixedPitch","xHeight","capHeight","italicAngle","cMapPromise","cidEncoding","TranslatedFontClosure","type3Loaded","sent","fontData","exportData","parentOperatorList","type3Options","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcKeys","charProcOperatorList","_loop2","glyphStream","OperatorListClosure","CHUNK_SIZE","CHUNK_SIZE_ABOUT","getTransfers","queue","intent","messageHandler","_totalLength","totalLength","flush","addOpList","opList","QueueOptimizer","optimize","StateManagerClosure","stateStack","old","prev","TextStateClosure","TextState_setTextMatrix","TextState_translateTextMatrix","TextState_calcTextLineMatrixAdvance","txDiff","tyDiff","denominator","calcRenderMatrix","TextState_calcRendeMatrix","TextState_carriageReturn","TextState_clone","EvalStateClosure","CanvasExtraState_clone","EvaluatorPreprocessorClosure","getOPMap","numArgs","variableArgs","opMap","nonProcessedArgs","EvaluatorPreprocessor_read","opSpec","argsLength","preprocessCommand","EvaluatorPreprocessor_preprocessCommand","QueueOptimizerClosure","addState","parentState","handlePaintSolidColorImageMask","iFirstSave","iFirstPIMXO","InitialState","foundInlineImageGroup","context","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","curr","iCurr","iFirstTransform","iFirstPIIXO","maxX","maxLineHeight","currentX","currentY","imgWidth","imgHeight","rowSize","kind","foundImageMaskGroup","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","isSameImage","iTransform","transformArgs","firstPIMXOArg0","firstTransformArg0","firstTransformArg3","iPIMXO","positions","images","maskParams","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iFirstPIXO","iFirstRestore","firstPIXOArg0","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetFont","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","firstSetFontArg0","firstSetFontArg1","iFirst","iEndText","QueueOptimizer_optimize","_arithmetic_decoder","JpxError","JpxErrorClosure","JpxImageClosure","SubbandsGainLog2","failOnCorruptedImage","JpxImage_parse","head","parseCodestream","headerSize","lbox","tbox","jumpDataLength","method","colorspace","headerType","parseImageProperties","JpxImage_parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","JpxImage_parseCodestream","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","components","component","precision","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticalyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","transformComponents","x0","x1","y0","y1","numXtiles","numYtiles","tx0","ty0","tx1","ty1","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","Number","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","bufferSize","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","inclusionTree","zeroBitPlanesTree","InclusionTree","TagTree","nextLevel","included","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","currentCodingpassType","BitModel","dataItem","encodedData","decoder","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","gainLog2","calculate","resultImages","transformedTiles","tile0","y2","fourComponents","y0items","y1items","y2items","y3items","component0","qcdOrQcc","TagTreeClosure","levelsLength","levels","TagTree_reset","currentLevel","TagTree_incrementValue","TagTree_nextLevel","InclusionTreeClosure","defaultValue","InclusionTree_reset","stopValue","propagateValues","InclusionTree_incrementValue","InclusionTree_propagateValues","levelIndex","currentValue","InclusionTree_nextLevel","BitModelClosure","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","BitModel_setDecoder","BitModel_reset","Int8Array","setNeighborsSignificance","BitModel_setNeighborsSignificance","column","BitModel_runSignificancePropagationPass","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i0","i1","contextLabel","decision","decodeSignBit","BitModel_decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","BitModel_runMagnitudeRefinementPass","width4","index0","indexNext","significance","bit","BitModel_runCleanupPass","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","BitModel_checkSegmentationSymbol","symbol","Transform","TransformClosure","transformCalculate","u0","v0","ll","iterate","extend","j1","j2","Transform_iterate","hl_lh_hh","llWidth","llHeight","llItems","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","IrreversibleTransformClosure","irreversibleTransformFilter","current","alpha","beta","K","K_","ReversibleTransformClosure","reversibleTransformFilter","FileSpec","XRef","ObjectLoader","Catalog","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_i","_s","_chunked_stream","_crypto","CatalogClosure","pageFactory","catDict","getCatalogObj","pageKidsCountCache","pagePromises","metadata","streamRef","toplevelPagesDict","pagesObj","documentOutline","readDocumentOutline","Catalog_readDocumentOutline","parent","blackColor","outlineDict","parseDestDictionary","destDict","resultObj","docBaseUrl","title","rgbColor","outlineItem","unsafeUrl","newWindow","bold","italic","destinations","fetchDestination","dests","nameTreeRef","nameDictionaryRef","catalogForEach","nameTree","NameTree","getAll","getDestination","Catalog_getDestination","destinationId","pageLabels","readPageLabels","Catalog_readPageLabels","prefix","numberTree","NumberTree","nums","currentLabel","currentIndex","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","charBuf","pageMode","attachments","fs","serializable","appendIfJavaScriptDict","jsDict","js","openactionDict","actionType","cleanup","Catalog_cleanup","promises","translatedFonts","getPage","Catalog_getPage","getPageDict","createPage","Catalog_getPageDict","nodesToVisit","currentPageIndex","currentNode","fetchAsync","kids","last","getPageIndex","Catalog_getPageIndex","pageRef","pagesBeforeRef","kidRef","parentRef","kidPromises","kid","Catalog_parseDestDictionary","addDefaultProtocolToUrl","tryConvertUrlEncoding","urlDict","remoteDest","JSON","stringify","namedAction","jsAction","URL_OPEN_METHODS","regex","RegExp","jsUrl","href","XRefClosure","xrefstms","setStartXRef","XRef_setStartXRef","startXRef","startXRefQueue","XRef_parse","trailerDict","readXRef","indexObjects","trailer","ids","processXRefTable","XRef_processXRefTable","tableState","entryNum","streamPos","parserBuf1","parserBuf2","readXRefTable","XRef_readXRefTable","firstEntryNum","entryCount","free","uncompressed","processXRefStream","XRef_processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","XRef_readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","XRef_indexObjects","TAB","PERCENT","LT","readToken","skipUntil","objRegExp","trailerBytes","startxrefBytes","endobjBytes","xrefBytes","trailers","xrefStms","contentLength","content","xrefTagOffset","XRef_readXRef","startXRefParsedCache","getEntry","XRef_getEntry","xrefEntry","XRef_fetchIfRef","XRef_fetch","fetchUncompressed","fetchCompressed","XRef_fetchUncompressed","substring","XRef_fetchCompressed","tableOffset","XRef_fetchIfRefAsync","XRef_fetchAsync","streamManager","tryFetch","XRef_getCatalogObj","NameOrNumberTree","NameOrNumberTreeClosure","NameOrNumberTree_getAll","_type","NameOrNumberTree_get","kidsOrEntries","loopCount","MAX_LEVELS","limits","currentKey","NameTreeClosure","NumberTreeClosure","FileSpecClosure","description","contentAvailable","pickPlatformItem","filename","_filename","contentRef","fileObj","mayHaveChildren","addChildren","dictKeys","rawValue","_ii","refSet","load","_walk","nodesToRevisit","pendingRequests","foundMissingData","_i2","_ii2","getSupplementalGlyphMapForArialBlack","getGlyphMapForStandardFonts","getNonStdFontMap","getSpecialPUASymbols","mapSpecialUnicodeValues","nameLen","hexStr","toUpperCase","UnicodeRanges","getUnicodeRangeFor","isRTLRangeFor","charsLength","WorkerMessageHandler","WorkerTask","_pdf_manager","WorkerTaskClosure","terminated","_capability","finished","finish","terminate","PDFWorkerStream","PDFWorkerStreamClosure","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","getFullReader","PDFWorkerStreamReader","reader","PDFWorkerStreamRangeReader","readers","_isRangeSupported","_isStreamingSupported","readableStream","_reader","getReader","_headersReady","isRangeSupported","headersReady","setup","port","testMessageProcessed","wphSetupTest","supportTransfers","xhr","XMLHttpRequest","responseExists","responseType","supportTypedArray","wphConfigure","wphSetupDoc","createDocumentHandler","docParams","cancelXHRs","WorkerTasks","workerHandlerName","startWorkerTask","finishWorkerTask","loadDocument","loadDocumentCapability","parseSuccess","numPagesPromise","ensureDoc","fingerprintPromise","encryptedPromise","ensureXRef","onDocReady","results","doc","fingerprint","encrypted","parseFailure","getPdfManager","evaluatorOptions","pdfManagerCapability","LocalPdfManager","pdfStream","cachedChunks","fullRequest","NetworkPdfManager","sendProgressiveData","flushChunks","pdfFile","readPromise","setupDoc","onSuccess","pdfInfo","onFailure","updatePassword","pdfManagerReady","loadFailure","requestLoadedStream","disableCreateObjectURL","newPdfManager","wphSetupGetPage","page","rotatePromise","ensure","refPromise","userUnitPromise","viewPromise","userUnit","view","wphSetupGetPageIndex","catalog","pdfDocument","wphSetupGetDestinations","ensureCatalog","wphSetupGetDestination","wphSetupGetPageLabels","wphSetupGetPageMode","wphSetupGetAttachments","wphSetupGetJavaScript","wphSetupGetOutline","wphSetupGetMetadata","wphSetupGetData","wphSetupGetStats","wphSetupGetAnnotations","wphSetupRenderPage","pageNum","renderInteractiveForms","minimumStackMessage","wrappedException","wphExtractText","extractTextContent","wphCleanup","wphTerminate","waitOn","wphReady","initializeFromPort","isMessagePort","maybePort","_typeof2","_require","IsPropertyKey","typeIsObject","createDataProperty","createArrayFromList","elements","ArrayBufferCopy","CreateIterResultObject","IsFiniteNonNegativeNumber","Call","V","InvokeOrNoop","PromiseInvokeOrNoop","returnValueE","PromiseInvokeOrPerformFallback","argsF","methodE","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","ValidateAndNormalizeQueuingStrategy","rethrowAssertionErrorRejection","AssertionError","setTimeout","_createClass","defineProperties","props","protoProps","staticProps","_classCallCheck","instance","_require2","_require3","DequeueValue","EnqueueValueWithSize","PeekQueueValue","ResetQueue","WritableStream","underlyingSink","_ref$highWaterMark","_state","_storedError","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","WritableStreamDefaultController","__startSteps","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","WritableStreamAbort","getWriter","AcquireWritableStreamDefaultWriter","WritableStreamDefaultControllerError","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamCloseQueuedOrInFlight","WritableStreamDefaultWriter","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","_started","__errorSteps","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","__abortSteps","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","defaultWriterClosedPromiseReject","_closedPromise","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","_readyPromise","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","releaseLock","WritableStreamDefaultWriterGetDesiredSize","closeRequest","WritableStreamDefaultControllerClose","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","_controlledWritableStream","_underlyingSink","_queue","_queueTotalSize","normalizedStrategy","_strategySize","_strategyHWM","WritableStreamDefaultControllerGetBackpressure","IsWritableStreamDefaultController","startResult","WritableStreamDefaultControllerAdvanceQueueIfNeeded","strategySize","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","sinkWritePromise","_closedPromise_resolve","_closedPromise_reject","_readyPromise_resolve","_readyPromise_reject","container","_require4","_require5","underlyingSource","_disturbed","_readableStreamController","typeString","ReadableByteStreamController","ReadableStreamDefaultController","IsReadableStream","IsReadableStreamLocked","ReadableStreamCancel","AcquireReadableStreamDefaultReader","AcquireReadableStreamBYOBReader","pipeThrough","readable","pipeTo","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","_ref4","preventClose","preventAbort","preventCancel","Boolean","shuttingDown","currentWrite","pipeLoop","ReadableStreamDefaultReaderRead","_ref5","isOrBecomesErrored","shutdownWithAction","shutdown","isOrBecomesClosed","destClosed","waitForWritesToFinish","oldCurrentWrite","originalIsError","originalError","doTheRest","newError","isError","ReadableStreamReaderGenericRelease","tee","branches","ReadableStreamTee","IsReadableStreamDisturbed","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamBYOBReader","ReadableStreamDefaultReader","cloneForBranch2","teeState","closedOrErrored","canceled1","canceled2","reason1","reason2","create_ReadableStreamTeePullFunction","_teeState","_cloneForBranch2","cancel1","create_ReadableStreamTeeBranch1CancelFunction","cancel2","create_ReadableStreamTeeBranch2CancelFunction","underlyingSource1","branch1Stream","underlyingSource2","branch2Stream","_branch1","_branch2","branch1","branch2","value1","value2","compositeReason","cancelResult","ReadableStreamAddReadIntoRequest","IsReadableStreamBYOBReader","readIntoRequest","_readIntoRequests","ReadableStreamAddReadRequest","IsReadableStreamDefaultReader","readRequest","_readRequests","ReadableStreamClose","sourceCancelPromise","__cancelSteps","defaultReaderClosedPromiseResolve","ReadableStreamError","defaultReaderClosedPromiseReject","ReadableStreamFulfillReadIntoRequest","ReadableStreamFulfillReadRequest","ReadableStreamGetNumReadIntoRequests","ReadableStreamGetNumReadRequests","ReadableStreamHasBYOBReader","ReadableStreamHasDefaultReader","ReadableStreamReaderGenericInitialize","defaultReaderBrandCheckException","_ownerReadableStream","readerLockException","ReadableStreamReaderGenericCancel","IsReadableByteStreamController","byobReaderBrandCheckException","isView","ReadableStreamBYOBReaderRead","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","defaultReaderClosedPromiseResetToRejected","ReadableByteStreamControllerPullInto","__pullSteps","_controlledReadableStream","_underlyingSource","_closeRequested","_pullAgain","_pulling","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerErrorIfNeeded","IsReadableStreamDefaultController","defaultControllerBrandCheckException","pendingPromise","shouldPull","ReadableStreamDefaultControllerShouldCallPull","pullPromise","ReadableStreamBYOBRequest","_associatedReadableByteStreamController","_view","respond","bytesWritten","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","ReadableByteStreamControllerRespond","respondWithNewView","ReadableByteStreamControllerRespondWithNewView","underlyingByteSource","_underlyingByteSource","ReadableByteStreamControllerClearPendingPullIntos","autoAllocateChunkSize","isInteger","_autoAllocateChunkSize","_pendingPullIntos","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerError","byteStreamControllerBrandCheckException","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","firstDescriptor","bytesFilled","ReadableByteStreamControllerHandleQueueDrain","byteOffset","viewE","bufferE","pullIntoDescriptor","elementSize","ctor","readerType","_byobRequest","ReadableByteStreamControllerGetDesiredSize","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","BYTES_PER_ELEMENT","emptyView","ReadableByteStreamControllerRespondInClosedState","ReadableByteStreamControllerRespondInReadableState","remainderSize","ReadableByteStreamControllerRespondInternal","firstPendingPullInto","transferredBuffer","transferredView","transformStream","writableStream","TransformStream","TransformStreamCloseReadable","_errored","_readableClosed","TransformStreamCloseReadableInternal","TransformStreamEnqueueToReadable","_readableController","TransformStreamErrorIfNeeded","maybeBackpressure","TransformStreamSetBackpressure","TransformStreamError","TransformStreamErrorInternal","_writableDone","_writableController","TransformStreamReadableReadyPromise","_backpressureChangePromise","_backpressureChangePromise_resolve","TransformStreamDefaultTransform","transformStreamController","_controlledTransformStream","TransformStreamTransform","_transforming","transformer","_transformer","_transformStreamController","transformPromise","IsTransformStreamDefaultController","IsTransformStream","TransformStreamSink","startPromise","_transformStream","_startPromise","flushPromise","TransformStreamSource","TransformStreamDefaultController","readableController","readableStrategy","writableStrategy","startPromise_resolve","_readable","_writable","UNSCOPABLES","ArrayProto","copyWithin","to","from","inc","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","SPECIES","original","speciesConstructor","documentElement","Iterators","ITERATOR","setToStringTag","IteratorPrototype","NAME","LIBRARY","$iterCreate","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","DEFAULT","IS_SET","FORCED","getMethod","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","methods","SAFE_CLOSING","riter","skipClosing","iter","pIE","gOPD","getOwnPropertyDescriptor","DESCRIPTORS","KEY","D","fails","$typed","$buffer","anInstance","propertyDesc","redefineAll","toIndex","classof","isArrayIter","gOPN","getIterFn","wks","createArrayMethod","createArrayIncludes","ArrayIterators","$iterDetect","setSpecies","arrayFill","arrayCopyWithin","$DP","$GOPD","ARRAY_BUFFER","SHARED_BUFFER","$ArrayBuffer","$DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayFind","arrayFindIndex","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","lastIndexOf","arrayReduce","reduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","arraySlice","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","TYPED_ARRAY","WRONG_LENGTH","$map","allocate","LITTLE_ENDIAN","FORCED_SET","toOffset","BYTES","validate","speciesFromList","list","fromList","addGetter","internal","$from","mapfn","mapping","iterFn","step","$of","of","TO_LOCALE_BUG","$toLocaleString","every","find","predicate","findIndex","searchElement","includes","separator","reverse","middle","some","comparefn","$begin","$slice","$set","arrayLike","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","wrapper","CLAMPED","GETTER","SETTER","TypedArray","TAC","TypedArrayPrototype","setter","addElement","$offset","$length","klass","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","DATA_VIEW","WRONG_INDEX","BaseBuffer","LN2","BUFFER","BYTE_LENGTH","BYTE_OFFSET","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","packI8","packI16","packI32","packF64","packF32","numIndex","intIndex","_b","pack","conversion","getInt8","getUint8","getInt16","getUint32","getFloat32","getFloat64","setInt8","setUint8","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","ArrayBufferProto","$setInt8","getIteratorMethod","addToUnscopables","iterated","_t","_k","Arguments","init","AnnotationFactory","AnnotationBorderStyle","Annotation","_obj","_evaluator","AnnotationFactory_create","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","WidgetAnnotation","PopupAnnotation","LineAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","FileAttachmentAnnotation","AnnotationClosure","getTransformMatrix","minX","minY","maxY","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","annotationFlags","borderStyle","hasAppearance","appearance","_hasFlag","Annotation_hasFlag","flag","_isViewable","Annotation_isViewable","_isPrintable","AnnotationFlag_isPrintable","viewable","printable","Annotation_setFlags","hasFlag","Annotation_setRectangle","Annotation_setColor","Annotation_setBorderStyle","dictType","setWidth","setStyle","setDashArray","setHorizontalCornerRadius","setVerticalCornerRadius","Annotation_setAppearance","appearanceStates","normalAppearanceState","_preparePopup","Annotation_preparePopup","hasPopup","contents","loadResources","Annotation_loadResources","objectLoader","Annotation_getOperatorList","renderForms","appearanceDict","resourcesPromise","AnnotationBorderStyleClosure","dashArray","horizontalCornerRadius","verticalCornerRadius","AnnotationBorderStyle_setWidth","AnnotationBorderStyle_setStyle","AnnotationBorderStyle_setDashArray","isValid","allZeros","element","validNumber","AnnotationBorderStyle_setHorizontalCornerRadius","radius","AnnotationBorderStyle_setVerticalCornerRadius","WidgetAnnotationClosure","annotationType","fieldName","_constructFieldName","fieldValue","alternativeText","defaultAppearance","fieldResources","fieldFlags","readOnly","hasFieldFlag","WidgetAnnotation_constructFieldName","loopDict","WidgetAnnotation_hasFieldFlag","TextWidgetAnnotationClosure","alignment","textAlignment","maximumLength","multiLine","comb","TextWidgetAnnotation_getOperatorList","ButtonWidgetAnnotationClosure","checkBox","radioButton","buttonValue","fieldParent","fieldParentValue","ButtonWidgetAnnotation_getOperatorList","ChoiceWidgetAnnotationClosure","option","isOptionArray","exportValue","displayValue","combo","multiSelect","ChoiceWidgetAnnotation_getOperatorList","TextAnnotationClosure","DEFAULT_ICON_SIZE","LinkAnnotationClosure","PopupAnnotationClosure","parentItem","parentSubtype","parentType","parentId","parentFlags","LineAnnotationClosure","lineCoordinates","HighlightAnnotationClosure","UnderlineAnnotationClosure","SquigglyAnnotationClosure","StrikeOutAnnotationClosure","FileAttachmentAnnotationClosure","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","temp","createBidiText","isLTR","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","CMap","BUILT_IN_CMAPS","CMapClosure","codespaceRanges","numCodespaceRanges","addCodespaceRange","mapCidRange","dstLow","mapBfRange","lastByte","mapBfRangeToArray","mapOne","dst","contains","charCodeOf","readCharCode","codespaceRangesLen","codespaceRange","isIdentityCMap","IdentityCMapClosure","BinaryCMapReader","BinaryCMapReaderClosure","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","readByte","readNumber","readSigned","readHex","readHexNumber","sp","readHexSigned","readString","processBinaryCMap","char","sequence","dataSize","ucs2DataSize","subitemsCount","CMapFactoryClosure","strToInt","expectString","expectInt","parseBfChar","parseBfRange","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","previous","embededUseCMap","objLoop","extendCMap","createBuiltInCMap","newCMap","useCodespaceRanges","cMapData","parsedCMap","PDFDocument","Page","_annotation","PageClosure","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","isAnnotationRenderable","annotation","pageDict","uniquePrefix","idCounters","getPageProp","Page_getPageProp","getInheritedPageProp","Page_getInheritedPageProp","valueArray","MAX_LOOP_COUNT","mediaBox","cropBox","intersection","getContentStream","Page_getContentStream","Page_loadResources","contentStreamPromise","partialEvaluator","dataPromises","pageListPromise","contentStream","transparency","annotationsPromise","pageOpList","annotations","opListPromises","opLists","_ref6","_ref7","_ref8","getAnnotationsData","Page_getAnnotationsData","annotationsData","annotationRefs","annotationFactory","annotationRef","PDFDocumentClosure","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","needle","backwards","DocumentInfoValidators","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModDate","Trapped","PDFDocument_parse","pdfFormatVersion","acroForm","xfa","fields","linearization","checkHeader","PDFDocument_checkHeader","MAX_VERSION_LENGTH","parseStartXRef","PDFDocument_parseStartXRef","PDFDocument_setup","documentInfo","docInfo","PDFFormatVersion","IsAcroFormPresent","IsXFAPresent","infoDict","validEntries","fileID","idArray","hex","PDFDocument_getPage","PDFDocument_cleanup","FontRendererFactory","_cff_parser","FontRendererFactoryClosure","getLong","getUshort","parseCmap","segCount","idDelta","idOffset","groups","parseCff","gsubrs","parseGlyfTable","glyf","loca","isGlyphLocationsLong","itemSize","itemDecode","fontItemDecodeLong","fontItemDecode","startOffset","endOffset","lookupCmap","glyphId","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","scaleX","scaleY","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","points","repeat","startPoint","endPoint","contour","compileCharString","stems","bezierCurveTo","stackClean","xb","yb","y3","subrCode","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","noop","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","Type2Compiled","cffInfo","FontRendererFactory_create","indexToLocFormat","unitsPerEm","numTables","ProblematicCharRanges","PRIVATE_USE_OFFSET_END","PRIVATE_USE_OFFSET_START","SEAC_ANALYSIS_ENABLED","_font_renderer","_type1_parser","SKIP_PRIVATE_USE_RANGE_F000_TO_F01F","PDF_GLYPH_SPACE_UNITS","Script","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","adjustWidths","adjustToUnicode","builtInEncoding","amend","recoverGlyphName","Glyph","GlyphClosure","operatorListId","isInFont","matchesForCache","ToUnicodeMapClosure","IdentityToUnicodeMapClosure","OpenTypeFileBuilder","OpenTypeFileBuilderClosure","writeInt16","writeInt32","writeData","sfnt","getSearchParams","OpenTypeFileBuilder_getSearchParams","entriesCount","entrySize","maxPower2","searchRange","rangeShift","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","toArray","OpenTypeFileBuilder_toArray","tablesNames","tableName","tableOffsets","searchParams","checksum","quad","addTable","OpenTypeFileBuilder_addTable","FontClosure","sizes","missingFile","glyphCache","toFontChar","fallbackToSystemFont","isTrueTypeFile","isOpenTypeFile","isType1File","mimetype","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","loading","ID","Font_getFontID","int16","signedInt16","int32","string16","safeString16","buildToFontChar","isProblematicUnicodeLocation","adjustMapping","charCodeToGlyphId","missingGlyphs","isSymbolic","isIdentityUnicode","newMap","usedFontCharCodes","nextAvailableFontCharCode","originalCharCode","fontCharCode","hasUnicodeValue","getRanges","numGlyphs","fontGetRangesSort","codeIndices","createCmapTable","bmpLength","trailingRangesCount","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","contiguous","startCode","format314","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","charstrings","override","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","typoAscent","typoDescent","winAscent","winDescent","createPostTable","angle","createNameTable","stringsUnicode","strBufUnicode","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","Font_exportData","Font_fallbackToSystemFont","nonStdFontMap","isStandardFont","remeasure","GlyphMapForStandardFonts","SupplementalGlyphMapForArialBlack","unicodeCharCode","Font_checkAndRepair","readTableEntry","previousPosition","readOpenTypeHeader","ttf","entrySelector","readCmapTable","platformId","encodingId","mappings","hasShortCmap","segment","potentialTable","canBreak","useTable","segIndex","segments","offsetsCount","rangeOffset","offsetIndex","firstCode","sanitizeMetrics","numOfMetrics","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","hintsValid","contoursCount","flagsCount","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xyLength","glyphDataLength","sanitizeHead","locaLength","numGlyphsPlusOne","sanitizeGlyphLocations","dupFirstEntry","itemEncode","fontItemEncodeLong","fontItemEncode","locaData","locaDataSize","oldGlyfData","oldGlyfDataLength","newGlyfData","writeOffset","missingGlyphData","locaCount","simpleGlyph","firstEntryLength","readPostScriptTable","post","maxpNumGlyphs","glyphNames","glyphNameIndexes","customNames","stringLength","readNameTable","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","records","NAME_RECORD_LENGTH","platform","language","record","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","functionsUsed","functionsStackDeltas","functionsDefined","stackTop","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","VALID_TABLES","cffFile","isTrueType","maxZones","metricsOverride","hasGlyph","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","standardGlyphName","unicodeOrCharCode","newMapping","compiler","namePrototype","builder","tableTag","Font_convert","getGlyphMapping","getCharCodes","charCodes","createCharCode","getCharset","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","tan","fontFieldsHmtx","cffWidths","hmtx","_shadowWidth","possibleSpaceReplacements","charToGlyph","Font_charToGlyph","widthCode","Font_charsToGlyphs","charsCache","charsCacheKey","ErrorFontClosure","ErrorFont_charsToGlyphs","ErrorFont_exportData","type1FontGlyphMapping","Type1FontClosure","findBlock","streamBytes","signature","startIndex","streamBytesLength","signatureLength","getHeaderBlock","suggestedLength","EEXEC_SIGNATURE","streamStartPos","headerBytes","headerBytesLength","block","SCAN_BLOCK_LENGTH","actualLength","getEexecBlock","eexecBytes","PFB_HEADER_SIZE","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","Type1Parser","extractFontHeader","eexecBlock","eexecBlockParser","extractFontProgram","type2Charstrings","getType2Charstrings","getType2Subrs","wrap","getSeacs","Type1Font_getCharset","Type1Font_getGlyphMapping","Type1Font_getSeacs","Type1Font_getType2Charstrings","type1Charstrings","Type1Font_getType2Subrs","type1Subrs","type2Subrs","Type1Font_wrap","charsetArray","charStringsIndex","field","privateData","subrIndex","CFFFontClosure","CFFFont_getCharset","CFFFont_getGlyphMapping","charsets","checkSeacSupport","navigator","userAgent","checkChromeWindows","PDFImageClosure","handleImageData","nativeDecoder","decodeAndClamp","addend","coefficient","resizeImageMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","maskDict","PDFImage_buildImage","imagePromise","smaskPromise","maskPromise","imageData","smaskData","maskData","PDFImage_createMask","imageIsFromDecodeStream","computedLength","haveFullData","decodeBuffer","PDFImage_decodeBuffer","getComponents","PDFImage_getComponents","bufferPos","rowComps","buf","loop1End","loop2End","remainingBits","fillOpacity","PDFImage_fillOpacity","rgbaBuf","alphaBuf","sw","sh","fillGrayBuffer","opacity","imageOffset","maskOffset","undoPreblend","PDFImage_undoPreblend","matteRgb","matteR","matteG","matteB","PDFImage_createImageData","forceRGBA","getImageBytes","newArray","maybeUndoPreblend","PDFImage_fillGrayBuffer","PDFImage_getImageBytes","Jbig2Error","Jbig2ErrorClosure","Jbig2ImageClosure","ContextCache","getContexts","DecodingContext","contextCache","decodeInteger","procedure","decodeIAID","SegmentTypes","CodingTemplates","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","decodingContext","pixel","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","useskip","template","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","j0","sltp","decodeRefinement","referenceBitmap","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","newSymbols","currentHeight","symbolCodeLength","deltaHeight","currentWidth","deltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","exportedSymbols","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","stripT","firstS","deltaT","deltaFirstS","currentS","currentT","applyRefinement","symbolBitmap","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","symbolRow","maxWidth","deltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","collectiveBitmap","patternBitmap","xMin","xMax","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","randomAccess","processSegment","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2","numberOfPages","parseJbig2Chunks","SimpleSegmentVisitor","onPageInformation","SimpleSegmentVisitor_onPageInformation","currentPageInfo","drawBitmap","SimpleSegmentVisitor_drawBitmap","regionInfo","mask0","onImmediateGenericRegion","SimpleSegmentVisitor_onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","SimpleSegmentVisitor_onImmediateLosslessGenericRegion","onSymbolDictionary","SimpleSegmentVisitor_onSymbolDictionary","currentSegment","referredSegments","onImmediateTextRegion","SimpleSegmentVisitor_onImmediateTextRegion","onImmediateLosslessTextRegion","SimpleSegmentVisitor_onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","Jbig2Image_parseChunks","JpegError","JpegErrorClosure","JpegImageClosure","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","children","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","resetInterval","spectralStart","spectralEnd","successivePrev","successive","mcusPerLine","progressive","bitsData","bitsCount","nextByte","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","huffmanTableDC","blockData","pred","rs","huffmanTableAC","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","decodeMcu","mcu","mcuRow","mcuCol","blockRow","blockCol","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","Int16Array","currentPos","peekUint16","maxPos","newPos","currentMarker","newMarker","readDataBlock","prepareComponents","samplesPerLine","maxH","scanLines","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","quantizationTables","huffmanTablesAC","huffmanTablesDC","appData","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","componentIds","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","numComponents","_getLinearizedBlockData","getLinearizedBlockData","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","_isColorConversionNeeded","_convertYccToRgb","convertYccToRgb","Cb","Cr","_convertYcckToRgb","convertYcckToRgb","_convertYcckToCmyk","convertYcckToCmyk","_convertCmykToRgb","convertCmykToRgb","forceRGBoutput","rgbData","grayColor","MurmurHash3_64Closure","seed","MASK_HIGH","MASK_LOW","SEED","MurmurHash3_64_update","blockCounts","tailLength","dataUint32","k2","C1","C2","C1_LOW","C2_LOW","MurmurHash3_64_hexdigest","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","PatternClosure","getPattern","Pattern_getPattern","Pattern_parseShading","Shadings","RadialAxial","Mesh","Dummy","SMALL_NUMBER","RadialAxialClosure","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","colorStops","ratio","cssColor","background","RadialAxial_getIR","r0","MeshClosure","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","hasData","MeshStreamReader_readBits","align","MeshStreamReader_align","readFlag","MeshStreamReader_readFlag","bitsPerFlag","readCoordinate","MeshStreamReader_readCoordinate","bitsPerCoordinate","yi","readComponents","MeshStreamReader_readComponents","ci","decodeType4Shading","mesh","coords","ps","verticesLeft","coord","figures","decodeType5Shading","verticesPerRow","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","TRIANGLE_DENSITY","getB","getBClosure","buildB","lut","t_","buildFigureFromPatch","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","splitYBy","figureCoords","figureColors","cl","cr","c2","c3","bRow","bCol","newColor","decodeType6Shading","tmp4","decodeType7Shading","updateBounds","packData","coordsPacked","xy","colorsPacked","decodeContext","patchMesh","Mesh_getIR","DummyClosure","Dummy_getIR","xstep","ystep","paintType","tilingType","_document","BasePdfManager","BasePdfManagerClosure","_docId","_password","_docBaseUrl","BasePdfManager_onLoadedStream","BasePdfManager_ensureDoc","BasePdfManager_ensureXRef","BasePdfManager_ensureCatalog","BasePdfManager_getPage","BasePdfManager_cleanup","BasePdfManager_ensure","BasePdfManager_requestRange","BasePdfManager_requestLoadedStream","BasePdfManager_sendProgressiveData","BasePdfManager_updatePassword","BasePdfManager_terminate","LocalPdfManagerClosure","LocalPdfManager_ensure","LocalPdfManager_requestRange","LocalPdfManager_requestLoadedStream","LocalPdfManager_onLoadedStream","LocalPdfManager_terminate","NetworkPdfManagerClosure","NetworkPdfManager_ensure","ensureHelper","NetworkPdfManager_requestRange","NetworkPdfManager_requestLoadedStream","NetworkPdfManager_sendProgressiveData","NetworkPdfManager_onLoadedStream","NetworkPdfManager_terminate","PostScriptParserClosure","nextToken","PostScriptParser_nextToken","getToken","accept","PostScriptParser_accept","expect","PostScriptParser_expect","PostScriptParser_parse","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","PostScriptParser_parseBlock","NUMBER","OPERATOR","parseCondition","PostScriptParser_parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","PostScriptTokenClosure","opCache","getOperator","PostScriptToken_getOperator","opValue","PostScriptLexerClosure","PostScriptLexer_nextChar","PostScriptLexer_getToken","PostScriptLexer_getNumber","HINTING_ENABLED","Type1CharString","Type1CharStringClosure","COMMAND_MAP","lsb","flexing","Type1CharString_convert","encoded","wx","sbx","executeCommand","hstem","vstem","dy","vmoveto","rlineto","hlineto","vlineto","rrcurveto","hmoveto","endchar","rmoveto","vhcurveto","hvcurveto","sby","flexArgs","flex","howManyArgs","command","keepStack","stackLength","Type1ParserClosure","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","discardNumber","decrypted","decryptAscii","digit1","digit2","isSpecial","isBinary","readNumberArray","Type1Parser_readNumberArray","Type1Parser_readNumber","readInt","Type1Parser_readInt","readBoolean","Type1Parser_readBoolean","Type1_nextChar","Type1Parser_getToken","Type1Parser_extractFontProgram","program","lenIV","blueArray","charString","Type1Parser_extractFontHeader","encodingArg","pdfjsVersion","pdfjsBuild","pdfjsCoreWorker","PDFJS","compatibilityChecked","globalScope","isAndroid","isAndroidPre3","isAndroidPre5","isChrome","isChromeWithRangeBug","isIOSChrome","isIE","isIOS","isOpera","isSafari","hasDOM","checkTypedArrayCompatibility","setArrayOffset","Uint32ArrayView","ensureUint32ArrayViewProps","uint32ArrayViewSetters","createUint32ArrayProp","canvasPixelArrayBuffer","CanvasPixelArray","cpaProto","normalizeURLObject","webkitURL","checkObjectDefinePropertyCompatibility","definePropertyPossible","Test","objectDefineProperty","__defineGetter__","__defineSetter__","objectDefinePropertySetter","objectDefinePropertyGetter","checkXMLHttpRequestResponseCompatibility","xhrPrototype","xmlHttpRequestOverrideMimeType","mimeType","xmlHttpRequestGetResponseType","_responseType","xmlHttpRequestSetResponseType","overrideMimeType","VBArray","xmlHttpRequestResponseGet","responseBody","responseText","text","checkWindowBtoaCompatibility","btoa","checkWindowAtobCompatibility","atob","bc","idx","checkFunctionPrototypeBindCompatibility","functionPrototypeBind","headArgs","functionPrototypeBindBound","checkDatasetProperty","div","HTMLElement","_dataset","dataset","attributes","attribute","checkClassListProperty","changeList","itemName","className","classListPrototype","toggle","_classList","classList","checkWorkerConsoleCompatibility","importScripts","consoleTimer","workerConsole","checkConsoleCompatibility","checkOnClickCompatibility","ignoreIfTargetDisabled","isDisabled","stopPropagation","disabled","parentNode","checkOnBlobSupport","checkNavigatorLanguage","locale","userLanguage","checkRangeRequests","disableRange","disableStream","checkHistoryManipulation","history","pushState","disableHistory","checkSetPresenceInImageData","polyfill","versionMatch","match","contextPrototype","CanvasRenderingContext2D","checkRequestAnimationFrame","installFakeAnimationFrameFunctions","requestAnimationFrame","cancelAnimationFrame","timeoutID","clearTimeout","mozRequestAnimationFrame","webkitRequestAnimationFrame","checkCanvasSizeLimitation","maxCanvasPixels","checkFullscreenSupport","disableFullscreen","checkCurrentScript","scripts","checkInputTypeNumberAssign","inputProto","typeProperty","checkDocumentReadyState","attachEvent","documentProto","readyStateProto","checkChildNodeRemove","Element","removeChild","checkNumberIsNaN","checkNumberIsInteger","isFinite","checkPromise","iterable","resolve_","reject_","onReject","STATUS_PENDING","STATUS_RESOLVED","STATUS_REJECTED","REJECTION_TIMEOUT","HandlerManager","handlers","running","unhandledRejections","pendingRejectionCheck","scheduleHandlers","_status","_handlers","runHandlers","RUN_TIMEOUT","timeoutAt","nextStatus","thisPromise","nextValue","_value","onResolve","_unhandledRejection","removeUnhandeledRejection","nextPromise","_updateStatus","addUnhandledRejection","scheduleRejectionCheck","unhandled","_","resolver","Promise_all","resolveAll","rejectAll","unresolved","isPromise","Promise_isPromise","Promise_resolve","Promise_reject","Promise__updateStatus","Promise_then","Promise_catch","checkWeakMap","WeakMap","delete","_delete","checkURLConstructor","hasWorkingUrl","pathname","relative","relativePathDotMapping","isRelativeScheme","scheme","_isInvalid","IDNAToASCII","percentEscape","percentEscapeQuery","ALPHA","ALPHANUMERIC","stateOverride","cursor","seenAt","seenBracket","loop","_scheme","_isRelative","_query","_fragment","_schemeData","_host","_port","_path","_username","nextC","nextNextC","cp","tempC","JURL","_url","authority","host","hostname","OriginalURL","revokeObjectURL","isReadableStreamSupported"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/ng2-pdf-viewer/node_modules/pdfjs-dist/build/pdf.worker.js"],"sourcesContent":["/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = root.pdfjsDistBuildPdfWorker = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__w_pdfjs_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__w_pdfjs_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__w_pdfjs_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__w_pdfjs_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__w_pdfjs_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 103);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.loadJpegStream = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isNodeJS = exports.isSpace = exports.isString = exports.isNum = exports.isInt = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.isArray = exports.info = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.createBlob = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.StatTimer = exports.PasswordResponses = exports.PasswordException = exports.PageViewport = exports.NotImplementedException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.MessageHandler = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VERBOSITY_LEVELS = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n__w_pdfjs_require__(104);\n\nvar _streams_polyfill = __w_pdfjs_require__(106);\n\nvar FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nvar NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display'\n};\nvar TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nvar ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nvar AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nvar AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nvar AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nvar AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nvar StreamType = {\n UNKNOWN: 0,\n FLATE: 1,\n LZW: 2,\n DCT: 3,\n JPX: 4,\n JBIG: 5,\n A85: 6,\n AHX: 7,\n CCF: 8,\n RL: 9\n};\nvar FontType = {\n UNKNOWN: 0,\n TYPE1: 1,\n TYPE1C: 2,\n CIDFONTTYPE0: 3,\n CIDFONTTYPE0C: 4,\n TRUETYPE: 5,\n CIDFONTTYPE2: 6,\n TYPE3: 7,\n OPENTYPE: 8,\n TYPE0: 9,\n MMTYPE1: 10\n};\nvar VERBOSITY_LEVELS = {\n errors: 0,\n warnings: 1,\n infos: 5\n};\nvar CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nvar OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nvar verbosity = VERBOSITY_LEVELS.warnings;\nfunction setVerbosityLevel(level) {\n verbosity = level;\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VERBOSITY_LEVELS.infos) {\n console.log('Info: ' + msg);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VERBOSITY_LEVELS.warnings) {\n console.log('Warning: ' + msg);\n }\n}\nfunction deprecated(details) {\n console.log('Deprecated API usage: ' + details);\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nvar UNSUPPORTED_FEATURES = {\n unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font'\n};\nfunction isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new URL(baseUrl);\n if (!base.origin || base.origin === 'null') {\n return false;\n }\n } catch (e) {\n return false;\n }\n var other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\nfunction isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n default:\n return false;\n }\n}\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n return null;\n}\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n}\nfunction getLookupTableFactory(initializer) {\n var lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\nvar PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nvar PasswordException = function PasswordExceptionClosure() {\n function PasswordException(msg, code) {\n this.name = 'PasswordException';\n this.message = msg;\n this.code = code;\n }\n PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n return PasswordException;\n}();\nvar UnknownErrorException = function UnknownErrorExceptionClosure() {\n function UnknownErrorException(msg, details) {\n this.name = 'UnknownErrorException';\n this.message = msg;\n this.details = details;\n }\n UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n return UnknownErrorException;\n}();\nvar InvalidPDFException = function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n return InvalidPDFException;\n}();\nvar MissingPDFException = function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n return MissingPDFException;\n}();\nvar UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {\n function UnexpectedResponseException(msg, status) {\n this.name = 'UnexpectedResponseException';\n this.message = msg;\n this.status = status;\n }\n UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n return UnexpectedResponseException;\n}();\nvar NotImplementedException = function NotImplementedExceptionClosure() {\n function NotImplementedException(msg) {\n this.message = msg;\n }\n NotImplementedException.prototype = new Error();\n NotImplementedException.prototype.name = 'NotImplementedException';\n NotImplementedException.constructor = NotImplementedException;\n return NotImplementedException;\n}();\nvar MissingDataException = function MissingDataExceptionClosure() {\n function MissingDataException(begin, end) {\n this.begin = begin;\n this.end = end;\n this.message = 'Missing data [' + begin + ', ' + end + ')';\n }\n MissingDataException.prototype = new Error();\n MissingDataException.prototype.name = 'MissingDataException';\n MissingDataException.constructor = MissingDataException;\n return MissingDataException;\n}();\nvar XRefParseException = function XRefParseExceptionClosure() {\n function XRefParseException(msg) {\n this.message = msg;\n }\n XRefParseException.prototype = new Error();\n XRefParseException.prototype.name = 'XRefParseException';\n XRefParseException.constructor = XRefParseException;\n return XRefParseException;\n}();\nvar FormatError = function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n return FormatError;\n}();\nvar AbortException = function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n return AbortException;\n}();\nvar NullCharactersRegExp = /\\x00/g;\nfunction removeNullCharacters(str) {\n if (typeof str !== 'string') {\n warn('The argument for removeNullCharacters must be a string.');\n return str;\n }\n return str.replace(NullCharactersRegExp, '');\n}\nfunction bytesToString(bytes) {\n assert(bytes !== null && (typeof bytes === 'undefined' ? 'undefined' : _typeof(bytes)) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');\n var length = bytes.length;\n var MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n var strBuf = [];\n for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n var chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join('');\n}\nfunction stringToBytes(str) {\n assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n var length = str.length;\n var bytes = new Uint8Array(length);\n for (var i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xFF;\n }\n return bytes;\n}\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\nfunction arraysToBytes(arr) {\n if (arr.length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n var resultLength = 0;\n var i,\n ii = arr.length;\n var item, itemLength;\n for (i = 0; i < ii; i++) {\n item = arr[i];\n itemLength = arrayByteLength(item);\n resultLength += itemLength;\n }\n var pos = 0;\n var data = new Uint8Array(resultLength);\n for (i = 0; i < ii; i++) {\n item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === 'string') {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction log2(x) {\n var n = 1,\n i = 0;\n while (x > n) {\n n <<= 1;\n i++;\n }\n return i;\n}\nfunction readInt8(data, start) {\n return data[start] << 24 >> 24;\n}\nfunction readUint16(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n}\nfunction readUint32(data, offset) {\n return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\nfunction isLittleEndian() {\n var buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\nfunction isEvalSupported() {\n try {\n new Function('');\n return true;\n } catch (e) {\n return false;\n }\n}\nvar IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nvar Util = function UtilClosure() {\n function Util() {}\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join('');\n };\n Util.transform = function Util_transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n };\n Util.applyTransform = function Util_applyTransform(p, m) {\n var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n };\n Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n var d = m[0] * m[3] - m[1] * m[2];\n var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n };\n Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {\n var p1 = Util.applyTransform(r, m);\n var p2 = Util.applyTransform(r.slice(2, 4), m);\n var p3 = Util.applyTransform([r[0], r[3]], m);\n var p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n };\n Util.inverseTransform = function Util_inverseTransform(m) {\n var d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n };\n Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n };\n Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {\n var transpose = [m[0], m[2], m[1], m[3]];\n var a = m[0] * transpose[0] + m[1] * transpose[2];\n var b = m[0] * transpose[1] + m[1] * transpose[3];\n var c = m[2] * transpose[0] + m[3] * transpose[2];\n var d = m[2] * transpose[1] + m[3] * transpose[3];\n var first = (a + d) / 2;\n var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n var sx = first + second || 1;\n var sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n };\n Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n };\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n result = [];\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return false;\n }\n if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return false;\n }\n return result;\n };\n Util.sign = function Util_sign(num) {\n return num < 0 ? -1 : 1;\n };\n var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];\n Util.toRoman = function Util_toRoman(number, lowerCase) {\n assert(isInt(number) && number > 0, 'The number should be a positive integer.');\n var pos,\n romanBuf = [];\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push('M');\n }\n pos = number / 100 | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n pos = number / 10 | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n var romanStr = romanBuf.join('');\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n };\n Util.appendToArray = function Util_appendToArray(arr1, arr2) {\n Array.prototype.push.apply(arr1, arr2);\n };\n Util.prependToArray = function Util_prependToArray(arr1, arr2) {\n Array.prototype.unshift.apply(arr1, arr2);\n };\n Util.extendObj = function extendObj(obj1, obj2) {\n for (var key in obj2) {\n obj1[key] = obj2[key];\n }\n };\n Util.getInheritableProperty = function Util_getInheritableProperty(dict, name, getArray) {\n while (dict && !dict.has(name)) {\n dict = dict.get('Parent');\n }\n if (!dict) {\n return null;\n }\n return getArray ? dict.getArray(name) : dict.get(name);\n };\n Util.inherit = function Util_inherit(sub, base, prototype) {\n sub.prototype = Object.create(base.prototype);\n sub.prototype.constructor = sub;\n for (var prop in prototype) {\n sub.prototype[prop] = prototype[prop];\n }\n };\n Util.loadScript = function Util_loadScript(src, callback) {\n var script = document.createElement('script');\n var loaded = false;\n script.setAttribute('src', src);\n if (callback) {\n script.onload = function () {\n if (!loaded) {\n callback();\n }\n loaded = true;\n };\n }\n document.getElementsByTagName('head')[0].appendChild(script);\n };\n return Util;\n}();\nvar PageViewport = function PageViewportClosure() {\n function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n var centerX = (viewBox[2] + viewBox[0]) / 2;\n var centerY = (viewBox[3] + viewBox[1]) / 2;\n var rotateA, rotateB, rotateC, rotateD;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n default:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n var offsetCanvasX, offsetCanvasY;\n var width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n this.fontScale = scale;\n }\n PageViewport.prototype = {\n clone: function PageViewPort_clone(args) {\n args = args || {};\n var scale = 'scale' in args ? args.scale : this.scale;\n var rotation = 'rotation' in args ? args.rotation : this.rotation;\n return new PageViewport(this.viewBox.slice(), scale, rotation, this.offsetX, this.offsetY, args.dontFlip);\n },\n convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) {\n return Util.applyTransform([x, y], this.transform);\n },\n convertToViewportRectangle: function PageViewport_convertToViewportRectangle(rect) {\n var tl = Util.applyTransform([rect[0], rect[1]], this.transform);\n var br = Util.applyTransform([rect[2], rect[3]], this.transform);\n return [tl[0], tl[1], br[0], br[1]];\n },\n convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) {\n return Util.applyInverseTransform([x, y], this.transform);\n }\n };\n return PageViewport;\n}();\nvar PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];\nfunction stringToPDFString(str) {\n var i,\n n = str.length,\n strBuf = [];\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n for (i = 2; i < n; i += 2) {\n strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n }\n } else {\n for (i = 0; i < n; ++i) {\n var code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n return strBuf.join('');\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\nfunction isEmptyObj(obj) {\n for (var key in obj) {\n return false;\n }\n return true;\n}\nfunction isBool(v) {\n return typeof v === 'boolean';\n}\nfunction isInt(v) {\n return typeof v === 'number' && (v | 0) === v;\n}\nfunction isNum(v) {\n return typeof v === 'number';\n}\nfunction isString(v) {\n return typeof v === 'string';\n}\nfunction isArray(v) {\n return v instanceof Array;\n}\nfunction isArrayBuffer(v) {\n return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.byteLength !== undefined;\n}\nfunction isSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;\n}\nfunction isNodeJS() {\n return (typeof process === 'undefined' ? 'undefined' : _typeof(process)) === 'object' && process + '' === '[object process]';\n}\nfunction createPromiseCapability() {\n var capability = {};\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = resolve;\n capability.reject = reject;\n });\n return capability;\n}\nvar StatTimer = function StatTimerClosure() {\n function rpad(str, pad, length) {\n while (str.length < length) {\n str += pad;\n }\n return str;\n }\n function StatTimer() {\n this.started = Object.create(null);\n this.times = [];\n this.enabled = true;\n }\n StatTimer.prototype = {\n time: function StatTimer_time(name) {\n if (!this.enabled) {\n return;\n }\n if (name in this.started) {\n warn('Timer is already running for ' + name);\n }\n this.started[name] = Date.now();\n },\n timeEnd: function StatTimer_timeEnd(name) {\n if (!this.enabled) {\n return;\n }\n if (!(name in this.started)) {\n warn('Timer has not been started for ' + name);\n }\n this.times.push({\n 'name': name,\n 'start': this.started[name],\n 'end': Date.now()\n });\n delete this.started[name];\n },\n toString: function StatTimer_toString() {\n var i, ii;\n var times = this.times;\n var out = '';\n var longest = 0;\n for (i = 0, ii = times.length; i < ii; ++i) {\n var name = times[i]['name'];\n if (name.length > longest) {\n longest = name.length;\n }\n }\n for (i = 0, ii = times.length; i < ii; ++i) {\n var span = times[i];\n var duration = span.end - span.start;\n out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\\n';\n }\n return out;\n }\n };\n return StatTimer;\n}();\nvar createBlob = function createBlob(data, contentType) {\n if (typeof Blob !== 'undefined') {\n return new Blob([data], { type: contentType });\n }\n throw new Error('The \"Blob\" constructor is not supported.');\n};\nvar createObjectURL = function createObjectURLClosure() {\n var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n return function createObjectURL(data, contentType) {\n var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!forceDataSchema && URL.createObjectURL) {\n var blob = createBlob(data, contentType);\n return URL.createObjectURL(blob);\n }\n var buffer = 'data:' + contentType + ';base64,';\n for (var i = 0, ii = data.length; i < ii; i += 3) {\n var b1 = data[i] & 0xFF;\n var b2 = data[i + 1] & 0xFF;\n var b3 = data[i + 2] & 0xFF;\n var d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64;\n var d4 = i + 2 < ii ? b3 & 0x3F : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n}();\nfunction resolveCall(fn, args) {\n var thisArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!fn) {\n return Promise.resolve(undefined);\n }\n return new Promise(function (resolve, reject) {\n resolve(fn.apply(thisArg, args));\n });\n}\nfunction wrapReason(reason) {\n if ((typeof reason === 'undefined' ? 'undefined' : _typeof(reason)) !== 'object') {\n return reason;\n }\n switch (reason.name) {\n case 'AbortException':\n return new AbortException(reason.message);\n case 'MissingPDFException':\n return new MissingPDFException(reason.message);\n case 'UnexpectedResponseException':\n return new UnexpectedResponseException(reason.message, reason.status);\n default:\n return new UnknownErrorException(reason.message, reason.details);\n }\n}\nfunction resolveOrReject(capability, success, reason) {\n if (success) {\n capability.resolve();\n } else {\n capability.reject(reason);\n }\n}\nfunction finalize(promise) {\n return Promise.resolve(promise).catch(function () {});\n}\nfunction MessageHandler(sourceName, targetName, comObj) {\n var _this = this;\n\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.postMessageTransfers = true;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n var ah = this.actionHandler = Object.create(null);\n this._onComObjOnMessage = function (event) {\n var data = event.data;\n if (data.targetName !== _this.sourceName) {\n return;\n }\n if (data.stream) {\n _this._processStreamMessage(data);\n } else if (data.isReply) {\n var callbackId = data.callbackId;\n if (data.callbackId in callbacksCapabilities) {\n var callback = callbacksCapabilities[callbackId];\n delete callbacksCapabilities[callbackId];\n if ('error' in data) {\n callback.reject(wrapReason(data.error));\n } else {\n callback.resolve(data.data);\n }\n } else {\n throw new Error('Cannot resolve callback ' + callbackId);\n }\n } else if (data.action in ah) {\n var action = ah[data.action];\n if (data.callbackId) {\n var _sourceName = _this.sourceName;\n var _targetName = data.sourceName;\n Promise.resolve().then(function () {\n return action[0].call(action[1], data.data);\n }).then(function (result) {\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n isReply: true,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n if (reason instanceof Error) {\n reason = reason + '';\n }\n comObj.postMessage({\n sourceName: _sourceName,\n targetName: _targetName,\n isReply: true,\n callbackId: data.callbackId,\n error: reason\n });\n });\n } else if (data.streamId) {\n _this._createStreamSink(data);\n } else {\n action[0].call(action[1], data.data);\n }\n } else {\n throw new Error('Unknown action from worker: ' + data.action);\n }\n };\n comObj.addEventListener('message', this._onComObjOnMessage);\n}\nMessageHandler.prototype = {\n on: function on(actionName, handler, scope) {\n var ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error('There is already an actionName called \"' + actionName + '\"');\n }\n ah[actionName] = [handler, scope];\n },\n send: function send(actionName, data, transfers) {\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data\n };\n this.postMessage(message, transfers);\n },\n sendWithPromise: function sendWithPromise(actionName, data, transfers) {\n var callbackId = this.callbackId++;\n var message = {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data: data,\n callbackId: callbackId\n };\n var capability = createPromiseCapability();\n this.callbacksCapabilities[callbackId] = capability;\n try {\n this.postMessage(message, transfers);\n } catch (e) {\n capability.reject(e);\n }\n return capability.promise;\n },\n sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {\n var _this2 = this;\n\n var streamId = this.streamId++;\n var sourceName = this.sourceName;\n var targetName = this.targetName;\n return new _streams_polyfill.ReadableStream({\n start: function start(controller) {\n var startCapability = createPromiseCapability();\n _this2.streamControllers[streamId] = {\n controller: controller,\n startCall: startCapability,\n isClosed: false\n };\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n action: actionName,\n streamId: streamId,\n data: data,\n desiredSize: controller.desiredSize\n });\n return startCapability.promise;\n },\n pull: function pull(controller) {\n var pullCapability = createPromiseCapability();\n _this2.streamControllers[streamId].pullCall = pullCapability;\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'pull',\n streamId: streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: function cancel(reason) {\n var cancelCapability = createPromiseCapability();\n _this2.streamControllers[streamId].cancelCall = cancelCapability;\n _this2.streamControllers[streamId].isClosed = true;\n _this2.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: 'cancel',\n reason: reason,\n streamId: streamId\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n },\n _createStreamSink: function _createStreamSink(data) {\n var _this3 = this;\n\n var self = this;\n var action = this.actionHandler[data.action];\n var streamId = data.streamId;\n var desiredSize = data.desiredSize;\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var capability = createPromiseCapability();\n var sendStreamRequest = function sendStreamRequest(_ref) {\n var stream = _ref.stream,\n chunk = _ref.chunk,\n transfers = _ref.transfers,\n success = _ref.success,\n reason = _ref.reason;\n\n _this3.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: stream,\n streamId: streamId,\n chunk: chunk,\n success: success,\n reason: reason\n }, transfers);\n };\n var streamSink = {\n enqueue: function enqueue(chunk) {\n var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var transfers = arguments[2];\n\n if (this.isCancelled) {\n return;\n }\n var lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n sendStreamRequest({\n stream: 'enqueue',\n chunk: chunk,\n transfers: transfers\n });\n },\n close: function close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({ stream: 'close' });\n delete self.streamSinks[streamId];\n },\n error: function error(reason) {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n sendStreamRequest({\n stream: 'error',\n reason: reason\n });\n },\n\n sinkCapability: capability,\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {\n sendStreamRequest({\n stream: 'start_complete',\n success: true\n });\n }, function (reason) {\n sendStreamRequest({\n stream: 'start_complete',\n success: false,\n reason: reason\n });\n });\n },\n _processStreamMessage: function _processStreamMessage(data) {\n var _this4 = this;\n\n var sourceName = this.sourceName;\n var targetName = data.sourceName;\n var streamId = data.streamId;\n var sendStreamResponse = function sendStreamResponse(_ref2) {\n var stream = _ref2.stream,\n success = _ref2.success,\n reason = _ref2.reason;\n\n _this4.comObj.postMessage({\n sourceName: sourceName,\n targetName: targetName,\n stream: stream,\n success: success,\n streamId: streamId,\n reason: reason\n });\n };\n var deleteStreamController = function deleteStreamController() {\n Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {\n return capability && finalize(capability.promise);\n })).then(function () {\n delete _this4.streamControllers[data.streamId];\n });\n };\n switch (data.stream) {\n case 'start_complete':\n resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));\n break;\n case 'pull_complete':\n resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));\n break;\n case 'pull':\n if (!this.streamSinks[data.streamId]) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n break;\n }\n if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {\n this.streamSinks[data.streamId].sinkCapability.resolve();\n }\n this.streamSinks[data.streamId].desiredSize = data.desiredSize;\n resolveCall(this.streamSinks[data.streamId].onPull).then(function () {\n sendStreamResponse({\n stream: 'pull_complete',\n success: true\n });\n }, function (reason) {\n sendStreamResponse({\n stream: 'pull_complete',\n success: false,\n reason: reason\n });\n });\n break;\n case 'enqueue':\n assert(this.streamControllers[data.streamId], 'enqueue should have stream controller');\n if (!this.streamControllers[data.streamId].isClosed) {\n this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n }\n break;\n case 'close':\n assert(this.streamControllers[data.streamId], 'close should have stream controller');\n if (this.streamControllers[data.streamId].isClosed) {\n break;\n }\n this.streamControllers[data.streamId].isClosed = true;\n this.streamControllers[data.streamId].controller.close();\n deleteStreamController();\n break;\n case 'error':\n assert(this.streamControllers[data.streamId], 'error should have stream controller');\n this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel_complete':\n resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));\n deleteStreamController();\n break;\n case 'cancel':\n if (!this.streamSinks[data.streamId]) {\n break;\n }\n resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {\n sendStreamResponse({\n stream: 'cancel_complete',\n success: true\n });\n }, function (reason) {\n sendStreamResponse({\n stream: 'cancel_complete',\n success: false,\n reason: reason\n });\n });\n this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));\n this.streamSinks[data.streamId].isCancelled = true;\n delete this.streamSinks[data.streamId];\n break;\n default:\n throw new Error('Unexpected stream case');\n }\n },\n postMessage: function postMessage(message, transfers) {\n if (transfers && this.postMessageTransfers) {\n this.comObj.postMessage(message, transfers);\n } else {\n this.comObj.postMessage(message);\n }\n },\n destroy: function destroy() {\n this.comObj.removeEventListener('message', this._onComObjOnMessage);\n }\n};\nfunction loadJpegStream(id, imageUrl, objs) {\n var img = new Image();\n img.onload = function loadJpegStream_onloadClosure() {\n objs.resolve(id, img);\n };\n img.onerror = function loadJpegStream_onerrorClosure() {\n objs.resolve(id, null);\n warn('Error during JPEG image loading');\n };\n img.src = imageUrl;\n}\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nexports.OPS = OPS;\nexports.VERBOSITY_LEVELS = VERBOSITY_LEVELS;\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nexports.AnnotationFlag = AnnotationFlag;\nexports.AnnotationType = AnnotationType;\nexports.FontType = FontType;\nexports.ImageKind = ImageKind;\nexports.CMapCompressionType = CMapCompressionType;\nexports.AbortException = AbortException;\nexports.InvalidPDFException = InvalidPDFException;\nexports.MessageHandler = MessageHandler;\nexports.MissingDataException = MissingDataException;\nexports.MissingPDFException = MissingPDFException;\nexports.NativeImageDecoding = NativeImageDecoding;\nexports.NotImplementedException = NotImplementedException;\nexports.PageViewport = PageViewport;\nexports.PasswordException = PasswordException;\nexports.PasswordResponses = PasswordResponses;\nexports.StatTimer = StatTimer;\nexports.StreamType = StreamType;\nexports.TextRenderingMode = TextRenderingMode;\nexports.UnexpectedResponseException = UnexpectedResponseException;\nexports.UnknownErrorException = UnknownErrorException;\nexports.Util = Util;\nexports.XRefParseException = XRefParseException;\nexports.FormatError = FormatError;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createBlob = createBlob;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createObjectURL = createObjectURL;\nexports.deprecated = deprecated;\nexports.getLookupTableFactory = getLookupTableFactory;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArray = isArray;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isBool = isBool;\nexports.isEmptyObj = isEmptyObj;\nexports.isInt = isInt;\nexports.isNum = isNum;\nexports.isString = isString;\nexports.isSpace = isSpace;\nexports.isNodeJS = isNodeJS;\nexports.isSameOrigin = isSameOrigin;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.isLittleEndian = isLittleEndian;\nexports.isEvalSupported = isEvalSupported;\nexports.loadJpegStream = loadJpegStream;\nexports.log2 = log2;\nexports.readInt8 = readInt8;\nexports.readUint16 = readUint16;\nexports.readUint32 = readUint32;\nexports.removeNullCharacters = removeNullCharacters;\nexports.ReadableStream = _streams_polyfill.ReadableStream;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nexports.unreachable = unreachable;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isStream = exports.isRefsEqual = exports.isRef = exports.isName = exports.isDict = exports.isCmd = exports.isEOF = exports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __w_pdfjs_require__(0);\n\nvar EOF = {};\nvar Name = function NameClosure() {\n function Name(name) {\n this.name = name;\n }\n Name.prototype = {};\n var nameCache = Object.create(null);\n Name.get = function Name_get(name) {\n var nameValue = nameCache[name];\n return nameValue ? nameValue : nameCache[name] = new Name(name);\n };\n return Name;\n}();\nvar Cmd = function CmdClosure() {\n function Cmd(cmd) {\n this.cmd = cmd;\n }\n Cmd.prototype = {};\n var cmdCache = Object.create(null);\n Cmd.get = function Cmd_get(cmd) {\n var cmdValue = cmdCache[cmd];\n return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);\n };\n return Cmd;\n}();\nvar Dict = function DictClosure() {\n var nonSerializable = function nonSerializableClosure() {\n return nonSerializable;\n };\n function Dict(xref) {\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable;\n }\n Dict.prototype = {\n assignXref: function Dict_assignXref(newXref) {\n this.xref = newXref;\n },\n get: function Dict_get(key1, key2, key3) {\n var value;\n var xref = this.xref,\n suppressEncryption = this.suppressEncryption;\n if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {\n return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n }\n if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {\n return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n }\n value = this._map[key3] || null;\n return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n },\n getAsync: function Dict_getAsync(key1, key2, key3) {\n var value;\n var xref = this.xref,\n suppressEncryption = this.suppressEncryption;\n if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {\n if (xref) {\n return xref.fetchIfRefAsync(value, suppressEncryption);\n }\n return Promise.resolve(value);\n }\n if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {\n if (xref) {\n return xref.fetchIfRefAsync(value, suppressEncryption);\n }\n return Promise.resolve(value);\n }\n value = this._map[key3] || null;\n if (xref) {\n return xref.fetchIfRefAsync(value, suppressEncryption);\n }\n return Promise.resolve(value);\n },\n getArray: function Dict_getArray(key1, key2, key3) {\n var value = this.get(key1, key2, key3);\n var xref = this.xref,\n suppressEncryption = this.suppressEncryption;\n if (!(0, _util.isArray)(value) || !xref) {\n return value;\n }\n value = value.slice();\n for (var i = 0, ii = value.length; i < ii; i++) {\n if (!isRef(value[i])) {\n continue;\n }\n value[i] = xref.fetch(value[i], suppressEncryption);\n }\n return value;\n },\n getRaw: function Dict_getRaw(key) {\n return this._map[key];\n },\n getKeys: function Dict_getKeys() {\n return Object.keys(this._map);\n },\n set: function Dict_set(key, value) {\n this._map[key] = value;\n },\n has: function Dict_has(key) {\n return key in this._map;\n },\n forEach: function Dict_forEach(callback) {\n for (var key in this._map) {\n callback(key, this.get(key));\n }\n }\n };\n Dict.empty = new Dict(null);\n Dict.merge = function (xref, dictArray) {\n var mergedDict = new Dict(xref);\n for (var i = 0, ii = dictArray.length; i < ii; i++) {\n var dict = dictArray[i];\n if (!isDict(dict)) {\n continue;\n }\n for (var keyName in dict._map) {\n if (mergedDict._map[keyName] !== undefined) {\n continue;\n }\n mergedDict._map[keyName] = dict._map[keyName];\n }\n }\n return mergedDict;\n };\n return Dict;\n}();\nvar Ref = function RefClosure() {\n function Ref(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n Ref.prototype = {\n toString: function Ref_toString() {\n var str = this.num + 'R';\n if (this.gen !== 0) {\n str += this.gen;\n }\n return str;\n }\n };\n return Ref;\n}();\nvar RefSet = function RefSetClosure() {\n function RefSet() {\n this.dict = Object.create(null);\n }\n RefSet.prototype = {\n has: function RefSet_has(ref) {\n return ref.toString() in this.dict;\n },\n put: function RefSet_put(ref) {\n this.dict[ref.toString()] = true;\n },\n remove: function RefSet_remove(ref) {\n delete this.dict[ref.toString()];\n }\n };\n return RefSet;\n}();\nvar RefSetCache = function RefSetCacheClosure() {\n function RefSetCache() {\n this.dict = Object.create(null);\n }\n RefSetCache.prototype = {\n get: function RefSetCache_get(ref) {\n return this.dict[ref.toString()];\n },\n has: function RefSetCache_has(ref) {\n return ref.toString() in this.dict;\n },\n put: function RefSetCache_put(ref, obj) {\n this.dict[ref.toString()] = obj;\n },\n putAlias: function RefSetCache_putAlias(ref, aliasRef) {\n this.dict[ref.toString()] = this.get(aliasRef);\n },\n forEach: function RefSetCache_forEach(fn, thisArg) {\n for (var i in this.dict) {\n fn.call(thisArg, this.dict[i]);\n }\n },\n clear: function RefSetCache_clear() {\n this.dict = Object.create(null);\n }\n };\n return RefSetCache;\n}();\nfunction isEOF(v) {\n return v === EOF;\n}\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\nfunction isDict(v, type) {\n return v instanceof Dict && (type === undefined || isName(v.get('Type'), type));\n}\nfunction isRef(v) {\n return v instanceof Ref;\n}\nfunction isRefsEqual(v1, v2) {\n return v1.num === v2.num && v1.gen === v2.gen;\n}\nfunction isStream(v) {\n return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.getBytes !== undefined;\n}\nexports.EOF = EOF;\nexports.Cmd = Cmd;\nexports.Dict = Dict;\nexports.Name = Name;\nexports.Ref = Ref;\nexports.RefSet = RefSet;\nexports.RefSetCache = RefSetCache;\nexports.isEOF = isEOF;\nexports.isCmd = isCmd;\nexports.isDict = isDict;\nexports.isName = isName;\nexports.isRef = isRef;\nexports.isRefsEqual = isRefsEqual;\nexports.isStream = isStream;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar store = __w_pdfjs_require__(49)('wks');\nvar uid = __w_pdfjs_require__(14);\nvar _Symbol = __w_pdfjs_require__(4).Symbol;\nvar USE_SYMBOL = typeof _Symbol == 'function';\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));\n};\n$exports.store = store;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.JpxStream = exports.JpegStream = exports.Jbig2Stream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.CCITTFaxStream = exports.AsciiHexStream = exports.Ascii85Stream = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _jbig = __w_pdfjs_require__(95);\n\nvar _jpg = __w_pdfjs_require__(96);\n\nvar _jpx = __w_pdfjs_require__(57);\n\nvar Stream = function StreamClosure() {\n function Stream(arrayBuffer, start, length, dict) {\n this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n Stream.prototype = {\n get length() {\n return this.end - this.start;\n },\n get isEmpty() {\n return this.length === 0;\n },\n getByte: function Stream_getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n },\n getUint16: function Stream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n },\n getInt32: function Stream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n getBytes: function Stream_getBytes(length) {\n var bytes = this.bytes;\n var pos = this.pos;\n var strEnd = this.end;\n if (!length) {\n return bytes.subarray(pos, strEnd);\n }\n var end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n return bytes.subarray(pos, end);\n },\n peekByte: function Stream_peekByte() {\n var peekedByte = this.getByte();\n this.pos--;\n return peekedByte;\n },\n peekBytes: function Stream_peekBytes(length) {\n var bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n },\n skip: function Stream_skip(n) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n },\n reset: function Stream_reset() {\n this.pos = this.start;\n },\n moveStart: function Stream_moveStart() {\n this.start = this.pos;\n },\n makeSubStream: function Stream_makeSubStream(start, length, dict) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n };\n return Stream;\n}();\nvar StringStream = function StringStreamClosure() {\n function StringStream(str) {\n var length = str.length;\n var bytes = new Uint8Array(length);\n for (var n = 0; n < length; ++n) {\n bytes[n] = str.charCodeAt(n);\n }\n Stream.call(this, bytes);\n }\n StringStream.prototype = Stream.prototype;\n return StringStream;\n}();\nvar DecodeStream = function DecodeStreamClosure() {\n var emptyBuffer = new Uint8Array(0);\n function DecodeStream(maybeMinBufferLength) {\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n if (maybeMinBufferLength) {\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n DecodeStream.prototype = {\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n return this.bufferLength === 0;\n },\n ensureBuffer: function DecodeStream_ensureBuffer(requested) {\n var buffer = this.buffer;\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n var size = this.minBufferLength;\n while (size < requested) {\n size *= 2;\n }\n var buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return this.buffer = buffer2;\n },\n getByte: function DecodeStream_getByte() {\n var pos = this.pos;\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n this.readBlock();\n }\n return this.buffer[this.pos++];\n },\n getUint16: function DecodeStream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n },\n getInt32: function DecodeStream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n getBytes: function DecodeStream_getBytes(length) {\n var end,\n pos = this.pos;\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n var bufEnd = this.bufferLength;\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n end = this.bufferLength;\n }\n this.pos = end;\n return this.buffer.subarray(pos, end);\n },\n peekByte: function DecodeStream_peekByte() {\n var peekedByte = this.getByte();\n this.pos--;\n return peekedByte;\n },\n peekBytes: function DecodeStream_peekBytes(length) {\n var bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n },\n makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {\n var end = start + length;\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n return new Stream(this.buffer, start, length, dict);\n },\n skip: function DecodeStream_skip(n) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n },\n reset: function DecodeStream_reset() {\n this.pos = 0;\n },\n getBaseStreams: function DecodeStream_getBaseStreams() {\n if (this.str && this.str.getBaseStreams) {\n return this.str.getBaseStreams();\n }\n return [];\n }\n };\n return DecodeStream;\n}();\nvar StreamsSequenceStream = function StreamsSequenceStreamClosure() {\n function StreamsSequenceStream(streams) {\n this.streams = streams;\n DecodeStream.call(this, null);\n }\n StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);\n StreamsSequenceStream.prototype.readBlock = function streamSequenceStreamReadBlock() {\n var streams = this.streams;\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\n var stream = streams.shift();\n var chunk = stream.getBytes();\n var bufferLength = this.bufferLength;\n var newLength = bufferLength + chunk.length;\n var buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n };\n StreamsSequenceStream.prototype.getBaseStreams = function StreamsSequenceStream_getBaseStreams() {\n var baseStreams = [];\n for (var i = 0, ii = this.streams.length; i < ii; i++) {\n var stream = this.streams[i];\n if (stream.getBaseStreams) {\n _util.Util.appendToArray(baseStreams, stream.getBaseStreams());\n }\n }\n return baseStreams;\n };\n return StreamsSequenceStream;\n}();\nvar FlateStream = function FlateStreamClosure() {\n var codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n var lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]);\n var distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]);\n var fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9];\n var fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5];\n function FlateStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n var cmf = str.getByte();\n var flg = str.getByte();\n if (cmf === -1 || flg === -1) {\n throw new _util.FormatError('Invalid header in flate stream: ' + cmf + ', ' + flg);\n }\n if ((cmf & 0x0f) !== 0x08) {\n throw new _util.FormatError('Unknown compression method in flate stream: ' + cmf + ', ' + flg);\n }\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new _util.FormatError('Bad FCHECK in flate stream: ' + cmf + ', ' + flg);\n }\n if (flg & 0x20) {\n throw new _util.FormatError('FDICT bit set in flate stream: ' + cmf + ', ' + flg);\n }\n this.codeSize = 0;\n this.codeBuf = 0;\n DecodeStream.call(this, maybeLength);\n }\n FlateStream.prototype = Object.create(DecodeStream.prototype);\n FlateStream.prototype.getBits = function FlateStream_getBits(bits) {\n var str = this.str;\n var codeSize = this.codeSize;\n var codeBuf = this.codeBuf;\n var b;\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad encoding in flate stream');\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n b = codeBuf & (1 << bits) - 1;\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n return b;\n };\n FlateStream.prototype.getCode = function FlateStream_getCode(table) {\n var str = this.str;\n var codes = table[0];\n var maxLen = table[1];\n var codeSize = this.codeSize;\n var codeBuf = this.codeBuf;\n var b;\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n break;\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n var code = codes[codeBuf & (1 << maxLen) - 1];\n var codeLen = code >> 16;\n var codeVal = code & 0xffff;\n if (codeLen < 1 || codeSize < codeLen) {\n throw new _util.FormatError('Bad encoding in flate stream');\n }\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n };\n FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(lengths) {\n var n = lengths.length;\n var maxLen = 0;\n var i;\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n var size = 1 << maxLen;\n var codes = new Int32Array(size);\n for (var len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) {\n for (var val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n var code2 = 0;\n var t = code;\n for (i = 0; i < len; ++i) {\n code2 = code2 << 1 | t & 1;\n t >>= 1;\n }\n for (i = code2; i < size; i += skip) {\n codes[i] = len << 16 | val;\n }\n ++code;\n }\n }\n }\n return [codes, maxLen];\n };\n FlateStream.prototype.readBlock = function FlateStream_readBlock() {\n var buffer, len;\n var str = this.str;\n var hdr = this.getBits(3);\n if (hdr & 1) {\n this.eof = true;\n }\n hdr >>= 1;\n if (hdr === 0) {\n var b;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n var blockLen = b;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n blockLen |= b << 8;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n var check = b;\n if ((b = str.getByte()) === -1) {\n throw new _util.FormatError('Bad block header in flate stream');\n }\n check |= b << 8;\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n throw new _util.FormatError('Bad uncompressed block length in flate stream');\n }\n this.codeBuf = 0;\n this.codeSize = 0;\n var bufferLength = this.bufferLength;\n buffer = this.ensureBuffer(bufferLength + blockLen);\n var end = bufferLength + blockLen;\n this.bufferLength = end;\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n for (var n = bufferLength; n < end; ++n) {\n if ((b = str.getByte()) === -1) {\n this.eof = true;\n break;\n }\n buffer[n] = b;\n }\n }\n return;\n }\n var litCodeTable;\n var distCodeTable;\n if (hdr === 1) {\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n var numLitCodes = this.getBits(5) + 257;\n var numDistCodes = this.getBits(5) + 1;\n var numCodeLenCodes = this.getBits(4) + 4;\n var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n var i;\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n len = 0;\n i = 0;\n var codes = numLitCodes + numDistCodes;\n var codeLengths = new Uint8Array(codes);\n var bitsLength, bitsOffset, what;\n while (i < codes) {\n var code = this.getCode(codeLenCodeTab);\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n var repeatLength = this.getBits(bitsLength) + bitsOffset;\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n } else {\n throw new _util.FormatError('Unknown block type in flate stream');\n }\n buffer = this.buffer;\n var limit = buffer ? buffer.length : 0;\n var pos = this.bufferLength;\n while (true) {\n var code1 = this.getCode(litCodeTable);\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n buffer[pos++] = code1;\n continue;\n }\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n code1 -= 257;\n code1 = lengthDecode[code1];\n var code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n var dist = (code1 & 0xffff) + code2;\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n for (var k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n };\n return FlateStream;\n}();\nvar PredictorStream = function PredictorStreamClosure() {\n function PredictorStream(str, maybeLength, params) {\n if (!(0, _primitives.isDict)(params)) {\n return str;\n }\n var predictor = this.predictor = params.get('Predictor') || 1;\n if (predictor <= 1) {\n return str;\n }\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new _util.FormatError('Unsupported predictor: ' + predictor);\n }\n if (predictor === 2) {\n this.readBlock = this.readBlockTiff;\n } else {\n this.readBlock = this.readBlockPng;\n }\n this.str = str;\n this.dict = str.dict;\n var colors = this.colors = params.get('Colors') || 1;\n var bits = this.bits = params.get('BitsPerComponent') || 8;\n var columns = this.columns = params.get('Columns') || 1;\n this.pixBytes = colors * bits + 7 >> 3;\n this.rowBytes = columns * colors * bits + 7 >> 3;\n DecodeStream.call(this, maybeLength);\n return this;\n }\n PredictorStream.prototype = Object.create(DecodeStream.prototype);\n PredictorStream.prototype.readBlockTiff = function predictorStreamReadBlockTiff() {\n var rowBytes = this.rowBytes;\n var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var bits = this.bits;\n var colors = this.colors;\n var rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n var inbuf = 0,\n outbuf = 0;\n var inbits = 0,\n outbits = 0;\n var pos = bufferLength;\n var i;\n if (bits === 1 && colors === 1) {\n for (i = 0; i < rowBytes; ++i) {\n var c = rawBytes[i] ^ inbuf;\n c ^= c >> 1;\n c ^= c >> 2;\n c ^= c >> 4;\n inbuf = (c & 1) << 7;\n buffer[pos++] = c;\n }\n } else if (bits === 8) {\n for (i = 0; i < colors; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[pos] = buffer[pos - colors] + rawBytes[i];\n pos++;\n }\n } else {\n var compArray = new Uint8Array(colors + 1);\n var bitMask = (1 << bits) - 1;\n var j = 0,\n k = bufferLength;\n var columns = this.columns;\n for (i = 0; i < columns; ++i) {\n for (var kk = 0; kk < colors; ++kk) {\n if (inbits < bits) {\n inbuf = inbuf << 8 | rawBytes[j++] & 0xFF;\n inbits += 8;\n }\n compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n inbits -= bits;\n outbuf = outbuf << bits | compArray[kk];\n outbits += bits;\n if (outbits >= 8) {\n buffer[k++] = outbuf >> outbits - 8 & 0xFF;\n outbits -= 8;\n }\n }\n }\n if (outbits > 0) {\n buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n }\n }\n this.bufferLength += rowBytes;\n };\n PredictorStream.prototype.readBlockPng = function predictorStreamReadBlockPng() {\n var rowBytes = this.rowBytes;\n var pixBytes = this.pixBytes;\n var predictor = this.str.getByte();\n var rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n var bufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(bufferLength + rowBytes);\n var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n var i,\n j = bufferLength,\n up,\n c;\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n break;\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xFF;\n j++;\n }\n break;\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = prevRow[i] + rawBytes[i] & 0xFF;\n }\n break;\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xFF;\n j++;\n }\n break;\n case 4:\n for (i = 0; i < pixBytes; ++i) {\n up = prevRow[i];\n c = rawBytes[i];\n buffer[j++] = up + c;\n }\n for (; i < rowBytes; ++i) {\n up = prevRow[i];\n var upLeft = prevRow[i - pixBytes];\n var left = buffer[j - pixBytes];\n var p = left + up - upLeft;\n var pa = p - left;\n if (pa < 0) {\n pa = -pa;\n }\n var pb = p - up;\n if (pb < 0) {\n pb = -pb;\n }\n var pc = p - upLeft;\n if (pc < 0) {\n pc = -pc;\n }\n c = rawBytes[i];\n if (pa <= pb && pa <= pc) {\n buffer[j++] = left + c;\n } else if (pb <= pc) {\n buffer[j++] = up + c;\n } else {\n buffer[j++] = upLeft + c;\n }\n }\n break;\n default:\n throw new _util.FormatError('Unsupported predictor: ' + predictor);\n }\n this.bufferLength += rowBytes;\n };\n return PredictorStream;\n}();\nvar JpegStream = function JpegStreamClosure() {\n function JpegStream(stream, maybeLength, dict, params) {\n var ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === 0xFF) {\n stream.skip(-1);\n break;\n }\n }\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n DecodeStream.call(this, maybeLength);\n }\n JpegStream.prototype = Object.create(DecodeStream.prototype);\n Object.defineProperty(JpegStream.prototype, 'bytes', {\n get: function JpegStream_bytes() {\n return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n JpegStream.prototype.ensureBuffer = function JpegStream_ensureBuffer(req) {\n if (this.bufferLength) {\n return;\n }\n var jpegImage = new _jpg.JpegImage();\n var decodeArr = this.dict.getArray('Decode', 'D');\n if (this.forceRGB && (0, _util.isArray)(decodeArr)) {\n var bitsPerComponent = this.dict.get('BitsPerComponent') || 8;\n var decodeArrLength = decodeArr.length;\n var transform = new Int32Array(decodeArrLength);\n var transformNeeded = false;\n var maxValue = (1 << bitsPerComponent) - 1;\n for (var i = 0; i < decodeArrLength; i += 2) {\n transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;\n transform[i + 1] = decodeArr[i] * maxValue | 0;\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n if (transformNeeded) {\n jpegImage.decodeTransform = transform;\n }\n }\n if ((0, _primitives.isDict)(this.params)) {\n var colorTransform = this.params.get('ColorTransform');\n if ((0, _util.isInt)(colorTransform)) {\n jpegImage.colorTransform = colorTransform;\n }\n }\n jpegImage.parse(this.bytes);\n var data = jpegImage.getData(this.drawWidth, this.drawHeight, this.forceRGB);\n this.buffer = data;\n this.bufferLength = data.length;\n this.eof = true;\n };\n JpegStream.prototype.getBytes = function JpegStream_getBytes(length) {\n this.ensureBuffer();\n return this.buffer;\n };\n JpegStream.prototype.getIR = function JpegStream_getIR(forceDataSchema) {\n return (0, _util.createObjectURL)(this.bytes, 'image/jpeg', forceDataSchema);\n };\n return JpegStream;\n}();\nvar JpxStream = function JpxStreamClosure() {\n function JpxStream(stream, maybeLength, dict, params) {\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n DecodeStream.call(this, maybeLength);\n }\n JpxStream.prototype = Object.create(DecodeStream.prototype);\n Object.defineProperty(JpxStream.prototype, 'bytes', {\n get: function JpxStream_bytes() {\n return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n JpxStream.prototype.ensureBuffer = function JpxStream_ensureBuffer(req) {\n if (this.bufferLength) {\n return;\n }\n var jpxImage = new _jpx.JpxImage();\n jpxImage.parse(this.bytes);\n var width = jpxImage.width;\n var height = jpxImage.height;\n var componentsCount = jpxImage.componentsCount;\n var tileCount = jpxImage.tiles.length;\n if (tileCount === 1) {\n this.buffer = jpxImage.tiles[0].items;\n } else {\n var data = new Uint8ClampedArray(width * height * componentsCount);\n for (var k = 0; k < tileCount; k++) {\n var tileComponents = jpxImage.tiles[k];\n var tileWidth = tileComponents.width;\n var tileHeight = tileComponents.height;\n var tileLeft = tileComponents.left;\n var tileTop = tileComponents.top;\n var src = tileComponents.items;\n var srcPosition = 0;\n var dataPosition = (width * tileTop + tileLeft) * componentsCount;\n var imgRowSize = width * componentsCount;\n var tileRowSize = tileWidth * componentsCount;\n for (var j = 0; j < tileHeight; j++) {\n var rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n data.set(rowBytes, dataPosition);\n srcPosition += tileRowSize;\n dataPosition += imgRowSize;\n }\n }\n this.buffer = data;\n }\n this.bufferLength = this.buffer.length;\n this.eof = true;\n };\n return JpxStream;\n}();\nvar Jbig2Stream = function Jbig2StreamClosure() {\n function Jbig2Stream(stream, maybeLength, dict, params) {\n this.stream = stream;\n this.maybeLength = maybeLength;\n this.dict = dict;\n this.params = params;\n DecodeStream.call(this, maybeLength);\n }\n Jbig2Stream.prototype = Object.create(DecodeStream.prototype);\n Object.defineProperty(Jbig2Stream.prototype, 'bytes', {\n get: function Jbig2Stream_bytes() {\n return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n },\n configurable: true\n });\n Jbig2Stream.prototype.ensureBuffer = function Jbig2Stream_ensureBuffer(req) {\n if (this.bufferLength) {\n return;\n }\n var jbig2Image = new _jbig.Jbig2Image();\n var chunks = [];\n if ((0, _primitives.isDict)(this.params)) {\n var globalsStream = this.params.get('JBIG2Globals');\n if ((0, _primitives.isStream)(globalsStream)) {\n var globals = globalsStream.getBytes();\n chunks.push({\n data: globals,\n start: 0,\n end: globals.length\n });\n }\n }\n chunks.push({\n data: this.bytes,\n start: 0,\n end: this.bytes.length\n });\n var data = jbig2Image.parseChunks(chunks);\n var dataLength = data.length;\n for (var i = 0; i < dataLength; i++) {\n data[i] ^= 0xFF;\n }\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n };\n return Jbig2Stream;\n}();\nvar DecryptStream = function DecryptStreamClosure() {\n function DecryptStream(str, maybeLength, decrypt) {\n this.str = str;\n this.dict = str.dict;\n this.decrypt = decrypt;\n this.nextChunk = null;\n this.initialized = false;\n DecodeStream.call(this, maybeLength);\n }\n var chunkSize = 512;\n DecryptStream.prototype = Object.create(DecodeStream.prototype);\n DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {\n var chunk;\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n this.nextChunk = this.str.getBytes(chunkSize);\n var hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n var decrypt = this.decrypt;\n chunk = decrypt(chunk, !hasMoreData);\n var bufferLength = this.bufferLength;\n var i,\n n = chunk.length;\n var buffer = this.ensureBuffer(bufferLength + n);\n for (i = 0; i < n; i++) {\n buffer[bufferLength++] = chunk[i];\n }\n this.bufferLength = bufferLength;\n };\n return DecryptStream;\n}();\nvar Ascii85Stream = function Ascii85StreamClosure() {\n function Ascii85Stream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n this.input = new Uint8Array(5);\n if (maybeLength) {\n maybeLength = 0.8 * maybeLength;\n }\n DecodeStream.call(this, maybeLength);\n }\n Ascii85Stream.prototype = Object.create(DecodeStream.prototype);\n Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {\n var TILDA_CHAR = 0x7E;\n var Z_LOWER_CHAR = 0x7A;\n var EOF = -1;\n var str = this.str;\n var c = str.getByte();\n while ((0, _util.isSpace)(c)) {\n c = str.getByte();\n }\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n var bufferLength = this.bufferLength,\n buffer;\n var i;\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n this.bufferLength += 4;\n } else {\n var input = this.input;\n input[0] = c;\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n while ((0, _util.isSpace)(c)) {\n c = str.getByte();\n }\n input[i] = c;\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n this.eof = true;\n }\n var t = 0;\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xFF;\n t >>= 8;\n }\n }\n };\n return Ascii85Stream;\n}();\nvar AsciiHexStream = function AsciiHexStreamClosure() {\n function AsciiHexStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n this.firstDigit = -1;\n if (maybeLength) {\n maybeLength = 0.5 * maybeLength;\n }\n DecodeStream.call(this, maybeLength);\n }\n AsciiHexStream.prototype = Object.create(DecodeStream.prototype);\n AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {\n var UPSTREAM_BLOCK_SIZE = 8000;\n var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n var maxDecodeLength = bytes.length + 1 >> 1;\n var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n var bufferLength = this.bufferLength;\n var firstDigit = this.firstDigit;\n for (var i = 0, ii = bytes.length; i < ii; i++) {\n var ch = bytes[i],\n digit;\n if (ch >= 0x30 && ch <= 0x39) {\n digit = ch & 0x0F;\n } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n digit = (ch & 0x0F) + 9;\n } else if (ch === 0x3E) {\n this.eof = true;\n break;\n } else {\n continue;\n }\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = firstDigit << 4 | digit;\n firstDigit = -1;\n }\n }\n if (firstDigit >= 0 && this.eof) {\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n };\n return AsciiHexStream;\n}();\nvar RunLengthStream = function RunLengthStreamClosure() {\n function RunLengthStream(str, maybeLength) {\n this.str = str;\n this.dict = str.dict;\n DecodeStream.call(this, maybeLength);\n }\n RunLengthStream.prototype = Object.create(DecodeStream.prototype);\n RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {\n var repeatHeader = this.str.getBytes(2);\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n var buffer;\n var bufferLength = this.bufferLength;\n var n = repeatHeader[0];\n if (n < 128) {\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n if (n > 0) {\n var source = this.str.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n var b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n for (var i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n this.bufferLength = bufferLength;\n };\n return RunLengthStream;\n}();\nvar CCITTFaxStream = function CCITTFaxStreamClosure() {\n var ccittEOL = -2;\n var ccittEOF = -1;\n var twoDimPass = 0;\n var twoDimHoriz = 1;\n var twoDimVert0 = 2;\n var twoDimVertR1 = 3;\n var twoDimVertL1 = 4;\n var twoDimVertR2 = 5;\n var twoDimVertL2 = 6;\n var twoDimVertR3 = 7;\n var twoDimVertL3 = 8;\n var twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]];\n var whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]];\n var whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]];\n var blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]];\n var blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]];\n var blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]];\n function CCITTFaxStream(str, maybeLength, params) {\n this.str = str;\n this.dict = str.dict;\n params = params || _primitives.Dict.empty;\n this.encoding = params.get('K') || 0;\n this.eoline = params.get('EndOfLine') || false;\n this.byteAlign = params.get('EncodedByteAlign') || false;\n this.columns = params.get('Columns') || 1728;\n this.rows = params.get('Rows') || 0;\n var eoblock = params.get('EndOfBlock');\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n this.eoblock = eoblock;\n this.black = params.get('BlackIs1') || false;\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n var code1;\n while ((code1 = this.lookBits(12)) === 0) {\n this.eatBits(1);\n }\n if (code1 === 1) {\n this.eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this.lookBits(1);\n this.eatBits(1);\n }\n DecodeStream.call(this, maybeLength);\n }\n CCITTFaxStream.prototype = Object.create(DecodeStream.prototype);\n CCITTFaxStream.prototype.readBlock = function CCITTFaxStream_readBlock() {\n while (!this.eof) {\n var c = this.lookChar();\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n };\n CCITTFaxStream.prototype.addPixels = function ccittFaxStreamAddPixels(a1, blackPixels) {\n var codingLine = this.codingLine;\n var codingPos = this.codingPos;\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n (0, _util.info)('row is wrong length');\n this.err = true;\n a1 = this.columns;\n }\n if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\n }\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n };\n CCITTFaxStream.prototype.addPixelsNeg = function ccittFaxStreamAddPixelsNeg(a1, blackPixels) {\n var codingLine = this.codingLine;\n var codingPos = this.codingPos;\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n (0, _util.info)('row is wrong length');\n this.err = true;\n a1 = this.columns;\n }\n if (codingPos & 1 ^ blackPixels) {\n ++codingPos;\n }\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n (0, _util.info)('invalid code');\n this.err = true;\n a1 = 0;\n }\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n };\n CCITTFaxStream.prototype.lookChar = function CCITTFaxStream_lookChar() {\n var refLine = this.refLine;\n var codingLine = this.codingLine;\n var columns = this.columns;\n var refPos, blackPixels, bits, i;\n if (this.outputBits === 0) {\n if (this.eof) {\n return null;\n }\n this.err = false;\n var code1, code2, code3;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = this.getTwoDimCode();\n switch (code1) {\n case twoDimPass:\n this.addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this.getBlackCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this.getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this.getWhiteCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this.getBlackCode();\n } while (code3 >= 64);\n }\n this.addPixels(codingLine[this.codingPos] + code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this.addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1);\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this.addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this.addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this.addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this.addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this.addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this.addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this.addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this.addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n (0, _util.info)('bad 2d code');\n this.addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this.getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this.getWhiteCode();\n } while (code3 >= 64);\n }\n this.addPixels(codingLine[this.codingPos] + code1, blackPixels);\n blackPixels ^= 1;\n }\n }\n var gotEOL = false;\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n if (!this.eoblock && this.row === this.rows - 1) {\n this.eof = true;\n } else {\n code1 = this.lookBits(12);\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this.eatBits(1);\n code1 = this.lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this.eatBits(1);\n code1 = this.lookBits(12);\n }\n }\n if (code1 === 1) {\n this.eatBits(12);\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n if (!this.eof && this.encoding > 0) {\n this.nextLine2D = !this.lookBits(1);\n this.eatBits(1);\n }\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this.lookBits(12);\n if (code1 === 1) {\n this.eatBits(12);\n if (this.encoding > 0) {\n this.lookBits(1);\n this.eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this.lookBits(12);\n if (code1 !== 1) {\n (0, _util.info)('bad rtc code: ' + code1);\n }\n this.eatBits(12);\n if (this.encoding > 0) {\n this.lookBits(1);\n this.eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this.lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return null;\n }\n if (code1 >> 1 === 1) {\n break;\n }\n this.eatBits(1);\n }\n this.eatBits(12);\n if (this.encoding > 0) {\n this.eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[this.codingPos = 0];\n } else {\n this.outputBits = codingLine[this.codingPos = 1];\n }\n this.row++;\n }\n var c;\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xFF;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xFF >> 8 - bits;\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xFF >> 8 - this.outputBits;\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n if (this.black) {\n c ^= 0xFF;\n }\n return c;\n };\n CCITTFaxStream.prototype.findTableCode = function ccittFaxStreamFindTableCode(start, end, table, limit) {\n var limitValue = limit || 0;\n for (var i = start; i <= end; ++i) {\n var code = this.lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n var p = table[code - limitValue];\n if (p[0] === i) {\n this.eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n };\n CCITTFaxStream.prototype.getTwoDimCode = function ccittFaxStreamGetTwoDimCode() {\n var code = 0;\n var p;\n if (this.eoblock) {\n code = this.lookBits(7);\n p = twoDimTable[code];\n if (p && p[0] > 0) {\n this.eatBits(p[0]);\n return p[1];\n }\n } else {\n var result = this.findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n (0, _util.info)('Bad two dim code');\n return ccittEOF;\n };\n CCITTFaxStream.prototype.getWhiteCode = function ccittFaxStreamGetWhiteCode() {\n var code = 0;\n var p;\n if (this.eoblock) {\n code = this.lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 5 === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n if (p[0] > 0) {\n this.eatBits(p[0]);\n return p[1];\n }\n } else {\n var result = this.findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n result = this.findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n (0, _util.info)('bad white code');\n this.eatBits(1);\n return 1;\n };\n CCITTFaxStream.prototype.getBlackCode = function ccittFaxStreamGetBlackCode() {\n var code, p;\n if (this.eoblock) {\n code = this.lookBits(13);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n if (p[0] > 0) {\n this.eatBits(p[0]);\n return p[1];\n }\n } else {\n var result = this.findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n result = this.findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n result = this.findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n (0, _util.info)('bad black code');\n this.eatBits(1);\n return 1;\n };\n CCITTFaxStream.prototype.lookBits = function CCITTFaxStream_lookBits(n) {\n var c;\n while (this.inputBits < n) {\n if ((c = this.str.getByte()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return this.inputBuf << n - this.inputBits & 0xFFFF >> 16 - n;\n }\n this.inputBuf = this.inputBuf << 8 | c;\n this.inputBits += 8;\n }\n return this.inputBuf >> this.inputBits - n & 0xFFFF >> 16 - n;\n };\n CCITTFaxStream.prototype.eatBits = function CCITTFaxStream_eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n };\n return CCITTFaxStream;\n}();\nvar LZWStream = function LZWStreamClosure() {\n function LZWStream(str, maybeLength, earlyChange) {\n this.str = str;\n this.dict = str.dict;\n this.cachedData = 0;\n this.bitsCached = 0;\n var maxLzwDictionarySize = 4096;\n var lzwState = {\n earlyChange: earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0\n };\n for (var i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n this.lzwState = lzwState;\n DecodeStream.call(this, maybeLength);\n }\n LZWStream.prototype = Object.create(DecodeStream.prototype);\n LZWStream.prototype.readBits = function LZWStream_readBits(n) {\n var bitsCached = this.bitsCached;\n var cachedData = this.cachedData;\n while (bitsCached < n) {\n var c = this.str.getByte();\n if (c === -1) {\n this.eof = true;\n return null;\n }\n cachedData = cachedData << 8 | c;\n bitsCached += 8;\n }\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n this.lastCode = null;\n return cachedData >>> bitsCached & (1 << n) - 1;\n };\n LZWStream.prototype.readBlock = function LZWStream_readBlock() {\n var blockSize = 512;\n var estimatedDecodedSize = blockSize * 2,\n decodedSizeDelta = blockSize;\n var i, j, q;\n var lzwState = this.lzwState;\n if (!lzwState) {\n return;\n }\n var earlyChange = lzwState.earlyChange;\n var nextCode = lzwState.nextCode;\n var dictionaryValues = lzwState.dictionaryValues;\n var dictionaryLengths = lzwState.dictionaryLengths;\n var dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n var codeLength = lzwState.codeLength;\n var prevCode = lzwState.prevCode;\n var currentSequence = lzwState.currentSequence;\n var currentSequenceLength = lzwState.currentSequenceLength;\n var decodedLength = 0;\n var currentBufferLength = this.bufferLength;\n var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n for (i = 0; i < blockSize; i++) {\n var code = this.readBits(codeLength);\n var hasPrev = currentSequenceLength > 0;\n if (code < 256) {\n currentSequence[0] = code;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n if (hasPrev) {\n dictionaryPrevCodes[nextCode] = prevCode;\n dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n dictionaryValues[nextCode] = currentSequence[0];\n nextCode++;\n codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0;\n }\n prevCode = code;\n decodedLength += currentSequenceLength;\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n this.bufferLength = currentBufferLength;\n };\n return LZWStream;\n}();\nvar NullStream = function NullStreamClosure() {\n function NullStream() {\n Stream.call(this, new Uint8Array(0));\n }\n NullStream.prototype = Stream.prototype;\n return NullStream;\n}();\nexports.Ascii85Stream = Ascii85Stream;\nexports.AsciiHexStream = AsciiHexStream;\nexports.CCITTFaxStream = CCITTFaxStream;\nexports.DecryptStream = DecryptStream;\nexports.DecodeStream = DecodeStream;\nexports.FlateStream = FlateStream;\nexports.Jbig2Stream = Jbig2Stream;\nexports.JpegStream = JpegStream;\nexports.JpxStream = JpxStream;\nexports.NullStream = NullStream;\nexports.PredictorStream = PredictorStream;\nexports.RunLengthStream = RunLengthStream;\nexports.Stream = Stream;\nexports.StreamsSequenceStream = StreamsSequenceStream;\nexports.StringStream = StringStream;\nexports.LZWStream = LZWStream;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif (typeof __g == 'number') __g = global;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(19)(function () {\n return Object.defineProperty({}, 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(9);\nvar createDesc = __w_pdfjs_require__(20);\nmodule.exports = __w_pdfjs_require__(5) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(12);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(42);\nvar toPrimitive = __w_pdfjs_require__(31);\nvar dP = Object.defineProperty;\nexports.f = __w_pdfjs_require__(5) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) {}\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nmodule.exports = function (it) {\n return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) === 'object' ? it !== null : typeof it === 'function';\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar defined = __w_pdfjs_require__(39);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorSpace = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _function = __w_pdfjs_require__(32);\n\nvar ColorSpace = function ColorSpaceClosure() {\n function resizeRgbImage(src, bpc, w1, h1, w2, h2, alpha01, dest) {\n var COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n var xRatio = w1 / w2;\n var yRatio = h1 / h2;\n var i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n var xScaled = new Uint16Array(w2);\n var w1Scanline = w1 * COMPONENTS;\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n }\n function ColorSpace() {\n throw new Error('should not call ColorSpace constructor');\n }\n ColorSpace.prototype = {\n getRgb: function ColorSpace_getRgb(src, srcOffset) {\n var rgb = new Uint8Array(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n },\n getRgbItem: function ColorSpace_getRgbItem(src, srcOffset, dest, destOffset) {\n throw new Error('Should not call ColorSpace.getRgbItem');\n },\n getRgbBuffer: function ColorSpace_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n throw new Error('Should not call ColorSpace.getRgbBuffer');\n },\n getOutputLength: function ColorSpace_getOutputLength(inputLength, alpha01) {\n throw new Error('Should not call ColorSpace.getOutputLength');\n },\n isPassthrough: function ColorSpace_isPassthrough(bits) {\n return false;\n },\n fillRgb: function ColorSpace_fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n var count = originalWidth * originalHeight;\n var rgbBuf = null;\n var numComponentColors = 1 << bpc;\n var needsResizing = originalHeight !== height || originalWidth !== width;\n var i, ii;\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (this.numComps === 1 && count > numComponentColors && this.name !== 'DeviceGray' && this.name !== 'DeviceRGB') {\n var allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n var key;\n for (i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n var colorMap = new Uint8Array(numComponentColors * 3);\n this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n var destPos, rgbPos;\n if (!needsResizing) {\n destPos = 0;\n for (i = 0; i < count; ++i) {\n key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n rgbPos = 0;\n for (i = 0; i < count; ++i) {\n key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else {\n if (!needsResizing) {\n this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n } else {\n rgbBuf = new Uint8Array(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);\n }\n }\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(rgbBuf, bpc, originalWidth, originalHeight, width, height, alpha01, dest);\n } else {\n rgbPos = 0;\n destPos = 0;\n for (i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n },\n usesZeroToOneRange: true\n };\n ColorSpace.parse = function ColorSpace_parse(cs, xref, res) {\n var IR = ColorSpace.parseToIR(cs, xref, res);\n if (IR instanceof AlternateCS) {\n return IR;\n }\n return ColorSpace.fromIR(IR);\n };\n ColorSpace.fromIR = function ColorSpace_fromIR(IR) {\n var name = (0, _util.isArray)(IR) ? IR[0] : IR;\n var whitePoint, blackPoint, gamma;\n switch (name) {\n case 'DeviceGrayCS':\n return this.singletons.gray;\n case 'DeviceRgbCS':\n return this.singletons.rgb;\n case 'DeviceCmykCS':\n return this.singletons.cmyk;\n case 'CalGrayCS':\n whitePoint = IR[1];\n blackPoint = IR[2];\n gamma = IR[3];\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n case 'CalRGBCS':\n whitePoint = IR[1];\n blackPoint = IR[2];\n gamma = IR[3];\n var matrix = IR[4];\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n case 'PatternCS':\n var basePatternCS = IR[1];\n if (basePatternCS) {\n basePatternCS = ColorSpace.fromIR(basePatternCS);\n }\n return new PatternCS(basePatternCS);\n case 'IndexedCS':\n var baseIndexedCS = IR[1];\n var hiVal = IR[2];\n var lookup = IR[3];\n return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup);\n case 'AlternateCS':\n var numComps = IR[1];\n var alt = IR[2];\n var tintFnIR = IR[3];\n return new AlternateCS(numComps, ColorSpace.fromIR(alt), _function.PDFFunction.fromIR(tintFnIR));\n case 'LabCS':\n whitePoint = IR[1];\n blackPoint = IR[2];\n var range = IR[3];\n return new LabCS(whitePoint, blackPoint, range);\n default:\n throw new _util.FormatError('Unknown colorspace name: ' + name);\n }\n };\n ColorSpace.parseToIR = function ColorSpace_parseToIR(cs, xref, res) {\n if ((0, _primitives.isName)(cs)) {\n var colorSpaces = res.get('ColorSpace');\n if ((0, _primitives.isDict)(colorSpaces)) {\n var refcs = colorSpaces.get(cs.name);\n if (refcs) {\n cs = refcs;\n }\n }\n }\n cs = xref.fetchIfRef(cs);\n if ((0, _primitives.isName)(cs)) {\n switch (cs.name) {\n case 'DeviceGray':\n case 'G':\n return 'DeviceGrayCS';\n case 'DeviceRGB':\n case 'RGB':\n return 'DeviceRgbCS';\n case 'DeviceCMYK':\n case 'CMYK':\n return 'DeviceCmykCS';\n case 'Pattern':\n return ['PatternCS', null];\n default:\n throw new _util.FormatError('unrecognized colorspace ' + cs.name);\n }\n }\n if ((0, _util.isArray)(cs)) {\n var mode = xref.fetchIfRef(cs[0]).name;\n var numComps, params, alt, whitePoint, blackPoint, gamma;\n switch (mode) {\n case 'DeviceGray':\n case 'G':\n return 'DeviceGrayCS';\n case 'DeviceRGB':\n case 'RGB':\n return 'DeviceRgbCS';\n case 'DeviceCMYK':\n case 'CMYK':\n return 'DeviceCmykCS';\n case 'CalGray':\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray('WhitePoint');\n blackPoint = params.getArray('BlackPoint');\n gamma = params.get('Gamma');\n return ['CalGrayCS', whitePoint, blackPoint, gamma];\n case 'CalRGB':\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray('WhitePoint');\n blackPoint = params.getArray('BlackPoint');\n gamma = params.getArray('Gamma');\n var matrix = params.getArray('Matrix');\n return ['CalRGBCS', whitePoint, blackPoint, gamma, matrix];\n case 'ICCBased':\n var stream = xref.fetchIfRef(cs[1]);\n var dict = stream.dict;\n numComps = dict.get('N');\n alt = dict.get('Alternate');\n if (alt) {\n var altIR = ColorSpace.parseToIR(alt, xref, res);\n var altCS = ColorSpace.fromIR(altIR);\n if (altCS.numComps === numComps) {\n return altIR;\n }\n (0, _util.warn)('ICCBased color space: Ignoring incorrect /Alternate entry.');\n }\n if (numComps === 1) {\n return 'DeviceGrayCS';\n } else if (numComps === 3) {\n return 'DeviceRgbCS';\n } else if (numComps === 4) {\n return 'DeviceCmykCS';\n }\n break;\n case 'Pattern':\n var basePatternCS = cs[1] || null;\n if (basePatternCS) {\n basePatternCS = ColorSpace.parseToIR(basePatternCS, xref, res);\n }\n return ['PatternCS', basePatternCS];\n case 'Indexed':\n case 'I':\n var baseIndexedCS = ColorSpace.parseToIR(cs[1], xref, res);\n var hiVal = xref.fetchIfRef(cs[2]) + 1;\n var lookup = xref.fetchIfRef(cs[3]);\n if ((0, _primitives.isStream)(lookup)) {\n lookup = lookup.getBytes();\n }\n return ['IndexedCS', baseIndexedCS, hiVal, lookup];\n case 'Separation':\n case 'DeviceN':\n var name = xref.fetchIfRef(cs[1]);\n numComps = (0, _util.isArray)(name) ? name.length : 1;\n alt = ColorSpace.parseToIR(cs[2], xref, res);\n var tintFnIR = _function.PDFFunction.getIR(xref, xref.fetchIfRef(cs[3]));\n return ['AlternateCS', numComps, alt, tintFnIR];\n case 'Lab':\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray('WhitePoint');\n blackPoint = params.getArray('BlackPoint');\n var range = params.getArray('Range');\n return ['LabCS', whitePoint, blackPoint, range];\n default:\n throw new _util.FormatError('unimplemented color space object \"' + mode + '\"');\n }\n }\n throw new _util.FormatError('unrecognized color space object: \"' + cs + '\"');\n };\n ColorSpace.isDefaultDecode = function ColorSpace_isDefaultDecode(decode, n) {\n if (!(0, _util.isArray)(decode)) {\n return true;\n }\n if (n * 2 !== decode.length) {\n (0, _util.warn)('The decode map is not the correct length');\n return true;\n }\n for (var i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n return true;\n };\n ColorSpace.singletons = {\n get gray() {\n return (0, _util.shadow)(this, 'gray', new DeviceGrayCS());\n },\n get rgb() {\n return (0, _util.shadow)(this, 'rgb', new DeviceRgbCS());\n },\n get cmyk() {\n return (0, _util.shadow)(this, 'cmyk', new DeviceCmykCS());\n }\n };\n return ColorSpace;\n}();\nvar AlternateCS = function AlternateCSClosure() {\n function AlternateCS(numComps, base, tintFn) {\n this.name = 'Alternate';\n this.numComps = numComps;\n this.defaultColor = new Float32Array(numComps);\n for (var i = 0; i < numComps; ++i) {\n this.defaultColor[i] = 1;\n }\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n AlternateCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function AlternateCS_getRgbItem(src, srcOffset, dest, destOffset) {\n var tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n },\n getRgbBuffer: function AlternateCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var tintFn = this.tintFn;\n var base = this.base;\n var scale = 1 / ((1 << bits) - 1);\n var baseNumComps = base.numComps;\n var usesZeroToOneRange = base.usesZeroToOneRange;\n var isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n var pos = isPassthrough ? destOffset : 0;\n var baseBuf = isPassthrough ? dest : new Uint8Array(baseNumComps * count);\n var numComps = this.numComps;\n var scaled = new Float32Array(numComps);\n var tinted = new Float32Array(baseNumComps);\n var i, j;\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n tintFn(scaled, 0, tinted, 0);\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n },\n getOutputLength: function AlternateCS_getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function AlternateCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return AlternateCS;\n}();\nvar PatternCS = function PatternCSClosure() {\n function PatternCS(baseCS) {\n this.name = 'Pattern';\n this.base = baseCS;\n }\n PatternCS.prototype = {};\n return PatternCS;\n}();\nvar IndexedCS = function IndexedCSClosure() {\n function IndexedCS(base, highVal, lookup) {\n this.name = 'Indexed';\n this.numComps = 1;\n this.defaultColor = new Uint8Array(this.numComps);\n this.base = base;\n this.highVal = highVal;\n var baseNumComps = base.numComps;\n var length = baseNumComps * highVal;\n if ((0, _primitives.isStream)(lookup)) {\n this.lookup = new Uint8Array(length);\n var bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if ((0, _util.isString)(lookup)) {\n this.lookup = new Uint8Array(length);\n for (var i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i);\n }\n } else if (lookup instanceof Uint8Array || lookup instanceof Array) {\n this.lookup = lookup;\n } else {\n throw new _util.FormatError('Unrecognized lookup table: ' + lookup);\n }\n }\n IndexedCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function IndexedCS_getRgbItem(src, srcOffset, dest, destOffset) {\n var numComps = this.base.numComps;\n var start = src[srcOffset] * numComps;\n this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n },\n getRgbBuffer: function IndexedCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var base = this.base;\n var numComps = base.numComps;\n var outputDelta = base.getOutputLength(numComps, alpha01);\n var lookup = this.lookup;\n for (var i = 0; i < count; ++i) {\n var lookupPos = src[srcOffset++] * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n },\n getOutputLength: function IndexedCS_getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function IndexedCS_isDefaultDecode(decodeMap) {\n return true;\n },\n usesZeroToOneRange: true\n };\n return IndexedCS;\n}();\nvar DeviceGrayCS = function DeviceGrayCSClosure() {\n function DeviceGrayCS() {\n this.name = 'DeviceGray';\n this.numComps = 1;\n this.defaultColor = new Float32Array(this.numComps);\n }\n DeviceGrayCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function DeviceGrayCS_getRgbItem(src, srcOffset, dest, destOffset) {\n var c = src[srcOffset] * 255 | 0;\n c = c < 0 ? 0 : c > 255 ? 255 : c;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n },\n getRgbBuffer: function DeviceGrayCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 255 / ((1 << bits) - 1);\n var j = srcOffset,\n q = destOffset;\n for (var i = 0; i < count; ++i) {\n var c = scale * src[j++] | 0;\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n },\n getOutputLength: function DeviceGrayCS_getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function DeviceGrayCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return DeviceGrayCS;\n}();\nvar DeviceRgbCS = function DeviceRgbCSClosure() {\n function DeviceRgbCS() {\n this.name = 'DeviceRGB';\n this.numComps = 3;\n this.defaultColor = new Float32Array(this.numComps);\n }\n DeviceRgbCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function DeviceRgbCS_getRgbItem(src, srcOffset, dest, destOffset) {\n var r = src[srcOffset] * 255 | 0;\n var g = src[srcOffset + 1] * 255 | 0;\n var b = src[srcOffset + 2] * 255 | 0;\n dest[destOffset] = r < 0 ? 0 : r > 255 ? 255 : r;\n dest[destOffset + 1] = g < 0 ? 0 : g > 255 ? 255 : g;\n dest[destOffset + 2] = b < 0 ? 0 : b > 255 ? 255 : b;\n },\n getRgbBuffer: function DeviceRgbCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n var scale = 255 / ((1 << bits) - 1);\n var j = srcOffset,\n q = destOffset;\n for (var i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++] | 0;\n dest[q++] = scale * src[j++] | 0;\n dest[q++] = scale * src[j++] | 0;\n q += alpha01;\n }\n },\n getOutputLength: function DeviceRgbCS_getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n },\n isPassthrough: function DeviceRgbCS_isPassthrough(bits) {\n return bits === 8;\n },\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function DeviceRgbCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return DeviceRgbCS;\n}();\nvar DeviceCmykCS = function DeviceCmykCSClosure() {\n function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n var c = src[srcOffset + 0] * srcScale;\n var m = src[srcOffset + 1] * srcScale;\n var y = src[srcOffset + 2] * srcScale;\n var k = src[srcOffset + 3] * srcScale;\n var r = c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747) + 255 | 0;\n var g = c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578) + 255 | 0;\n var b = c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367) + 255 | 0;\n dest[destOffset] = r > 255 ? 255 : r < 0 ? 0 : r;\n dest[destOffset + 1] = g > 255 ? 255 : g < 0 ? 0 : g;\n dest[destOffset + 2] = b > 255 ? 255 : b < 0 ? 0 : b;\n }\n function DeviceCmykCS() {\n this.name = 'DeviceCMYK';\n this.numComps = 4;\n this.defaultColor = new Float32Array(this.numComps);\n this.defaultColor[3] = 1;\n }\n DeviceCmykCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function DeviceCmykCS_getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(src, srcOffset, 1, dest, destOffset);\n },\n getRgbBuffer: function DeviceCmykCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 1 / ((1 << bits) - 1);\n for (var i = 0; i < count; i++) {\n convertToRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n },\n getOutputLength: function DeviceCmykCS_getOutputLength(inputLength, alpha01) {\n return inputLength / 4 * (3 + alpha01) | 0;\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function DeviceCmykCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return DeviceCmykCS;\n}();\nvar CalGrayCS = function CalGrayCSClosure() {\n function CalGrayCS(whitePoint, blackPoint, gamma) {\n this.name = 'CalGray';\n this.numComps = 1;\n this.defaultColor = new Float32Array(this.numComps);\n if (!whitePoint) {\n throw new _util.FormatError('WhitePoint missing - required for color space CalGray');\n }\n blackPoint = blackPoint || [0, 0, 0];\n gamma = gamma || 1;\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n this.G = gamma;\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new _util.FormatError('Invalid WhitePoint components for ' + this.name + ', no fallback available');\n }\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n (0, _util.info)('Invalid BlackPoint for ' + this.name + ', falling back to default');\n this.XB = this.YB = this.ZB = 0;\n }\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n (0, _util.warn)(this.name + ', BlackPoint: XB: ' + this.XB + ', YB: ' + this.YB + ', ZB: ' + this.ZB + ', only default values are supported.');\n }\n if (this.G < 1) {\n (0, _util.info)('Invalid Gamma: ' + this.G + ' for ' + this.name + ', falling back to default');\n this.G = 1;\n }\n }\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n var A = src[srcOffset] * scale;\n var AG = Math.pow(A, cs.G);\n var L = cs.YW * AG;\n var val = Math.max(295.8 * Math.pow(L, 0.333333333333333333) - 40.8, 0) | 0;\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n CalGrayCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function CalGrayCS_getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n },\n getRgbBuffer: function CalGrayCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 1 / ((1 << bits) - 1);\n for (var i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n },\n getOutputLength: function CalGrayCS_getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function CalGrayCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return CalGrayCS;\n}();\nvar CalRGBCS = function CalRGBCSClosure() {\n var BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n var BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);\n var SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);\n var FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n var tempNormalizeMatrix = new Float32Array(3);\n var tempConvertMatrix1 = new Float32Array(3);\n var tempConvertMatrix2 = new Float32Array(3);\n var DECODE_L_CONSTANT = Math.pow((8 + 16) / 116, 3) / 8.0;\n function CalRGBCS(whitePoint, blackPoint, gamma, matrix) {\n this.name = 'CalRGB';\n this.numComps = 3;\n this.defaultColor = new Float32Array(this.numComps);\n if (!whitePoint) {\n throw new _util.FormatError('WhitePoint missing - required for color space CalRGB');\n }\n blackPoint = blackPoint || new Float32Array(3);\n gamma = gamma || new Float32Array([1, 1, 1]);\n matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n var XW = whitePoint[0];\n var YW = whitePoint[1];\n var ZW = whitePoint[2];\n this.whitePoint = whitePoint;\n var XB = blackPoint[0];\n var YB = blackPoint[1];\n var ZB = blackPoint[2];\n this.blackPoint = blackPoint;\n this.GR = gamma[0];\n this.GG = gamma[1];\n this.GB = gamma[2];\n this.MXA = matrix[0];\n this.MYA = matrix[1];\n this.MZA = matrix[2];\n this.MXB = matrix[3];\n this.MYB = matrix[4];\n this.MZB = matrix[5];\n this.MXC = matrix[6];\n this.MYC = matrix[7];\n this.MZC = matrix[8];\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new _util.FormatError('Invalid WhitePoint components for ' + this.name + ', no fallback available');\n }\n if (XB < 0 || YB < 0 || ZB < 0) {\n (0, _util.info)('Invalid BlackPoint for ' + this.name + ' [' + XB + ', ' + YB + ', ' + ZB + '], falling back to default');\n this.blackPoint = new Float32Array(3);\n }\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n (0, _util.info)('Invalid Gamma [' + this.GR + ', ' + this.GG + ', ' + this.GB + '] for ' + this.name + ', falling back to default');\n this.GR = this.GG = this.GB = 1;\n }\n if (this.MXA < 0 || this.MYA < 0 || this.MZA < 0 || this.MXB < 0 || this.MYB < 0 || this.MZB < 0 || this.MXC < 0 || this.MYC < 0 || this.MZC < 0) {\n (0, _util.info)('Invalid Matrix for ' + this.name + ' [' + this.MXA + ', ' + this.MYA + ', ' + this.MZA + this.MXB + ', ' + this.MYB + ', ' + this.MZB + this.MXC + ', ' + this.MYC + ', ' + this.MZC + '], falling back to default');\n this.MXA = this.MYB = this.MZC = 1;\n this.MXB = this.MYA = this.MZA = this.MXC = this.MYC = this.MZB = 0;\n }\n }\n function matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n function convertToFlat(sourceWhitePoint, LMS, result) {\n result[0] = LMS[0] * 1 / sourceWhitePoint[0];\n result[1] = LMS[1] * 1 / sourceWhitePoint[1];\n result[2] = LMS[2] * 1 / sourceWhitePoint[2];\n }\n function convertToD65(sourceWhitePoint, LMS, result) {\n var D65X = 0.95047;\n var D65Y = 1;\n var D65Z = 1.08883;\n result[0] = LMS[0] * D65X / sourceWhitePoint[0];\n result[1] = LMS[1] * D65Y / sourceWhitePoint[1];\n result[2] = LMS[2] * D65Z / sourceWhitePoint[2];\n }\n function sRGBTransferFunction(color) {\n if (color <= 0.0031308) {\n return adjustToRange(0, 1, 12.92 * color);\n }\n return adjustToRange(0, 1, (1 + 0.055) * Math.pow(color, 1 / 2.4) - 0.055);\n }\n function adjustToRange(min, max, value) {\n return Math.max(min, Math.min(max, value));\n }\n function decodeL(L) {\n if (L < 0) {\n return -decodeL(-L);\n }\n if (L > 8.0) {\n return Math.pow((L + 16) / 116, 3);\n }\n return L * DECODE_L_CONSTANT;\n }\n function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n var zeroDecodeL = decodeL(0);\n var X_DST = zeroDecodeL;\n var X_SRC = decodeL(sourceBlackPoint[0]);\n var Y_DST = zeroDecodeL;\n var Y_SRC = decodeL(sourceBlackPoint[1]);\n var Z_DST = zeroDecodeL;\n var Z_SRC = decodeL(sourceBlackPoint[2]);\n var X_Scale = (1 - X_DST) / (1 - X_SRC);\n var X_Offset = 1 - X_Scale;\n var Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n var Y_Offset = 1 - Y_Scale;\n var Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n var Z_Offset = 1 - Z_Scale;\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n var LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n var LMS_Flat = tempNormalizeMatrix;\n convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n }\n function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n var LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n var LMS_D65 = tempNormalizeMatrix;\n convertToD65(sourceWhitePoint, LMS, LMS_D65);\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n }\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n var A = adjustToRange(0, 1, src[srcOffset] * scale);\n var B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n var C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n var AGR = Math.pow(A, cs.GR);\n var BGG = Math.pow(B, cs.GG);\n var CGB = Math.pow(C, cs.GB);\n var X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n var Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n var Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n var XYZ = tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n var XYZ_Flat = tempConvertMatrix2;\n normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n var XYZ_Black = tempConvertMatrix1;\n compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n var XYZ_D65 = tempConvertMatrix2;\n normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n var SRGB = tempConvertMatrix1;\n matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n var sR = sRGBTransferFunction(SRGB[0]);\n var sG = sRGBTransferFunction(SRGB[1]);\n var sB = sRGBTransferFunction(SRGB[2]);\n dest[destOffset] = Math.round(sR * 255);\n dest[destOffset + 1] = Math.round(sG * 255);\n dest[destOffset + 2] = Math.round(sB * 255);\n }\n CalRGBCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function CalRGBCS_getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n },\n getRgbBuffer: function CalRGBCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var scale = 1 / ((1 << bits) - 1);\n for (var i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n },\n getOutputLength: function CalRGBCS_getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function CalRGBCS_isDefaultDecode(decodeMap) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n },\n usesZeroToOneRange: true\n };\n return CalRGBCS;\n}();\nvar LabCS = function LabCSClosure() {\n function LabCS(whitePoint, blackPoint, range) {\n this.name = 'Lab';\n this.numComps = 3;\n this.defaultColor = new Float32Array(this.numComps);\n if (!whitePoint) {\n throw new _util.FormatError('WhitePoint missing - required for color space Lab');\n }\n blackPoint = blackPoint || [0, 0, 0];\n range = range || [-100, 100, -100, 100];\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.amin = range[0];\n this.amax = range[1];\n this.bmin = range[2];\n this.bmax = range[3];\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new _util.FormatError('Invalid WhitePoint components, no fallback available');\n }\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n (0, _util.info)('Invalid BlackPoint, falling back to default');\n this.XB = this.YB = this.ZB = 0;\n }\n if (this.amin > this.amax || this.bmin > this.bmax) {\n (0, _util.info)('Invalid Range, falling back to defaults');\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n function fn_g(x) {\n var result;\n if (x >= 6 / 29) {\n result = x * x * x;\n } else {\n result = 108 / 841 * (x - 4 / 29);\n }\n return result;\n }\n function decode(value, high1, low2, high2) {\n return low2 + value * (high2 - low2) / high1;\n }\n function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n var Ls = src[srcOffset];\n var as = src[srcOffset + 1];\n var bs = src[srcOffset + 2];\n if (maxVal !== false) {\n Ls = decode(Ls, maxVal, 0, 100);\n as = decode(as, maxVal, cs.amin, cs.amax);\n bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n }\n as = as > cs.amax ? cs.amax : as < cs.amin ? cs.amin : as;\n bs = bs > cs.bmax ? cs.bmax : bs < cs.bmin ? cs.bmin : bs;\n var M = (Ls + 16) / 116;\n var L = M + as / 500;\n var N = M - bs / 200;\n var X = cs.XW * fn_g(L);\n var Y = cs.YW * fn_g(M);\n var Z = cs.ZW * fn_g(N);\n var r, g, b;\n if (cs.ZW < 1) {\n r = X * 3.1339 + Y * -1.6170 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.9160 + Z * 0.0333;\n b = X * 0.0720 + Y * -0.2290 + Z * 1.4057;\n } else {\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.2040 + Z * 1.0570;\n }\n dest[destOffset] = r <= 0 ? 0 : r >= 1 ? 255 : Math.sqrt(r) * 255 | 0;\n dest[destOffset + 1] = g <= 0 ? 0 : g >= 1 ? 255 : Math.sqrt(g) * 255 | 0;\n dest[destOffset + 2] = b <= 0 ? 0 : b >= 1 ? 255 : Math.sqrt(b) * 255 | 0;\n }\n LabCS.prototype = {\n getRgb: ColorSpace.prototype.getRgb,\n getRgbItem: function LabCS_getRgbItem(src, srcOffset, dest, destOffset) {\n convertToRgb(this, src, srcOffset, false, dest, destOffset);\n },\n getRgbBuffer: function LabCS_getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n var maxVal = (1 << bits) - 1;\n for (var i = 0; i < count; i++) {\n convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n },\n getOutputLength: function LabCS_getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01) / 3 | 0;\n },\n isPassthrough: ColorSpace.prototype.isPassthrough,\n fillRgb: ColorSpace.prototype.fillRgb,\n isDefaultDecode: function LabCS_isDefaultDecode(decodeMap) {\n return true;\n },\n usesZeroToOneRange: false\n };\n return LabCS;\n}();\nexports.ColorSpace = ColorSpace;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar 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'];\nvar 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'];\nvar 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'];\nvar 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'];\nvar 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'];\nvar 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'];\nvar 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'];\nfunction getEncoding(encodingName) {\n switch (encodingName) {\n case 'WinAnsiEncoding':\n return WinAnsiEncoding;\n case 'StandardEncoding':\n return StandardEncoding;\n case 'MacRomanEncoding':\n return MacRomanEncoding;\n case 'SymbolSetEncoding':\n return SymbolSetEncoding;\n case 'ZapfDingbatsEncoding':\n return ZapfDingbatsEncoding;\n case 'ExpertEncoding':\n return ExpertEncoding;\n case 'MacExpertEncoding':\n return MacExpertEncoding;\n default:\n return null;\n }\n}\nexports.WinAnsiEncoding = WinAnsiEncoding;\nexports.StandardEncoding = StandardEncoding;\nexports.MacRomanEncoding = MacRomanEncoding;\nexports.SymbolSetEncoding = SymbolSetEncoding;\nexports.ZapfDingbatsEncoding = ZapfDingbatsEncoding;\nexports.ExpertEncoding = ExpertEncoding;\nexports.getEncoding = getEncoding;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(10);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = module.exports = { version: '2.5.0' };\nif (typeof __e == 'number') __e = core;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(12);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar IObject = __w_pdfjs_require__(43);\nvar defined = __w_pdfjs_require__(39);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Parser = exports.Linearization = exports.Lexer = undefined;\n\nvar _stream = __w_pdfjs_require__(3);\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar MAX_LENGTH_TO_CACHE = 1000;\nvar Parser = function ParserClosure() {\n function Parser(lexer, allowStreams, xref, recoveryMode) {\n this.lexer = lexer;\n this.allowStreams = allowStreams;\n this.xref = xref;\n this.recoveryMode = recoveryMode || false;\n this.imageCache = Object.create(null);\n this.refill();\n }\n Parser.prototype = {\n refill: function Parser_refill() {\n this.buf1 = this.lexer.getObj();\n this.buf2 = this.lexer.getObj();\n },\n shift: function Parser_shift() {\n if ((0, _primitives.isCmd)(this.buf2, 'ID')) {\n this.buf1 = this.buf2;\n this.buf2 = null;\n } else {\n this.buf1 = this.buf2;\n this.buf2 = this.lexer.getObj();\n }\n },\n tryShift: function Parser_tryShift() {\n try {\n this.shift();\n return true;\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n throw e;\n }\n return false;\n }\n },\n getObj: function Parser_getObj(cipherTransform) {\n var buf1 = this.buf1;\n this.shift();\n if (buf1 instanceof _primitives.Cmd) {\n switch (buf1.cmd) {\n case 'BI':\n return this.makeInlineImage(cipherTransform);\n case '[':\n var array = [];\n while (!(0, _primitives.isCmd)(this.buf1, ']') && !(0, _primitives.isEOF)(this.buf1)) {\n array.push(this.getObj(cipherTransform));\n }\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError('End of file inside array');\n }\n return array;\n }\n this.shift();\n return array;\n case '<<':\n var dict = new _primitives.Dict(this.xref);\n while (!(0, _primitives.isCmd)(this.buf1, '>>') && !(0, _primitives.isEOF)(this.buf1)) {\n if (!(0, _primitives.isName)(this.buf1)) {\n (0, _util.info)('Malformed dictionary: key must be a name object');\n this.shift();\n continue;\n }\n var key = this.buf1.name;\n this.shift();\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if ((0, _primitives.isEOF)(this.buf1)) {\n if (!this.recoveryMode) {\n throw new _util.FormatError('End of file inside dictionary');\n }\n return dict;\n }\n if ((0, _primitives.isCmd)(this.buf2, 'stream')) {\n return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n }\n this.shift();\n return dict;\n default:\n return buf1;\n }\n }\n if ((0, _util.isInt)(buf1)) {\n var num = buf1;\n if ((0, _util.isInt)(this.buf1) && (0, _primitives.isCmd)(this.buf2, 'R')) {\n var ref = new _primitives.Ref(num, this.buf1);\n this.shift();\n this.shift();\n return ref;\n }\n return num;\n }\n if ((0, _util.isString)(buf1)) {\n var str = buf1;\n if (cipherTransform) {\n str = cipherTransform.decryptString(str);\n }\n return str;\n }\n return buf1;\n },\n findDefaultInlineStreamEnd: function findDefaultInlineStreamEnd(stream) {\n var E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xA,\n CR = 0xD;\n var n = 10,\n NUL = 0x0;\n var startPos = stream.pos,\n state = 0,\n ch = void 0,\n maybeEIPos = void 0;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else {\n (0, _util.assert)(state === 2);\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n var followingBytes = stream.peekBytes(n);\n for (var i = 0, ii = followingBytes.length; i < ii; i++) {\n ch = followingBytes[i];\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n continue;\n }\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7F)) {\n state = 0;\n break;\n }\n }\n if (state === 2) {\n break;\n }\n } else {\n state = 0;\n }\n }\n }\n if (ch === -1) {\n (0, _util.warn)('findDefaultInlineStreamEnd: ' + 'Reached the end of the stream without finding a valid EI marker');\n if (maybeEIPos) {\n (0, _util.warn)('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos));\n }\n }\n return stream.pos - 4 - startPos;\n },\n\n findDCTDecodeInlineStreamEnd: function Parser_findDCTDecodeInlineStreamEnd(stream) {\n var startPos = stream.pos,\n foundEOI = false,\n b,\n markerLength,\n length;\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xFF) {\n continue;\n }\n switch (stream.getByte()) {\n case 0x00:\n break;\n case 0xFF:\n stream.skip(-1);\n break;\n case 0xD9:\n foundEOI = true;\n break;\n case 0xC0:\n case 0xC1:\n case 0xC2:\n case 0xC3:\n case 0xC5:\n case 0xC6:\n case 0xC7:\n case 0xC9:\n case 0xCA:\n case 0xCB:\n case 0xCD:\n case 0xCE:\n case 0xCF:\n case 0xC4:\n case 0xCC:\n case 0xDA:\n case 0xDB:\n case 0xDC:\n case 0xDD:\n case 0xDE:\n case 0xDF:\n case 0xE0:\n case 0xE1:\n case 0xE2:\n case 0xE3:\n case 0xE4:\n case 0xE5:\n case 0xE6:\n case 0xE7:\n case 0xE8:\n case 0xE9:\n case 0xEA:\n case 0xEB:\n case 0xEC:\n case 0xED:\n case 0xEE:\n case 0xEF:\n case 0xFE:\n markerLength = stream.getUint16();\n if (markerLength > 2) {\n stream.skip(markerLength - 2);\n } else {\n stream.skip(-2);\n }\n break;\n }\n if (foundEOI) {\n break;\n }\n }\n length = stream.pos - startPos;\n if (b === -1) {\n (0, _util.warn)('Inline DCTDecode image stream: ' + 'EOI marker not found, searching for /EI/ instead.');\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n },\n findASCII85DecodeInlineStreamEnd: function Parser_findASCII85DecodeInlineStreamEnd(stream) {\n var TILDE = 0x7E,\n GT = 0x3E;\n var startPos = stream.pos,\n ch,\n length;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE && stream.peekByte() === GT) {\n stream.skip();\n break;\n }\n }\n length = stream.pos - startPos;\n if (ch === -1) {\n (0, _util.warn)('Inline ASCII85Decode image stream: ' + 'EOD marker not found, searching for /EI/ instead.');\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n },\n findASCIIHexDecodeInlineStreamEnd: function Parser_findASCIIHexDecodeInlineStreamEnd(stream) {\n var GT = 0x3E;\n var startPos = stream.pos,\n ch,\n length;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n length = stream.pos - startPos;\n if (ch === -1) {\n (0, _util.warn)('Inline ASCIIHexDecode image stream: ' + 'EOD marker not found, searching for /EI/ instead.');\n stream.skip(-length);\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n },\n inlineStreamSkipEI: function Parser_inlineStreamSkipEI(stream) {\n var E = 0x45,\n I = 0x49;\n var state = 0,\n ch;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else if (state === 2) {\n break;\n }\n }\n },\n makeInlineImage: function Parser_makeInlineImage(cipherTransform) {\n var lexer = this.lexer;\n var stream = lexer.stream;\n var dict = new _primitives.Dict(this.xref);\n while (!(0, _primitives.isCmd)(this.buf1, 'ID') && !(0, _primitives.isEOF)(this.buf1)) {\n if (!(0, _primitives.isName)(this.buf1)) {\n throw new _util.FormatError('Dictionary key must be a name object');\n }\n var key = this.buf1.name;\n this.shift();\n if ((0, _primitives.isEOF)(this.buf1)) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n var filter = dict.get('Filter', 'F'),\n filterName;\n if ((0, _primitives.isName)(filter)) {\n filterName = filter.name;\n } else if ((0, _util.isArray)(filter)) {\n var filterZero = this.xref.fetchIfRef(filter[0]);\n if ((0, _primitives.isName)(filterZero)) {\n filterName = filterZero.name;\n }\n }\n var startPos = stream.pos,\n length,\n i,\n ii;\n if (filterName === 'DCTDecode' || filterName === 'DCT') {\n length = this.findDCTDecodeInlineStreamEnd(stream);\n } else if (filterName === 'ASCII85Decode' || filterName === 'A85') {\n length = this.findASCII85DecodeInlineStreamEnd(stream);\n } else if (filterName === 'ASCIIHexDecode' || filterName === 'AHx') {\n length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n } else {\n length = this.findDefaultInlineStreamEnd(stream);\n }\n var imageStream = stream.makeSubStream(startPos, length, dict);\n var adler32;\n if (length < MAX_LENGTH_TO_CACHE) {\n var imageBytes = imageStream.getBytes();\n imageStream.reset();\n var a = 1;\n var b = 0;\n for (i = 0, ii = imageBytes.length; i < ii; ++i) {\n a += imageBytes[i] & 0xff;\n b += a;\n }\n adler32 = b % 65521 << 16 | a % 65521;\n var cacheEntry = this.imageCache[adler32];\n if (cacheEntry !== undefined) {\n this.buf2 = _primitives.Cmd.get('EI');\n this.shift();\n cacheEntry.reset();\n return cacheEntry;\n }\n }\n if (cipherTransform) {\n imageStream = cipherTransform.createStream(imageStream, length);\n }\n imageStream = this.filter(imageStream, dict, length);\n imageStream.dict = dict;\n if (adler32 !== undefined) {\n imageStream.cacheKey = 'inline_' + length + '_' + adler32;\n this.imageCache[adler32] = imageStream;\n }\n this.buf2 = _primitives.Cmd.get('EI');\n this.shift();\n return imageStream;\n },\n makeStream: function Parser_makeStream(dict, cipherTransform) {\n var lexer = this.lexer;\n var stream = lexer.stream;\n lexer.skipToNextLine();\n var pos = stream.pos - 1;\n var length = dict.get('Length');\n if (!(0, _util.isInt)(length)) {\n (0, _util.info)('Bad ' + length + ' attribute in stream');\n length = 0;\n }\n stream.pos = pos + length;\n lexer.nextChar();\n if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, 'endstream')) {\n this.shift();\n } else {\n stream.pos = pos;\n var SCAN_BLOCK_SIZE = 2048;\n var ENDSTREAM_SIGNATURE_LENGTH = 9;\n var ENDSTREAM_SIGNATURE = [0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D];\n var skipped = 0,\n found = false,\n i,\n j;\n while (stream.pos < stream.end) {\n var scanBytes = stream.peekBytes(SCAN_BLOCK_SIZE);\n var scanLength = scanBytes.length - ENDSTREAM_SIGNATURE_LENGTH;\n if (scanLength <= 0) {\n break;\n }\n found = false;\n i = 0;\n while (i < scanLength) {\n j = 0;\n while (j < ENDSTREAM_SIGNATURE_LENGTH && scanBytes[i + j] === ENDSTREAM_SIGNATURE[j]) {\n j++;\n }\n if (j >= ENDSTREAM_SIGNATURE_LENGTH) {\n found = true;\n break;\n }\n i++;\n }\n if (found) {\n skipped += i;\n stream.pos += i;\n break;\n }\n skipped += scanLength;\n stream.pos += scanLength;\n }\n if (!found) {\n throw new _util.FormatError('Missing endstream');\n }\n length = skipped;\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n this.shift();\n stream = stream.makeSubStream(pos, length, dict);\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\n stream = this.filter(stream, dict, length);\n stream.dict = dict;\n return stream;\n },\n filter: function Parser_filter(stream, dict, length) {\n var filter = dict.get('Filter', 'F');\n var params = dict.get('DecodeParms', 'DP');\n if ((0, _primitives.isName)(filter)) {\n if ((0, _util.isArray)(params)) {\n params = this.xref.fetchIfRef(params[0]);\n }\n return this.makeFilter(stream, filter.name, length, params);\n }\n var maybeLength = length;\n if ((0, _util.isArray)(filter)) {\n var filterArray = filter;\n var paramsArray = params;\n for (var i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n if (!(0, _primitives.isName)(filter)) {\n throw new _util.FormatError('Bad filter name: ' + filter);\n }\n params = null;\n if ((0, _util.isArray)(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n maybeLength = null;\n }\n }\n return stream;\n },\n makeFilter: function Parser_makeFilter(stream, name, maybeLength, params) {\n if (maybeLength === 0) {\n (0, _util.warn)('Empty \"' + name + '\" stream.');\n return new _stream.NullStream(stream);\n }\n try {\n var xrefStreamStats = this.xref.stats.streamTypes;\n if (name === 'FlateDecode' || name === 'Fl') {\n xrefStreamStats[_util.StreamType.FLATE] = true;\n if (params) {\n return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params);\n }\n return new _stream.FlateStream(stream, maybeLength);\n }\n if (name === 'LZWDecode' || name === 'LZW') {\n xrefStreamStats[_util.StreamType.LZW] = true;\n var earlyChange = 1;\n if (params) {\n if (params.has('EarlyChange')) {\n earlyChange = params.get('EarlyChange');\n }\n return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n }\n return new _stream.LZWStream(stream, maybeLength, earlyChange);\n }\n if (name === 'DCTDecode' || name === 'DCT') {\n xrefStreamStats[_util.StreamType.DCT] = true;\n return new _stream.JpegStream(stream, maybeLength, stream.dict, params);\n }\n if (name === 'JPXDecode' || name === 'JPX') {\n xrefStreamStats[_util.StreamType.JPX] = true;\n return new _stream.JpxStream(stream, maybeLength, stream.dict, params);\n }\n if (name === 'ASCII85Decode' || name === 'A85') {\n xrefStreamStats[_util.StreamType.A85] = true;\n return new _stream.Ascii85Stream(stream, maybeLength);\n }\n if (name === 'ASCIIHexDecode' || name === 'AHx') {\n xrefStreamStats[_util.StreamType.AHX] = true;\n return new _stream.AsciiHexStream(stream, maybeLength);\n }\n if (name === 'CCITTFaxDecode' || name === 'CCF') {\n xrefStreamStats[_util.StreamType.CCF] = true;\n return new _stream.CCITTFaxStream(stream, maybeLength, params);\n }\n if (name === 'RunLengthDecode' || name === 'RL') {\n xrefStreamStats[_util.StreamType.RL] = true;\n return new _stream.RunLengthStream(stream, maybeLength);\n }\n if (name === 'JBIG2Decode') {\n xrefStreamStats[_util.StreamType.JBIG] = true;\n return new _stream.Jbig2Stream(stream, maybeLength, stream.dict, params);\n }\n (0, _util.warn)('filter \"' + name + '\" not supported yet');\n return stream;\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Invalid stream: \\\"' + ex + '\\\"');\n return new _stream.NullStream(stream);\n }\n }\n };\n return Parser;\n}();\nvar Lexer = function LexerClosure() {\n function Lexer(stream, knownCommands) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n this.knownCommands = knownCommands;\n }\n var specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n function toHexDigit(ch) {\n if (ch >= 0x30 && ch <= 0x39) {\n return ch & 0x0F;\n }\n if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n return (ch & 0x0F) + 9;\n }\n return -1;\n }\n Lexer.prototype = {\n nextChar: function Lexer_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n peekChar: function Lexer_peekChar() {\n return this.stream.peekByte();\n },\n getNumber: function Lexer_getNumber() {\n var ch = this.currentChar;\n var eNotation = false;\n var divideBy = 0;\n var sign = 1;\n if (ch === 0x2D) {\n sign = -1;\n ch = this.nextChar();\n if (ch === 0x2D) {\n ch = this.nextChar();\n }\n } else if (ch === 0x2B) {\n ch = this.nextChar();\n }\n if (ch === 0x2E) {\n divideBy = 10;\n ch = this.nextChar();\n }\n if (ch === 0x0A || ch === 0x0D) {\n do {\n ch = this.nextChar();\n } while (ch === 0x0A || ch === 0x0D);\n }\n if (ch < 0x30 || ch > 0x39) {\n throw new _util.FormatError('Invalid number: ' + String.fromCharCode(ch) + ' (charCode ' + ch + ')');\n }\n var baseValue = ch - 0x30;\n var powerValue = 0;\n var powerValueSign = 1;\n while ((ch = this.nextChar()) >= 0) {\n if (0x30 <= ch && ch <= 0x39) {\n var currentDigit = ch - 0x30;\n if (eNotation) {\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n divideBy *= 10;\n }\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === 0x2E) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n break;\n }\n } else if (ch === 0x2D) {\n (0, _util.warn)('Badly formatted number');\n } else if (ch === 0x45 || ch === 0x65) {\n ch = this.peekChar();\n if (ch === 0x2B || ch === 0x2D) {\n powerValueSign = ch === 0x2D ? -1 : 1;\n this.nextChar();\n } else if (ch < 0x30 || ch > 0x39) {\n break;\n }\n eNotation = true;\n } else {\n break;\n }\n }\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n if (eNotation) {\n baseValue *= Math.pow(10, powerValueSign * powerValue);\n }\n return sign * baseValue;\n },\n getString: function Lexer_getString() {\n var numParen = 1;\n var done = false;\n var strBuf = this.strBuf;\n strBuf.length = 0;\n var ch = this.nextChar();\n while (true) {\n var charBuffered = false;\n switch (ch | 0) {\n case -1:\n (0, _util.warn)('Unterminated string');\n done = true;\n break;\n case 0x28:\n ++numParen;\n strBuf.push('(');\n break;\n case 0x29:\n if (--numParen === 0) {\n this.nextChar();\n done = true;\n } else {\n strBuf.push(')');\n }\n break;\n case 0x5C:\n ch = this.nextChar();\n switch (ch) {\n case -1:\n (0, _util.warn)('Unterminated string');\n done = true;\n break;\n case 0x6E:\n strBuf.push('\\n');\n break;\n case 0x72:\n strBuf.push('\\r');\n break;\n case 0x74:\n strBuf.push('\\t');\n break;\n case 0x62:\n strBuf.push('\\b');\n break;\n case 0x66:\n strBuf.push('\\f');\n break;\n case 0x5C:\n case 0x28:\n case 0x29:\n strBuf.push(String.fromCharCode(ch));\n break;\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n var x = ch & 0x0F;\n ch = this.nextChar();\n charBuffered = true;\n if (ch >= 0x30 && ch <= 0x37) {\n x = (x << 3) + (ch & 0x0F);\n ch = this.nextChar();\n if (ch >= 0x30 && ch <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0F);\n }\n }\n strBuf.push(String.fromCharCode(x));\n break;\n case 0x0D:\n if (this.peekChar() === 0x0A) {\n this.nextChar();\n }\n break;\n case 0x0A:\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n if (done) {\n break;\n }\n if (!charBuffered) {\n ch = this.nextChar();\n }\n }\n return strBuf.join('');\n },\n getName: function Lexer_getName() {\n var ch, previousCh;\n var strBuf = this.strBuf;\n strBuf.length = 0;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n if (ch === 0x23) {\n ch = this.nextChar();\n if (specialChars[ch]) {\n (0, _util.warn)('Lexer_getName: ' + 'NUMBER SIGN (#) should be followed by a hexadecimal number.');\n strBuf.push('#');\n break;\n }\n var x = toHexDigit(ch);\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n var x2 = toHexDigit(ch);\n if (x2 === -1) {\n (0, _util.warn)('Lexer_getName: Illegal digit (' + String.fromCharCode(ch) + ') in hexadecimal number.');\n strBuf.push('#', String.fromCharCode(previousCh));\n if (specialChars[ch]) {\n break;\n }\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\n strBuf.push(String.fromCharCode(x << 4 | x2));\n } else {\n strBuf.push('#', String.fromCharCode(ch));\n }\n } else {\n strBuf.push(String.fromCharCode(ch));\n }\n }\n if (strBuf.length > 127) {\n (0, _util.warn)('name token is longer than allowed by the spec: ' + strBuf.length);\n }\n return _primitives.Name.get(strBuf.join(''));\n },\n getHexString: function Lexer_getHexString() {\n var strBuf = this.strBuf;\n strBuf.length = 0;\n var ch = this.currentChar;\n var isFirstHex = true;\n var firstDigit;\n var secondDigit;\n while (true) {\n if (ch < 0) {\n (0, _util.warn)('Unterminated hex string');\n break;\n } else if (ch === 0x3E) {\n this.nextChar();\n break;\n } else if (specialChars[ch] === 1) {\n ch = this.nextChar();\n continue;\n } else {\n if (isFirstHex) {\n firstDigit = toHexDigit(ch);\n if (firstDigit === -1) {\n (0, _util.warn)('Ignoring invalid character \"' + ch + '\" in hex string');\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n if (secondDigit === -1) {\n (0, _util.warn)('Ignoring invalid character \"' + ch + '\" in hex string');\n ch = this.nextChar();\n continue;\n }\n strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit));\n }\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n return strBuf.join('');\n },\n getObj: function Lexer_getObj() {\n var comment = false;\n var ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return _primitives.EOF;\n }\n if (comment) {\n if (ch === 0x0A || ch === 0x0D) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (specialChars[ch] !== 1) {\n break;\n }\n ch = this.nextChar();\n }\n switch (ch | 0) {\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n case 0x38:\n case 0x39:\n case 0x2B:\n case 0x2D:\n case 0x2E:\n return this.getNumber();\n case 0x28:\n return this.getString();\n case 0x2F:\n return this.getName();\n case 0x5B:\n this.nextChar();\n return _primitives.Cmd.get('[');\n case 0x5D:\n this.nextChar();\n return _primitives.Cmd.get(']');\n case 0x3C:\n ch = this.nextChar();\n if (ch === 0x3C) {\n this.nextChar();\n return _primitives.Cmd.get('<<');\n }\n return this.getHexString();\n case 0x3E:\n ch = this.nextChar();\n if (ch === 0x3E) {\n this.nextChar();\n return _primitives.Cmd.get('>>');\n }\n return _primitives.Cmd.get('>');\n case 0x7B:\n this.nextChar();\n return _primitives.Cmd.get('{');\n case 0x7D:\n this.nextChar();\n return _primitives.Cmd.get('}');\n case 0x29:\n this.nextChar();\n throw new _util.FormatError('Illegal character: ' + ch);\n }\n var str = String.fromCharCode(ch);\n var knownCommands = this.knownCommands;\n var knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n var possibleCommand = str + String.fromCharCode(ch);\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n if (str.length === 128) {\n throw new _util.FormatError('Command token too long: ' + str.length);\n }\n str = possibleCommand;\n knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n }\n if (str === 'true') {\n return true;\n }\n if (str === 'false') {\n return false;\n }\n if (str === 'null') {\n return null;\n }\n return _primitives.Cmd.get(str);\n },\n skipToNextLine: function Lexer_skipToNextLine() {\n var ch = this.currentChar;\n while (ch >= 0) {\n if (ch === 0x0D) {\n ch = this.nextChar();\n if (ch === 0x0A) {\n this.nextChar();\n }\n break;\n } else if (ch === 0x0A) {\n this.nextChar();\n break;\n }\n ch = this.nextChar();\n }\n }\n };\n return Lexer;\n}();\nvar Linearization = {\n create: function LinearizationCreate(stream) {\n function getInt(name, allowZeroValue) {\n var obj = linDict.get(name);\n if ((0, _util.isInt)(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n throw new Error('The \"' + name + '\" parameter in the linearization ' + 'dictionary is invalid.');\n }\n function getHints() {\n var hints = linDict.get('H'),\n hintsLength,\n item;\n if ((0, _util.isArray)(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n for (var index = 0; index < hintsLength; index++) {\n if (!((0, _util.isInt)(item = hints[index]) && item > 0)) {\n throw new Error('Hint (' + index + ') in the linearization dictionary is invalid.');\n }\n }\n return hints;\n }\n throw new Error('Hint array in the linearization dictionary is invalid.');\n }\n var parser = new Parser(new Lexer(stream), false, null);\n var obj1 = parser.getObj();\n var obj2 = parser.getObj();\n var obj3 = parser.getObj();\n var linDict = parser.getObj();\n var obj, length;\n if (!((0, _util.isInt)(obj1) && (0, _util.isInt)(obj2) && (0, _primitives.isCmd)(obj3, 'obj') && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get('Linearized')) && obj > 0)) {\n return null;\n } else if ((length = getInt('L')) !== stream.length) {\n throw new Error('The \"L\" parameter in the linearization dictionary ' + 'does not equal the stream length.');\n }\n return {\n length: length,\n hints: getHints(),\n objectNumberFirst: getInt('O'),\n endFirst: getInt('E'),\n numPages: getInt('N'),\n mainXRefEntriesOffset: getInt('T'),\n pageFirst: linDict.has('P') ? getInt('P', true) : 0\n };\n }\n};\nexports.Lexer = Lexer;\nexports.Linearization = Linearization;\nexports.Parser = Parser;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toString = {}.toString;\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(34);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function () {\n return fn.apply(that, arguments);\n };\n};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = false;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(4);\nvar hide = __w_pdfjs_require__(6);\nvar has = __w_pdfjs_require__(7);\nvar SRC = __w_pdfjs_require__(14)('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n__w_pdfjs_require__(18).inspectSource = function (it) {\n return $toString.call(it);\n};\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar def = __w_pdfjs_require__(9).f;\nvar has = __w_pdfjs_require__(7);\nvar TAG = __w_pdfjs_require__(2)('toStringTag');\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {\n configurable: true,\n value: tag\n });\n};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar shared = __w_pdfjs_require__(49)('keys');\nvar uid = __w_pdfjs_require__(14);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(10);\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunction = exports.isPDFFunction = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _ps_parser = __w_pdfjs_require__(101);\n\nvar PDFFunction = function PDFFunctionClosure() {\n var CONSTRUCT_SAMPLED = 0;\n var CONSTRUCT_INTERPOLATED = 2;\n var CONSTRUCT_STICHED = 3;\n var CONSTRUCT_POSTSCRIPT = 4;\n return {\n getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps, str) {\n var i, ii;\n var length = 1;\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n length *= outputSize;\n var array = new Array(length);\n var codeSize = 0;\n var codeBuf = 0;\n var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1);\n var strBytes = str.getBytes((length * bps + 7) / 8);\n var strIdx = 0;\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n return array;\n },\n getIR: function PDFFunction_getIR(xref, fn) {\n var dict = fn.dict;\n if (!dict) {\n dict = fn;\n }\n var types = [this.constructSampled, null, this.constructInterpolated, this.constructStiched, this.constructPostScript];\n var typeNum = dict.get('FunctionType');\n var typeFn = types[typeNum];\n if (!typeFn) {\n throw new _util.FormatError('Unknown type of function');\n }\n return typeFn.call(this, fn, dict, xref);\n },\n fromIR: function PDFFunction_fromIR(IR) {\n var type = IR[0];\n switch (type) {\n case CONSTRUCT_SAMPLED:\n return this.constructSampledFromIR(IR);\n case CONSTRUCT_INTERPOLATED:\n return this.constructInterpolatedFromIR(IR);\n case CONSTRUCT_STICHED:\n return this.constructStichedFromIR(IR);\n default:\n return this.constructPostScriptFromIR(IR);\n }\n },\n parse: function PDFFunction_parse(xref, fn) {\n var IR = this.getIR(xref, fn);\n return this.fromIR(IR);\n },\n parseArray: function PDFFunction_parseArray(xref, fnObj) {\n if (!(0, _util.isArray)(fnObj)) {\n return this.parse(xref, fnObj);\n }\n var fnArray = [];\n for (var j = 0, jj = fnObj.length; j < jj; j++) {\n var obj = xref.fetchIfRef(fnObj[j]);\n fnArray.push(PDFFunction.parse(xref, obj));\n }\n return function (src, srcOffset, dest, destOffset) {\n for (var i = 0, ii = fnArray.length; i < ii; i++) {\n fnArray[i](src, srcOffset, dest, destOffset + i);\n }\n };\n },\n constructSampled: function PDFFunction_constructSampled(str, dict) {\n function toMultiArray(arr) {\n var inputLength = arr.length;\n var out = [];\n var index = 0;\n for (var i = 0; i < inputLength; i += 2) {\n out[index] = [arr[i], arr[i + 1]];\n ++index;\n }\n return out;\n }\n var domain = dict.getArray('Domain');\n var range = dict.getArray('Range');\n if (!domain || !range) {\n throw new _util.FormatError('No domain or range');\n }\n var inputSize = domain.length / 2;\n var outputSize = range.length / 2;\n domain = toMultiArray(domain);\n range = toMultiArray(range);\n var size = dict.get('Size');\n var bps = dict.get('BitsPerSample');\n var order = dict.get('Order') || 1;\n if (order !== 1) {\n (0, _util.info)('No support for cubic spline interpolation: ' + order);\n }\n var encode = dict.getArray('Encode');\n if (!encode) {\n encode = [];\n for (var i = 0; i < inputSize; ++i) {\n encode.push(0);\n encode.push(size[i] - 1);\n }\n }\n encode = toMultiArray(encode);\n var decode = dict.getArray('Decode');\n if (!decode) {\n decode = range;\n } else {\n decode = toMultiArray(decode);\n }\n var samples = this.getSampleArray(size, outputSize, bps, str);\n return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, Math.pow(2, bps) - 1, range];\n },\n constructSampledFromIR: function PDFFunction_constructSampledFromIR(IR) {\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n }\n return function constructSampledFromIRResult(src, srcOffset, dest, destOffset) {\n var m = IR[1];\n var domain = IR[2];\n var encode = IR[3];\n var decode = IR[4];\n var samples = IR[5];\n var size = IR[6];\n var n = IR[7];\n var range = IR[9];\n var cubeVertices = 1 << m;\n var cubeN = new Float64Array(cubeVertices);\n var cubeVertex = new Uint32Array(cubeVertices);\n var i, j;\n for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n var k = n,\n pos = 1;\n for (i = 0; i < m; ++i) {\n var domain_2i = domain[i][0];\n var domain_2i_1 = domain[i][1];\n var xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1);\n var e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]);\n var size_i = size[i];\n e = Math.min(Math.max(e, 0), size_i - 1);\n var e0 = e < size_i - 1 ? Math.floor(e) : e - 1;\n var n0 = e0 + 1 - e;\n var n1 = e - e0;\n var offset0 = e0 * k;\n var offset1 = offset0 + k;\n for (j = 0; j < cubeVertices; j++) {\n if (j & pos) {\n cubeN[j] *= n1;\n cubeVertex[j] += offset1;\n } else {\n cubeN[j] *= n0;\n cubeVertex[j] += offset0;\n }\n }\n k *= size_i;\n pos <<= 1;\n }\n for (j = 0; j < n; ++j) {\n var rj = 0;\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\n }\n rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n }\n };\n },\n constructInterpolated: function PDFFunction_constructInterpolated(str, dict) {\n var c0 = dict.getArray('C0') || [0];\n var c1 = dict.getArray('C1') || [1];\n var n = dict.get('N');\n if (!(0, _util.isArray)(c0) || !(0, _util.isArray)(c1)) {\n throw new _util.FormatError('Illegal dictionary for interpolated function');\n }\n var length = c0.length;\n var diff = [];\n for (var i = 0; i < length; ++i) {\n diff.push(c1[i] - c0[i]);\n }\n return [CONSTRUCT_INTERPOLATED, c0, diff, n];\n },\n constructInterpolatedFromIR: function PDFFunction_constructInterpolatedFromIR(IR) {\n var c0 = IR[1];\n var diff = IR[2];\n var n = IR[3];\n var length = diff.length;\n return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) {\n var x = n === 1 ? src[srcOffset] : Math.pow(src[srcOffset], n);\n for (var j = 0; j < length; ++j) {\n dest[destOffset + j] = c0[j] + x * diff[j];\n }\n };\n },\n constructStiched: function PDFFunction_constructStiched(fn, dict, xref) {\n var domain = dict.getArray('Domain');\n if (!domain) {\n throw new _util.FormatError('No domain');\n }\n var inputSize = domain.length / 2;\n if (inputSize !== 1) {\n throw new _util.FormatError('Bad domain for stiched function');\n }\n var fnRefs = dict.get('Functions');\n var fns = [];\n for (var i = 0, ii = fnRefs.length; i < ii; ++i) {\n fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i])));\n }\n var bounds = dict.getArray('Bounds');\n var encode = dict.getArray('Encode');\n return [CONSTRUCT_STICHED, domain, bounds, encode, fns];\n },\n constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) {\n var domain = IR[1];\n var bounds = IR[2];\n var encode = IR[3];\n var fnsIR = IR[4];\n var fns = [];\n var tmpBuf = new Float32Array(1);\n for (var i = 0, ii = fnsIR.length; i < ii; i++) {\n fns.push(PDFFunction.fromIR(fnsIR[i]));\n }\n return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) {\n var clip = function constructStichedFromIRClip(v, min, max) {\n if (v > max) {\n v = max;\n } else if (v < min) {\n v = min;\n }\n return v;\n };\n var v = clip(src[srcOffset], domain[0], domain[1]);\n for (var i = 0, ii = bounds.length; i < ii; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n var dmin = domain[0];\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n var dmax = domain[1];\n if (i < bounds.length) {\n dmax = bounds[i];\n }\n var rmin = encode[2 * i];\n var rmax = encode[2 * i + 1];\n tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n fns[i](tmpBuf, 0, dest, destOffset);\n };\n },\n constructPostScript: function PDFFunction_constructPostScript(fn, dict, xref) {\n var domain = dict.getArray('Domain');\n var range = dict.getArray('Range');\n if (!domain) {\n throw new _util.FormatError('No domain.');\n }\n if (!range) {\n throw new _util.FormatError('No range.');\n }\n var lexer = new _ps_parser.PostScriptLexer(fn);\n var parser = new _ps_parser.PostScriptParser(lexer);\n var code = parser.parse();\n return [CONSTRUCT_POSTSCRIPT, domain, range, code];\n },\n constructPostScriptFromIR: function PDFFunction_constructPostScriptFromIR(IR) {\n var domain = IR[1];\n var range = IR[2];\n var code = IR[3];\n var compiled = new PostScriptCompiler().compile(code, domain, range);\n if (compiled) {\n return new Function('src', 'srcOffset', 'dest', 'destOffset', compiled);\n }\n (0, _util.info)('Unable to compile PS function');\n var numOutputs = range.length >> 1;\n var numInputs = domain.length >> 1;\n var evaluator = new PostScriptEvaluator(code);\n var cache = Object.create(null);\n var MAX_CACHE_SIZE = 2048 * 4;\n var cache_available = MAX_CACHE_SIZE;\n var tmpBuf = new Float32Array(numInputs);\n return function constructPostScriptFromIRResult(src, srcOffset, dest, destOffset) {\n var i, value;\n var key = '';\n var input = tmpBuf;\n for (i = 0; i < numInputs; i++) {\n value = src[srcOffset + i];\n input[i] = value;\n key += value + '_';\n }\n var cachedValue = cache[key];\n if (cachedValue !== undefined) {\n dest.set(cachedValue, destOffset);\n return;\n }\n var output = new Float32Array(numOutputs);\n var stack = evaluator.execute(input);\n var stackIndex = stack.length - numOutputs;\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n var bound = range[i * 2];\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n if (value > bound) {\n value = bound;\n }\n }\n output[i] = value;\n }\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n dest.set(output, destOffset);\n };\n }\n };\n}();\nfunction isPDFFunction(v) {\n var fnDict;\n if ((typeof v === 'undefined' ? 'undefined' : _typeof(v)) !== 'object') {\n return false;\n } else if ((0, _primitives.isDict)(v)) {\n fnDict = v;\n } else if ((0, _primitives.isStream)(v)) {\n fnDict = v.dict;\n } else {\n return false;\n }\n return fnDict.has('FunctionType');\n}\nvar PostScriptStack = function PostScriptStackClosure() {\n var MAX_STACK_SIZE = 100;\n function PostScriptStack(initialStack) {\n this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0);\n }\n PostScriptStack.prototype = {\n push: function PostScriptStack_push(value) {\n if (this.stack.length >= MAX_STACK_SIZE) {\n throw new Error('PostScript function stack overflow.');\n }\n this.stack.push(value);\n },\n pop: function PostScriptStack_pop() {\n if (this.stack.length <= 0) {\n throw new Error('PostScript function stack underflow.');\n }\n return this.stack.pop();\n },\n copy: function PostScriptStack_copy(n) {\n if (this.stack.length + n >= MAX_STACK_SIZE) {\n throw new Error('PostScript function stack overflow.');\n }\n var stack = this.stack;\n for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n stack.push(stack[i]);\n }\n },\n index: function PostScriptStack_index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n },\n roll: function PostScriptStack_roll(n, p) {\n var stack = this.stack;\n var l = stack.length - n;\n var r = stack.length - 1,\n c = l + (p - Math.floor(p / n) * n),\n i,\n j,\n t;\n for (i = l, j = r; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (i = l, j = c - 1; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (i = c, j = r; i < j; i++, j--) {\n t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n }\n };\n return PostScriptStack;\n}();\nvar PostScriptEvaluator = function PostScriptEvaluatorClosure() {\n function PostScriptEvaluator(operators) {\n this.operators = operators;\n }\n PostScriptEvaluator.prototype = {\n execute: function PostScriptEvaluator_execute(initialStack) {\n var stack = new PostScriptStack(initialStack);\n var counter = 0;\n var operators = this.operators;\n var length = operators.length;\n var operator, a, b;\n while (counter < length) {\n operator = operators[counter++];\n if (typeof operator === 'number') {\n stack.push(operator);\n continue;\n }\n switch (operator) {\n case 'jz':\n b = stack.pop();\n a = stack.pop();\n if (!a) {\n counter = b;\n }\n break;\n case 'j':\n a = stack.pop();\n counter = a;\n break;\n case 'abs':\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case 'add':\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n case 'and':\n b = stack.pop();\n a = stack.pop();\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n break;\n case 'atan':\n a = stack.pop();\n stack.push(Math.atan(a));\n break;\n case 'bitshift':\n b = stack.pop();\n a = stack.pop();\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n break;\n case 'ceiling':\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n case 'copy':\n a = stack.pop();\n stack.copy(a);\n break;\n case 'cos':\n a = stack.pop();\n stack.push(Math.cos(a));\n break;\n case 'cvi':\n a = stack.pop() | 0;\n stack.push(a);\n break;\n case 'cvr':\n break;\n case 'div':\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n case 'dup':\n stack.copy(1);\n break;\n case 'eq':\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n case 'exch':\n stack.roll(2, 1);\n break;\n case 'exp':\n b = stack.pop();\n a = stack.pop();\n stack.push(Math.pow(a, b));\n break;\n case 'false':\n stack.push(false);\n break;\n case 'floor':\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n case 'ge':\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n case 'gt':\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n case 'idiv':\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b | 0);\n break;\n case 'index':\n a = stack.pop();\n stack.index(a);\n break;\n case 'le':\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n case 'ln':\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n case 'log':\n a = stack.pop();\n stack.push(Math.log(a) / Math.LN10);\n break;\n case 'lt':\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n case 'mod':\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n case 'mul':\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n case 'ne':\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n case 'neg':\n a = stack.pop();\n stack.push(-a);\n break;\n case 'not':\n a = stack.pop();\n if ((0, _util.isBool)(a)) {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n break;\n case 'or':\n b = stack.pop();\n a = stack.pop();\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n break;\n case 'pop':\n stack.pop();\n break;\n case 'roll':\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n case 'round':\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n case 'sin':\n a = stack.pop();\n stack.push(Math.sin(a));\n break;\n case 'sqrt':\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case 'sub':\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n case 'true':\n stack.push(true);\n break;\n case 'truncate':\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n case 'xor':\n b = stack.pop();\n a = stack.pop();\n if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n break;\n default:\n throw new _util.FormatError('Unknown operator ' + operator);\n }\n }\n return stack.stack;\n }\n };\n return PostScriptEvaluator;\n}();\nvar PostScriptCompiler = function PostScriptCompilerClosure() {\n function AstNode(type) {\n this.type = type;\n }\n AstNode.prototype.visit = function (visitor) {\n throw new Error('abstract method');\n };\n function AstArgument(index, min, max) {\n AstNode.call(this, 'args');\n this.index = index;\n this.min = min;\n this.max = max;\n }\n AstArgument.prototype = Object.create(AstNode.prototype);\n AstArgument.prototype.visit = function (visitor) {\n visitor.visitArgument(this);\n };\n function AstLiteral(number) {\n AstNode.call(this, 'literal');\n this.number = number;\n this.min = number;\n this.max = number;\n }\n AstLiteral.prototype = Object.create(AstNode.prototype);\n AstLiteral.prototype.visit = function (visitor) {\n visitor.visitLiteral(this);\n };\n function AstBinaryOperation(op, arg1, arg2, min, max) {\n AstNode.call(this, 'binary');\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n AstBinaryOperation.prototype = Object.create(AstNode.prototype);\n AstBinaryOperation.prototype.visit = function (visitor) {\n visitor.visitBinaryOperation(this);\n };\n function AstMin(arg, max) {\n AstNode.call(this, 'max');\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n AstMin.prototype = Object.create(AstNode.prototype);\n AstMin.prototype.visit = function (visitor) {\n visitor.visitMin(this);\n };\n function AstVariable(index, min, max) {\n AstNode.call(this, 'var');\n this.index = index;\n this.min = min;\n this.max = max;\n }\n AstVariable.prototype = Object.create(AstNode.prototype);\n AstVariable.prototype.visit = function (visitor) {\n visitor.visitVariable(this);\n };\n function AstVariableDefinition(variable, arg) {\n AstNode.call(this, 'definition');\n this.variable = variable;\n this.arg = arg;\n }\n AstVariableDefinition.prototype = Object.create(AstNode.prototype);\n AstVariableDefinition.prototype.visit = function (visitor) {\n visitor.visitVariableDefinition(this);\n };\n function ExpressionBuilderVisitor() {\n this.parts = [];\n }\n ExpressionBuilderVisitor.prototype = {\n visitArgument: function visitArgument(arg) {\n this.parts.push('Math.max(', arg.min, ', Math.min(', arg.max, ', src[srcOffset + ', arg.index, ']))');\n },\n visitVariable: function visitVariable(variable) {\n this.parts.push('v', variable.index);\n },\n visitLiteral: function visitLiteral(literal) {\n this.parts.push(literal.number);\n },\n visitBinaryOperation: function visitBinaryOperation(operation) {\n this.parts.push('(');\n operation.arg1.visit(this);\n this.parts.push(' ', operation.op, ' ');\n operation.arg2.visit(this);\n this.parts.push(')');\n },\n visitVariableDefinition: function visitVariableDefinition(definition) {\n this.parts.push('var ');\n definition.variable.visit(this);\n this.parts.push(' = ');\n definition.arg.visit(this);\n this.parts.push(';');\n },\n visitMin: function visitMin(max) {\n this.parts.push('Math.min(');\n max.arg.visit(this);\n this.parts.push(', ', max.max, ')');\n },\n toString: function toString() {\n return this.parts.join('');\n }\n };\n function buildAddOperation(num1, num2) {\n if (num2.type === 'literal' && num2.number === 0) {\n return num1;\n }\n if (num1.type === 'literal' && num1.number === 0) {\n return num2;\n }\n if (num2.type === 'literal' && num1.type === 'literal') {\n return new AstLiteral(num1.number + num2.number);\n }\n return new AstBinaryOperation('+', num1, num2, num1.min + num2.min, num1.max + num2.max);\n }\n function buildMulOperation(num1, num2) {\n if (num2.type === 'literal') {\n if (num2.number === 0) {\n return new AstLiteral(0);\n } else if (num2.number === 1) {\n return num1;\n } else if (num1.type === 'literal') {\n return new AstLiteral(num1.number * num2.number);\n }\n }\n if (num1.type === 'literal') {\n if (num1.number === 0) {\n return new AstLiteral(0);\n } else if (num1.number === 1) {\n return num2;\n }\n }\n var min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n var max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n return new AstBinaryOperation('*', num1, num2, min, max);\n }\n function buildSubOperation(num1, num2) {\n if (num2.type === 'literal') {\n if (num2.number === 0) {\n return num1;\n } else if (num1.type === 'literal') {\n return new AstLiteral(num1.number - num2.number);\n }\n }\n if (num2.type === 'binary' && num2.op === '-' && num1.type === 'literal' && num1.number === 1 && num2.arg1.type === 'literal' && num2.arg1.number === 1) {\n return num2.arg2;\n }\n return new AstBinaryOperation('-', num1, num2, num1.min - num2.max, num1.max - num2.min);\n }\n function buildMinOperation(num1, max) {\n if (num1.min >= max) {\n return new AstLiteral(max);\n } else if (num1.max <= max) {\n return num1;\n }\n return new AstMin(num1, max);\n }\n function PostScriptCompiler() {}\n PostScriptCompiler.prototype = {\n compile: function PostScriptCompiler_compile(code, domain, range) {\n var stack = [];\n var i, ii;\n var instructions = [];\n var inputSize = domain.length >> 1,\n outputSize = range.length >> 1;\n var lastRegister = 0;\n var n, j;\n var num1, num2, ast1, ast2, tmpVar, item;\n for (i = 0; i < inputSize; i++) {\n stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n }\n for (i = 0, ii = code.length; i < ii; i++) {\n item = code[i];\n if (typeof item === 'number') {\n stack.push(new AstLiteral(item));\n continue;\n }\n switch (item) {\n case 'add':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n case 'cvr':\n if (stack.length < 1) {\n return null;\n }\n break;\n case 'mul':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n case 'sub':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n case 'exch':\n if (stack.length < 2) {\n return null;\n }\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n case 'pop':\n if (stack.length < 1) {\n return null;\n }\n stack.pop();\n break;\n case 'index':\n if (stack.length < 1) {\n return null;\n }\n num1 = stack.pop();\n if (num1.type !== 'literal') {\n return null;\n }\n n = num1.number;\n if (n < 0 || (n | 0) !== n || stack.length < n) {\n return null;\n }\n ast1 = stack[stack.length - n - 1];\n if (ast1.type === 'literal' || ast1.type === 'var') {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - n - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case 'dup':\n if (stack.length < 1) {\n return null;\n }\n if (typeof code[i + 1] === 'number' && code[i + 2] === 'gt' && code[i + 3] === i + 7 && code[i + 4] === 'jz' && code[i + 5] === 'pop' && code[i + 6] === code[i + 1]) {\n num1 = stack.pop();\n stack.push(buildMinOperation(num1, code[i + 1]));\n i += 6;\n break;\n }\n ast1 = stack[stack.length - 1];\n if (ast1.type === 'literal' || ast1.type === 'var') {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case 'roll':\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n if (num2.type !== 'literal' || num1.type !== 'literal') {\n return null;\n }\n j = num2.number;\n n = num1.number;\n if (n <= 0 || (n | 0) !== n || (j | 0) !== j || stack.length < n) {\n return null;\n }\n j = (j % n + n) % n;\n if (j === 0) {\n break;\n }\n Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j));\n break;\n default:\n return null;\n }\n }\n if (stack.length !== outputSize) {\n return null;\n }\n var result = [];\n instructions.forEach(function (instruction) {\n var statementBuilder = new ExpressionBuilderVisitor();\n instruction.visit(statementBuilder);\n result.push(statementBuilder.toString());\n });\n stack.forEach(function (expr, i) {\n var statementBuilder = new ExpressionBuilderVisitor();\n expr.visit(statementBuilder);\n var min = range[i * 2],\n max = range[i * 2 + 1];\n var out = [statementBuilder.toString()];\n if (min > expr.min) {\n out.unshift('Math.max(', min, ', ');\n out.push(')');\n }\n if (max < expr.max) {\n out.unshift('Math.min(', max, ', ');\n out.push(')');\n }\n out.unshift('dest[destOffset + ', i, '] = ');\n out.push(';');\n result.push(out.join(''));\n });\n return result.join('\\n');\n }\n };\n return PostScriptCompiler;\n}();\nexports.isPDFFunction = isPDFFunction;\nexports.PDFFunction = PDFFunction;\nexports.PostScriptEvaluator = PostScriptEvaluator;\nexports.PostScriptCompiler = PostScriptCompiler;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getLookupTableFactory = __w_pdfjs_require__(0).getLookupTableFactory;\nvar getGlyphsUnicode = getLookupTableFactory(function (t) {\n t['A'] = 0x0041;\n t['AE'] = 0x00C6;\n t['AEacute'] = 0x01FC;\n t['AEmacron'] = 0x01E2;\n t['AEsmall'] = 0xF7E6;\n t['Aacute'] = 0x00C1;\n t['Aacutesmall'] = 0xF7E1;\n t['Abreve'] = 0x0102;\n t['Abreveacute'] = 0x1EAE;\n t['Abrevecyrillic'] = 0x04D0;\n t['Abrevedotbelow'] = 0x1EB6;\n t['Abrevegrave'] = 0x1EB0;\n t['Abrevehookabove'] = 0x1EB2;\n t['Abrevetilde'] = 0x1EB4;\n t['Acaron'] = 0x01CD;\n t['Acircle'] = 0x24B6;\n t['Acircumflex'] = 0x00C2;\n t['Acircumflexacute'] = 0x1EA4;\n t['Acircumflexdotbelow'] = 0x1EAC;\n t['Acircumflexgrave'] = 0x1EA6;\n t['Acircumflexhookabove'] = 0x1EA8;\n t['Acircumflexsmall'] = 0xF7E2;\n t['Acircumflextilde'] = 0x1EAA;\n t['Acute'] = 0xF6C9;\n t['Acutesmall'] = 0xF7B4;\n t['Acyrillic'] = 0x0410;\n t['Adblgrave'] = 0x0200;\n t['Adieresis'] = 0x00C4;\n t['Adieresiscyrillic'] = 0x04D2;\n t['Adieresismacron'] = 0x01DE;\n t['Adieresissmall'] = 0xF7E4;\n t['Adotbelow'] = 0x1EA0;\n t['Adotmacron'] = 0x01E0;\n t['Agrave'] = 0x00C0;\n t['Agravesmall'] = 0xF7E0;\n t['Ahookabove'] = 0x1EA2;\n t['Aiecyrillic'] = 0x04D4;\n t['Ainvertedbreve'] = 0x0202;\n t['Alpha'] = 0x0391;\n t['Alphatonos'] = 0x0386;\n t['Amacron'] = 0x0100;\n t['Amonospace'] = 0xFF21;\n t['Aogonek'] = 0x0104;\n t['Aring'] = 0x00C5;\n t['Aringacute'] = 0x01FA;\n t['Aringbelow'] = 0x1E00;\n t['Aringsmall'] = 0xF7E5;\n t['Asmall'] = 0xF761;\n t['Atilde'] = 0x00C3;\n t['Atildesmall'] = 0xF7E3;\n t['Aybarmenian'] = 0x0531;\n t['B'] = 0x0042;\n t['Bcircle'] = 0x24B7;\n t['Bdotaccent'] = 0x1E02;\n t['Bdotbelow'] = 0x1E04;\n t['Becyrillic'] = 0x0411;\n t['Benarmenian'] = 0x0532;\n t['Beta'] = 0x0392;\n t['Bhook'] = 0x0181;\n t['Blinebelow'] = 0x1E06;\n t['Bmonospace'] = 0xFF22;\n t['Brevesmall'] = 0xF6F4;\n t['Bsmall'] = 0xF762;\n t['Btopbar'] = 0x0182;\n t['C'] = 0x0043;\n t['Caarmenian'] = 0x053E;\n t['Cacute'] = 0x0106;\n t['Caron'] = 0xF6CA;\n t['Caronsmall'] = 0xF6F5;\n t['Ccaron'] = 0x010C;\n t['Ccedilla'] = 0x00C7;\n t['Ccedillaacute'] = 0x1E08;\n t['Ccedillasmall'] = 0xF7E7;\n t['Ccircle'] = 0x24B8;\n t['Ccircumflex'] = 0x0108;\n t['Cdot'] = 0x010A;\n t['Cdotaccent'] = 0x010A;\n t['Cedillasmall'] = 0xF7B8;\n t['Chaarmenian'] = 0x0549;\n t['Cheabkhasiancyrillic'] = 0x04BC;\n t['Checyrillic'] = 0x0427;\n t['Chedescenderabkhasiancyrillic'] = 0x04BE;\n t['Chedescendercyrillic'] = 0x04B6;\n t['Chedieresiscyrillic'] = 0x04F4;\n t['Cheharmenian'] = 0x0543;\n t['Chekhakassiancyrillic'] = 0x04CB;\n t['Cheverticalstrokecyrillic'] = 0x04B8;\n t['Chi'] = 0x03A7;\n t['Chook'] = 0x0187;\n t['Circumflexsmall'] = 0xF6F6;\n t['Cmonospace'] = 0xFF23;\n t['Coarmenian'] = 0x0551;\n t['Csmall'] = 0xF763;\n t['D'] = 0x0044;\n t['DZ'] = 0x01F1;\n t['DZcaron'] = 0x01C4;\n t['Daarmenian'] = 0x0534;\n t['Dafrican'] = 0x0189;\n t['Dcaron'] = 0x010E;\n t['Dcedilla'] = 0x1E10;\n t['Dcircle'] = 0x24B9;\n t['Dcircumflexbelow'] = 0x1E12;\n t['Dcroat'] = 0x0110;\n t['Ddotaccent'] = 0x1E0A;\n t['Ddotbelow'] = 0x1E0C;\n t['Decyrillic'] = 0x0414;\n t['Deicoptic'] = 0x03EE;\n t['Delta'] = 0x2206;\n t['Deltagreek'] = 0x0394;\n t['Dhook'] = 0x018A;\n t['Dieresis'] = 0xF6CB;\n t['DieresisAcute'] = 0xF6CC;\n t['DieresisGrave'] = 0xF6CD;\n t['Dieresissmall'] = 0xF7A8;\n t['Digammagreek'] = 0x03DC;\n t['Djecyrillic'] = 0x0402;\n t['Dlinebelow'] = 0x1E0E;\n t['Dmonospace'] = 0xFF24;\n t['Dotaccentsmall'] = 0xF6F7;\n t['Dslash'] = 0x0110;\n t['Dsmall'] = 0xF764;\n t['Dtopbar'] = 0x018B;\n t['Dz'] = 0x01F2;\n t['Dzcaron'] = 0x01C5;\n t['Dzeabkhasiancyrillic'] = 0x04E0;\n t['Dzecyrillic'] = 0x0405;\n t['Dzhecyrillic'] = 0x040F;\n t['E'] = 0x0045;\n t['Eacute'] = 0x00C9;\n t['Eacutesmall'] = 0xF7E9;\n t['Ebreve'] = 0x0114;\n t['Ecaron'] = 0x011A;\n t['Ecedillabreve'] = 0x1E1C;\n t['Echarmenian'] = 0x0535;\n t['Ecircle'] = 0x24BA;\n t['Ecircumflex'] = 0x00CA;\n t['Ecircumflexacute'] = 0x1EBE;\n t['Ecircumflexbelow'] = 0x1E18;\n t['Ecircumflexdotbelow'] = 0x1EC6;\n t['Ecircumflexgrave'] = 0x1EC0;\n t['Ecircumflexhookabove'] = 0x1EC2;\n t['Ecircumflexsmall'] = 0xF7EA;\n t['Ecircumflextilde'] = 0x1EC4;\n t['Ecyrillic'] = 0x0404;\n t['Edblgrave'] = 0x0204;\n t['Edieresis'] = 0x00CB;\n t['Edieresissmall'] = 0xF7EB;\n t['Edot'] = 0x0116;\n t['Edotaccent'] = 0x0116;\n t['Edotbelow'] = 0x1EB8;\n t['Efcyrillic'] = 0x0424;\n t['Egrave'] = 0x00C8;\n t['Egravesmall'] = 0xF7E8;\n t['Eharmenian'] = 0x0537;\n t['Ehookabove'] = 0x1EBA;\n t['Eightroman'] = 0x2167;\n t['Einvertedbreve'] = 0x0206;\n t['Eiotifiedcyrillic'] = 0x0464;\n t['Elcyrillic'] = 0x041B;\n t['Elevenroman'] = 0x216A;\n t['Emacron'] = 0x0112;\n t['Emacronacute'] = 0x1E16;\n t['Emacrongrave'] = 0x1E14;\n t['Emcyrillic'] = 0x041C;\n t['Emonospace'] = 0xFF25;\n t['Encyrillic'] = 0x041D;\n t['Endescendercyrillic'] = 0x04A2;\n t['Eng'] = 0x014A;\n t['Enghecyrillic'] = 0x04A4;\n t['Enhookcyrillic'] = 0x04C7;\n t['Eogonek'] = 0x0118;\n t['Eopen'] = 0x0190;\n t['Epsilon'] = 0x0395;\n t['Epsilontonos'] = 0x0388;\n t['Ercyrillic'] = 0x0420;\n t['Ereversed'] = 0x018E;\n t['Ereversedcyrillic'] = 0x042D;\n t['Escyrillic'] = 0x0421;\n t['Esdescendercyrillic'] = 0x04AA;\n t['Esh'] = 0x01A9;\n t['Esmall'] = 0xF765;\n t['Eta'] = 0x0397;\n t['Etarmenian'] = 0x0538;\n t['Etatonos'] = 0x0389;\n t['Eth'] = 0x00D0;\n t['Ethsmall'] = 0xF7F0;\n t['Etilde'] = 0x1EBC;\n t['Etildebelow'] = 0x1E1A;\n t['Euro'] = 0x20AC;\n t['Ezh'] = 0x01B7;\n t['Ezhcaron'] = 0x01EE;\n t['Ezhreversed'] = 0x01B8;\n t['F'] = 0x0046;\n t['Fcircle'] = 0x24BB;\n t['Fdotaccent'] = 0x1E1E;\n t['Feharmenian'] = 0x0556;\n t['Feicoptic'] = 0x03E4;\n t['Fhook'] = 0x0191;\n t['Fitacyrillic'] = 0x0472;\n t['Fiveroman'] = 0x2164;\n t['Fmonospace'] = 0xFF26;\n t['Fourroman'] = 0x2163;\n t['Fsmall'] = 0xF766;\n t['G'] = 0x0047;\n t['GBsquare'] = 0x3387;\n t['Gacute'] = 0x01F4;\n t['Gamma'] = 0x0393;\n t['Gammaafrican'] = 0x0194;\n t['Gangiacoptic'] = 0x03EA;\n t['Gbreve'] = 0x011E;\n t['Gcaron'] = 0x01E6;\n t['Gcedilla'] = 0x0122;\n t['Gcircle'] = 0x24BC;\n t['Gcircumflex'] = 0x011C;\n t['Gcommaaccent'] = 0x0122;\n t['Gdot'] = 0x0120;\n t['Gdotaccent'] = 0x0120;\n t['Gecyrillic'] = 0x0413;\n t['Ghadarmenian'] = 0x0542;\n t['Ghemiddlehookcyrillic'] = 0x0494;\n t['Ghestrokecyrillic'] = 0x0492;\n t['Gheupturncyrillic'] = 0x0490;\n t['Ghook'] = 0x0193;\n t['Gimarmenian'] = 0x0533;\n t['Gjecyrillic'] = 0x0403;\n t['Gmacron'] = 0x1E20;\n t['Gmonospace'] = 0xFF27;\n t['Grave'] = 0xF6CE;\n t['Gravesmall'] = 0xF760;\n t['Gsmall'] = 0xF767;\n t['Gsmallhook'] = 0x029B;\n t['Gstroke'] = 0x01E4;\n t['H'] = 0x0048;\n t['H18533'] = 0x25CF;\n t['H18543'] = 0x25AA;\n t['H18551'] = 0x25AB;\n t['H22073'] = 0x25A1;\n t['HPsquare'] = 0x33CB;\n t['Haabkhasiancyrillic'] = 0x04A8;\n t['Hadescendercyrillic'] = 0x04B2;\n t['Hardsigncyrillic'] = 0x042A;\n t['Hbar'] = 0x0126;\n t['Hbrevebelow'] = 0x1E2A;\n t['Hcedilla'] = 0x1E28;\n t['Hcircle'] = 0x24BD;\n t['Hcircumflex'] = 0x0124;\n t['Hdieresis'] = 0x1E26;\n t['Hdotaccent'] = 0x1E22;\n t['Hdotbelow'] = 0x1E24;\n t['Hmonospace'] = 0xFF28;\n t['Hoarmenian'] = 0x0540;\n t['Horicoptic'] = 0x03E8;\n t['Hsmall'] = 0xF768;\n t['Hungarumlaut'] = 0xF6CF;\n t['Hungarumlautsmall'] = 0xF6F8;\n t['Hzsquare'] = 0x3390;\n t['I'] = 0x0049;\n t['IAcyrillic'] = 0x042F;\n t['IJ'] = 0x0132;\n t['IUcyrillic'] = 0x042E;\n t['Iacute'] = 0x00CD;\n t['Iacutesmall'] = 0xF7ED;\n t['Ibreve'] = 0x012C;\n t['Icaron'] = 0x01CF;\n t['Icircle'] = 0x24BE;\n t['Icircumflex'] = 0x00CE;\n t['Icircumflexsmall'] = 0xF7EE;\n t['Icyrillic'] = 0x0406;\n t['Idblgrave'] = 0x0208;\n t['Idieresis'] = 0x00CF;\n t['Idieresisacute'] = 0x1E2E;\n t['Idieresiscyrillic'] = 0x04E4;\n t['Idieresissmall'] = 0xF7EF;\n t['Idot'] = 0x0130;\n t['Idotaccent'] = 0x0130;\n t['Idotbelow'] = 0x1ECA;\n t['Iebrevecyrillic'] = 0x04D6;\n t['Iecyrillic'] = 0x0415;\n t['Ifraktur'] = 0x2111;\n t['Igrave'] = 0x00CC;\n t['Igravesmall'] = 0xF7EC;\n t['Ihookabove'] = 0x1EC8;\n t['Iicyrillic'] = 0x0418;\n t['Iinvertedbreve'] = 0x020A;\n t['Iishortcyrillic'] = 0x0419;\n t['Imacron'] = 0x012A;\n t['Imacroncyrillic'] = 0x04E2;\n t['Imonospace'] = 0xFF29;\n t['Iniarmenian'] = 0x053B;\n t['Iocyrillic'] = 0x0401;\n t['Iogonek'] = 0x012E;\n t['Iota'] = 0x0399;\n t['Iotaafrican'] = 0x0196;\n t['Iotadieresis'] = 0x03AA;\n t['Iotatonos'] = 0x038A;\n t['Ismall'] = 0xF769;\n t['Istroke'] = 0x0197;\n t['Itilde'] = 0x0128;\n t['Itildebelow'] = 0x1E2C;\n t['Izhitsacyrillic'] = 0x0474;\n t['Izhitsadblgravecyrillic'] = 0x0476;\n t['J'] = 0x004A;\n t['Jaarmenian'] = 0x0541;\n t['Jcircle'] = 0x24BF;\n t['Jcircumflex'] = 0x0134;\n t['Jecyrillic'] = 0x0408;\n t['Jheharmenian'] = 0x054B;\n t['Jmonospace'] = 0xFF2A;\n t['Jsmall'] = 0xF76A;\n t['K'] = 0x004B;\n t['KBsquare'] = 0x3385;\n t['KKsquare'] = 0x33CD;\n t['Kabashkircyrillic'] = 0x04A0;\n t['Kacute'] = 0x1E30;\n t['Kacyrillic'] = 0x041A;\n t['Kadescendercyrillic'] = 0x049A;\n t['Kahookcyrillic'] = 0x04C3;\n t['Kappa'] = 0x039A;\n t['Kastrokecyrillic'] = 0x049E;\n t['Kaverticalstrokecyrillic'] = 0x049C;\n t['Kcaron'] = 0x01E8;\n t['Kcedilla'] = 0x0136;\n t['Kcircle'] = 0x24C0;\n t['Kcommaaccent'] = 0x0136;\n t['Kdotbelow'] = 0x1E32;\n t['Keharmenian'] = 0x0554;\n t['Kenarmenian'] = 0x053F;\n t['Khacyrillic'] = 0x0425;\n t['Kheicoptic'] = 0x03E6;\n t['Khook'] = 0x0198;\n t['Kjecyrillic'] = 0x040C;\n t['Klinebelow'] = 0x1E34;\n t['Kmonospace'] = 0xFF2B;\n t['Koppacyrillic'] = 0x0480;\n t['Koppagreek'] = 0x03DE;\n t['Ksicyrillic'] = 0x046E;\n t['Ksmall'] = 0xF76B;\n t['L'] = 0x004C;\n t['LJ'] = 0x01C7;\n t['LL'] = 0xF6BF;\n t['Lacute'] = 0x0139;\n t['Lambda'] = 0x039B;\n t['Lcaron'] = 0x013D;\n t['Lcedilla'] = 0x013B;\n t['Lcircle'] = 0x24C1;\n t['Lcircumflexbelow'] = 0x1E3C;\n t['Lcommaaccent'] = 0x013B;\n t['Ldot'] = 0x013F;\n t['Ldotaccent'] = 0x013F;\n t['Ldotbelow'] = 0x1E36;\n t['Ldotbelowmacron'] = 0x1E38;\n t['Liwnarmenian'] = 0x053C;\n t['Lj'] = 0x01C8;\n t['Ljecyrillic'] = 0x0409;\n t['Llinebelow'] = 0x1E3A;\n t['Lmonospace'] = 0xFF2C;\n t['Lslash'] = 0x0141;\n t['Lslashsmall'] = 0xF6F9;\n t['Lsmall'] = 0xF76C;\n t['M'] = 0x004D;\n t['MBsquare'] = 0x3386;\n t['Macron'] = 0xF6D0;\n t['Macronsmall'] = 0xF7AF;\n t['Macute'] = 0x1E3E;\n t['Mcircle'] = 0x24C2;\n t['Mdotaccent'] = 0x1E40;\n t['Mdotbelow'] = 0x1E42;\n t['Menarmenian'] = 0x0544;\n t['Mmonospace'] = 0xFF2D;\n t['Msmall'] = 0xF76D;\n t['Mturned'] = 0x019C;\n t['Mu'] = 0x039C;\n t['N'] = 0x004E;\n t['NJ'] = 0x01CA;\n t['Nacute'] = 0x0143;\n t['Ncaron'] = 0x0147;\n t['Ncedilla'] = 0x0145;\n t['Ncircle'] = 0x24C3;\n t['Ncircumflexbelow'] = 0x1E4A;\n t['Ncommaaccent'] = 0x0145;\n t['Ndotaccent'] = 0x1E44;\n t['Ndotbelow'] = 0x1E46;\n t['Nhookleft'] = 0x019D;\n t['Nineroman'] = 0x2168;\n t['Nj'] = 0x01CB;\n t['Njecyrillic'] = 0x040A;\n t['Nlinebelow'] = 0x1E48;\n t['Nmonospace'] = 0xFF2E;\n t['Nowarmenian'] = 0x0546;\n t['Nsmall'] = 0xF76E;\n t['Ntilde'] = 0x00D1;\n t['Ntildesmall'] = 0xF7F1;\n t['Nu'] = 0x039D;\n t['O'] = 0x004F;\n t['OE'] = 0x0152;\n t['OEsmall'] = 0xF6FA;\n t['Oacute'] = 0x00D3;\n t['Oacutesmall'] = 0xF7F3;\n t['Obarredcyrillic'] = 0x04E8;\n t['Obarreddieresiscyrillic'] = 0x04EA;\n t['Obreve'] = 0x014E;\n t['Ocaron'] = 0x01D1;\n t['Ocenteredtilde'] = 0x019F;\n t['Ocircle'] = 0x24C4;\n t['Ocircumflex'] = 0x00D4;\n t['Ocircumflexacute'] = 0x1ED0;\n t['Ocircumflexdotbelow'] = 0x1ED8;\n t['Ocircumflexgrave'] = 0x1ED2;\n t['Ocircumflexhookabove'] = 0x1ED4;\n t['Ocircumflexsmall'] = 0xF7F4;\n t['Ocircumflextilde'] = 0x1ED6;\n t['Ocyrillic'] = 0x041E;\n t['Odblacute'] = 0x0150;\n t['Odblgrave'] = 0x020C;\n t['Odieresis'] = 0x00D6;\n t['Odieresiscyrillic'] = 0x04E6;\n t['Odieresissmall'] = 0xF7F6;\n t['Odotbelow'] = 0x1ECC;\n t['Ogoneksmall'] = 0xF6FB;\n t['Ograve'] = 0x00D2;\n t['Ogravesmall'] = 0xF7F2;\n t['Oharmenian'] = 0x0555;\n t['Ohm'] = 0x2126;\n t['Ohookabove'] = 0x1ECE;\n t['Ohorn'] = 0x01A0;\n t['Ohornacute'] = 0x1EDA;\n t['Ohorndotbelow'] = 0x1EE2;\n t['Ohorngrave'] = 0x1EDC;\n t['Ohornhookabove'] = 0x1EDE;\n t['Ohorntilde'] = 0x1EE0;\n t['Ohungarumlaut'] = 0x0150;\n t['Oi'] = 0x01A2;\n t['Oinvertedbreve'] = 0x020E;\n t['Omacron'] = 0x014C;\n t['Omacronacute'] = 0x1E52;\n t['Omacrongrave'] = 0x1E50;\n t['Omega'] = 0x2126;\n t['Omegacyrillic'] = 0x0460;\n t['Omegagreek'] = 0x03A9;\n t['Omegaroundcyrillic'] = 0x047A;\n t['Omegatitlocyrillic'] = 0x047C;\n t['Omegatonos'] = 0x038F;\n t['Omicron'] = 0x039F;\n t['Omicrontonos'] = 0x038C;\n t['Omonospace'] = 0xFF2F;\n t['Oneroman'] = 0x2160;\n t['Oogonek'] = 0x01EA;\n t['Oogonekmacron'] = 0x01EC;\n t['Oopen'] = 0x0186;\n t['Oslash'] = 0x00D8;\n t['Oslashacute'] = 0x01FE;\n t['Oslashsmall'] = 0xF7F8;\n t['Osmall'] = 0xF76F;\n t['Ostrokeacute'] = 0x01FE;\n t['Otcyrillic'] = 0x047E;\n t['Otilde'] = 0x00D5;\n t['Otildeacute'] = 0x1E4C;\n t['Otildedieresis'] = 0x1E4E;\n t['Otildesmall'] = 0xF7F5;\n t['P'] = 0x0050;\n t['Pacute'] = 0x1E54;\n t['Pcircle'] = 0x24C5;\n t['Pdotaccent'] = 0x1E56;\n t['Pecyrillic'] = 0x041F;\n t['Peharmenian'] = 0x054A;\n t['Pemiddlehookcyrillic'] = 0x04A6;\n t['Phi'] = 0x03A6;\n t['Phook'] = 0x01A4;\n t['Pi'] = 0x03A0;\n t['Piwrarmenian'] = 0x0553;\n t['Pmonospace'] = 0xFF30;\n t['Psi'] = 0x03A8;\n t['Psicyrillic'] = 0x0470;\n t['Psmall'] = 0xF770;\n t['Q'] = 0x0051;\n t['Qcircle'] = 0x24C6;\n t['Qmonospace'] = 0xFF31;\n t['Qsmall'] = 0xF771;\n t['R'] = 0x0052;\n t['Raarmenian'] = 0x054C;\n t['Racute'] = 0x0154;\n t['Rcaron'] = 0x0158;\n t['Rcedilla'] = 0x0156;\n t['Rcircle'] = 0x24C7;\n t['Rcommaaccent'] = 0x0156;\n t['Rdblgrave'] = 0x0210;\n t['Rdotaccent'] = 0x1E58;\n t['Rdotbelow'] = 0x1E5A;\n t['Rdotbelowmacron'] = 0x1E5C;\n t['Reharmenian'] = 0x0550;\n t['Rfraktur'] = 0x211C;\n t['Rho'] = 0x03A1;\n t['Ringsmall'] = 0xF6FC;\n t['Rinvertedbreve'] = 0x0212;\n t['Rlinebelow'] = 0x1E5E;\n t['Rmonospace'] = 0xFF32;\n t['Rsmall'] = 0xF772;\n t['Rsmallinverted'] = 0x0281;\n t['Rsmallinvertedsuperior'] = 0x02B6;\n t['S'] = 0x0053;\n t['SF010000'] = 0x250C;\n t['SF020000'] = 0x2514;\n t['SF030000'] = 0x2510;\n t['SF040000'] = 0x2518;\n t['SF050000'] = 0x253C;\n t['SF060000'] = 0x252C;\n t['SF070000'] = 0x2534;\n t['SF080000'] = 0x251C;\n t['SF090000'] = 0x2524;\n t['SF100000'] = 0x2500;\n t['SF110000'] = 0x2502;\n t['SF190000'] = 0x2561;\n t['SF200000'] = 0x2562;\n t['SF210000'] = 0x2556;\n t['SF220000'] = 0x2555;\n t['SF230000'] = 0x2563;\n t['SF240000'] = 0x2551;\n t['SF250000'] = 0x2557;\n t['SF260000'] = 0x255D;\n t['SF270000'] = 0x255C;\n t['SF280000'] = 0x255B;\n t['SF360000'] = 0x255E;\n t['SF370000'] = 0x255F;\n t['SF380000'] = 0x255A;\n t['SF390000'] = 0x2554;\n t['SF400000'] = 0x2569;\n t['SF410000'] = 0x2566;\n t['SF420000'] = 0x2560;\n t['SF430000'] = 0x2550;\n t['SF440000'] = 0x256C;\n t['SF450000'] = 0x2567;\n t['SF460000'] = 0x2568;\n t['SF470000'] = 0x2564;\n t['SF480000'] = 0x2565;\n t['SF490000'] = 0x2559;\n t['SF500000'] = 0x2558;\n t['SF510000'] = 0x2552;\n t['SF520000'] = 0x2553;\n t['SF530000'] = 0x256B;\n t['SF540000'] = 0x256A;\n t['Sacute'] = 0x015A;\n t['Sacutedotaccent'] = 0x1E64;\n t['Sampigreek'] = 0x03E0;\n t['Scaron'] = 0x0160;\n t['Scarondotaccent'] = 0x1E66;\n t['Scaronsmall'] = 0xF6FD;\n t['Scedilla'] = 0x015E;\n t['Schwa'] = 0x018F;\n t['Schwacyrillic'] = 0x04D8;\n t['Schwadieresiscyrillic'] = 0x04DA;\n t['Scircle'] = 0x24C8;\n t['Scircumflex'] = 0x015C;\n t['Scommaaccent'] = 0x0218;\n t['Sdotaccent'] = 0x1E60;\n t['Sdotbelow'] = 0x1E62;\n t['Sdotbelowdotaccent'] = 0x1E68;\n t['Seharmenian'] = 0x054D;\n t['Sevenroman'] = 0x2166;\n t['Shaarmenian'] = 0x0547;\n t['Shacyrillic'] = 0x0428;\n t['Shchacyrillic'] = 0x0429;\n t['Sheicoptic'] = 0x03E2;\n t['Shhacyrillic'] = 0x04BA;\n t['Shimacoptic'] = 0x03EC;\n t['Sigma'] = 0x03A3;\n t['Sixroman'] = 0x2165;\n t['Smonospace'] = 0xFF33;\n t['Softsigncyrillic'] = 0x042C;\n t['Ssmall'] = 0xF773;\n t['Stigmagreek'] = 0x03DA;\n t['T'] = 0x0054;\n t['Tau'] = 0x03A4;\n t['Tbar'] = 0x0166;\n t['Tcaron'] = 0x0164;\n t['Tcedilla'] = 0x0162;\n t['Tcircle'] = 0x24C9;\n t['Tcircumflexbelow'] = 0x1E70;\n t['Tcommaaccent'] = 0x0162;\n t['Tdotaccent'] = 0x1E6A;\n t['Tdotbelow'] = 0x1E6C;\n t['Tecyrillic'] = 0x0422;\n t['Tedescendercyrillic'] = 0x04AC;\n t['Tenroman'] = 0x2169;\n t['Tetsecyrillic'] = 0x04B4;\n t['Theta'] = 0x0398;\n t['Thook'] = 0x01AC;\n t['Thorn'] = 0x00DE;\n t['Thornsmall'] = 0xF7FE;\n t['Threeroman'] = 0x2162;\n t['Tildesmall'] = 0xF6FE;\n t['Tiwnarmenian'] = 0x054F;\n t['Tlinebelow'] = 0x1E6E;\n t['Tmonospace'] = 0xFF34;\n t['Toarmenian'] = 0x0539;\n t['Tonefive'] = 0x01BC;\n t['Tonesix'] = 0x0184;\n t['Tonetwo'] = 0x01A7;\n t['Tretroflexhook'] = 0x01AE;\n t['Tsecyrillic'] = 0x0426;\n t['Tshecyrillic'] = 0x040B;\n t['Tsmall'] = 0xF774;\n t['Twelveroman'] = 0x216B;\n t['Tworoman'] = 0x2161;\n t['U'] = 0x0055;\n t['Uacute'] = 0x00DA;\n t['Uacutesmall'] = 0xF7FA;\n t['Ubreve'] = 0x016C;\n t['Ucaron'] = 0x01D3;\n t['Ucircle'] = 0x24CA;\n t['Ucircumflex'] = 0x00DB;\n t['Ucircumflexbelow'] = 0x1E76;\n t['Ucircumflexsmall'] = 0xF7FB;\n t['Ucyrillic'] = 0x0423;\n t['Udblacute'] = 0x0170;\n t['Udblgrave'] = 0x0214;\n t['Udieresis'] = 0x00DC;\n t['Udieresisacute'] = 0x01D7;\n t['Udieresisbelow'] = 0x1E72;\n t['Udieresiscaron'] = 0x01D9;\n t['Udieresiscyrillic'] = 0x04F0;\n t['Udieresisgrave'] = 0x01DB;\n t['Udieresismacron'] = 0x01D5;\n t['Udieresissmall'] = 0xF7FC;\n t['Udotbelow'] = 0x1EE4;\n t['Ugrave'] = 0x00D9;\n t['Ugravesmall'] = 0xF7F9;\n t['Uhookabove'] = 0x1EE6;\n t['Uhorn'] = 0x01AF;\n t['Uhornacute'] = 0x1EE8;\n t['Uhorndotbelow'] = 0x1EF0;\n t['Uhorngrave'] = 0x1EEA;\n t['Uhornhookabove'] = 0x1EEC;\n t['Uhorntilde'] = 0x1EEE;\n t['Uhungarumlaut'] = 0x0170;\n t['Uhungarumlautcyrillic'] = 0x04F2;\n t['Uinvertedbreve'] = 0x0216;\n t['Ukcyrillic'] = 0x0478;\n t['Umacron'] = 0x016A;\n t['Umacroncyrillic'] = 0x04EE;\n t['Umacrondieresis'] = 0x1E7A;\n t['Umonospace'] = 0xFF35;\n t['Uogonek'] = 0x0172;\n t['Upsilon'] = 0x03A5;\n t['Upsilon1'] = 0x03D2;\n t['Upsilonacutehooksymbolgreek'] = 0x03D3;\n t['Upsilonafrican'] = 0x01B1;\n t['Upsilondieresis'] = 0x03AB;\n t['Upsilondieresishooksymbolgreek'] = 0x03D4;\n t['Upsilonhooksymbol'] = 0x03D2;\n t['Upsilontonos'] = 0x038E;\n t['Uring'] = 0x016E;\n t['Ushortcyrillic'] = 0x040E;\n t['Usmall'] = 0xF775;\n t['Ustraightcyrillic'] = 0x04AE;\n t['Ustraightstrokecyrillic'] = 0x04B0;\n t['Utilde'] = 0x0168;\n t['Utildeacute'] = 0x1E78;\n t['Utildebelow'] = 0x1E74;\n t['V'] = 0x0056;\n t['Vcircle'] = 0x24CB;\n t['Vdotbelow'] = 0x1E7E;\n t['Vecyrillic'] = 0x0412;\n t['Vewarmenian'] = 0x054E;\n t['Vhook'] = 0x01B2;\n t['Vmonospace'] = 0xFF36;\n t['Voarmenian'] = 0x0548;\n t['Vsmall'] = 0xF776;\n t['Vtilde'] = 0x1E7C;\n t['W'] = 0x0057;\n t['Wacute'] = 0x1E82;\n t['Wcircle'] = 0x24CC;\n t['Wcircumflex'] = 0x0174;\n t['Wdieresis'] = 0x1E84;\n t['Wdotaccent'] = 0x1E86;\n t['Wdotbelow'] = 0x1E88;\n t['Wgrave'] = 0x1E80;\n t['Wmonospace'] = 0xFF37;\n t['Wsmall'] = 0xF777;\n t['X'] = 0x0058;\n t['Xcircle'] = 0x24CD;\n t['Xdieresis'] = 0x1E8C;\n t['Xdotaccent'] = 0x1E8A;\n t['Xeharmenian'] = 0x053D;\n t['Xi'] = 0x039E;\n t['Xmonospace'] = 0xFF38;\n t['Xsmall'] = 0xF778;\n t['Y'] = 0x0059;\n t['Yacute'] = 0x00DD;\n t['Yacutesmall'] = 0xF7FD;\n t['Yatcyrillic'] = 0x0462;\n t['Ycircle'] = 0x24CE;\n t['Ycircumflex'] = 0x0176;\n t['Ydieresis'] = 0x0178;\n t['Ydieresissmall'] = 0xF7FF;\n t['Ydotaccent'] = 0x1E8E;\n t['Ydotbelow'] = 0x1EF4;\n t['Yericyrillic'] = 0x042B;\n t['Yerudieresiscyrillic'] = 0x04F8;\n t['Ygrave'] = 0x1EF2;\n t['Yhook'] = 0x01B3;\n t['Yhookabove'] = 0x1EF6;\n t['Yiarmenian'] = 0x0545;\n t['Yicyrillic'] = 0x0407;\n t['Yiwnarmenian'] = 0x0552;\n t['Ymonospace'] = 0xFF39;\n t['Ysmall'] = 0xF779;\n t['Ytilde'] = 0x1EF8;\n t['Yusbigcyrillic'] = 0x046A;\n t['Yusbigiotifiedcyrillic'] = 0x046C;\n t['Yuslittlecyrillic'] = 0x0466;\n t['Yuslittleiotifiedcyrillic'] = 0x0468;\n t['Z'] = 0x005A;\n t['Zaarmenian'] = 0x0536;\n t['Zacute'] = 0x0179;\n t['Zcaron'] = 0x017D;\n t['Zcaronsmall'] = 0xF6FF;\n t['Zcircle'] = 0x24CF;\n t['Zcircumflex'] = 0x1E90;\n t['Zdot'] = 0x017B;\n t['Zdotaccent'] = 0x017B;\n t['Zdotbelow'] = 0x1E92;\n t['Zecyrillic'] = 0x0417;\n t['Zedescendercyrillic'] = 0x0498;\n t['Zedieresiscyrillic'] = 0x04DE;\n t['Zeta'] = 0x0396;\n t['Zhearmenian'] = 0x053A;\n t['Zhebrevecyrillic'] = 0x04C1;\n t['Zhecyrillic'] = 0x0416;\n t['Zhedescendercyrillic'] = 0x0496;\n t['Zhedieresiscyrillic'] = 0x04DC;\n t['Zlinebelow'] = 0x1E94;\n t['Zmonospace'] = 0xFF3A;\n t['Zsmall'] = 0xF77A;\n t['Zstroke'] = 0x01B5;\n t['a'] = 0x0061;\n t['aabengali'] = 0x0986;\n t['aacute'] = 0x00E1;\n t['aadeva'] = 0x0906;\n t['aagujarati'] = 0x0A86;\n t['aagurmukhi'] = 0x0A06;\n t['aamatragurmukhi'] = 0x0A3E;\n t['aarusquare'] = 0x3303;\n t['aavowelsignbengali'] = 0x09BE;\n t['aavowelsigndeva'] = 0x093E;\n t['aavowelsigngujarati'] = 0x0ABE;\n t['abbreviationmarkarmenian'] = 0x055F;\n t['abbreviationsigndeva'] = 0x0970;\n t['abengali'] = 0x0985;\n t['abopomofo'] = 0x311A;\n t['abreve'] = 0x0103;\n t['abreveacute'] = 0x1EAF;\n t['abrevecyrillic'] = 0x04D1;\n t['abrevedotbelow'] = 0x1EB7;\n t['abrevegrave'] = 0x1EB1;\n t['abrevehookabove'] = 0x1EB3;\n t['abrevetilde'] = 0x1EB5;\n t['acaron'] = 0x01CE;\n t['acircle'] = 0x24D0;\n t['acircumflex'] = 0x00E2;\n t['acircumflexacute'] = 0x1EA5;\n t['acircumflexdotbelow'] = 0x1EAD;\n t['acircumflexgrave'] = 0x1EA7;\n t['acircumflexhookabove'] = 0x1EA9;\n t['acircumflextilde'] = 0x1EAB;\n t['acute'] = 0x00B4;\n t['acutebelowcmb'] = 0x0317;\n t['acutecmb'] = 0x0301;\n t['acutecomb'] = 0x0301;\n t['acutedeva'] = 0x0954;\n t['acutelowmod'] = 0x02CF;\n t['acutetonecmb'] = 0x0341;\n t['acyrillic'] = 0x0430;\n t['adblgrave'] = 0x0201;\n t['addakgurmukhi'] = 0x0A71;\n t['adeva'] = 0x0905;\n t['adieresis'] = 0x00E4;\n t['adieresiscyrillic'] = 0x04D3;\n t['adieresismacron'] = 0x01DF;\n t['adotbelow'] = 0x1EA1;\n t['adotmacron'] = 0x01E1;\n t['ae'] = 0x00E6;\n t['aeacute'] = 0x01FD;\n t['aekorean'] = 0x3150;\n t['aemacron'] = 0x01E3;\n t['afii00208'] = 0x2015;\n t['afii08941'] = 0x20A4;\n t['afii10017'] = 0x0410;\n t['afii10018'] = 0x0411;\n t['afii10019'] = 0x0412;\n t['afii10020'] = 0x0413;\n t['afii10021'] = 0x0414;\n t['afii10022'] = 0x0415;\n t['afii10023'] = 0x0401;\n t['afii10024'] = 0x0416;\n t['afii10025'] = 0x0417;\n t['afii10026'] = 0x0418;\n t['afii10027'] = 0x0419;\n t['afii10028'] = 0x041A;\n t['afii10029'] = 0x041B;\n t['afii10030'] = 0x041C;\n t['afii10031'] = 0x041D;\n t['afii10032'] = 0x041E;\n t['afii10033'] = 0x041F;\n t['afii10034'] = 0x0420;\n t['afii10035'] = 0x0421;\n t['afii10036'] = 0x0422;\n t['afii10037'] = 0x0423;\n t['afii10038'] = 0x0424;\n t['afii10039'] = 0x0425;\n t['afii10040'] = 0x0426;\n t['afii10041'] = 0x0427;\n t['afii10042'] = 0x0428;\n t['afii10043'] = 0x0429;\n t['afii10044'] = 0x042A;\n t['afii10045'] = 0x042B;\n t['afii10046'] = 0x042C;\n t['afii10047'] = 0x042D;\n t['afii10048'] = 0x042E;\n t['afii10049'] = 0x042F;\n t['afii10050'] = 0x0490;\n t['afii10051'] = 0x0402;\n t['afii10052'] = 0x0403;\n t['afii10053'] = 0x0404;\n t['afii10054'] = 0x0405;\n t['afii10055'] = 0x0406;\n t['afii10056'] = 0x0407;\n t['afii10057'] = 0x0408;\n t['afii10058'] = 0x0409;\n t['afii10059'] = 0x040A;\n t['afii10060'] = 0x040B;\n t['afii10061'] = 0x040C;\n t['afii10062'] = 0x040E;\n t['afii10063'] = 0xF6C4;\n t['afii10064'] = 0xF6C5;\n t['afii10065'] = 0x0430;\n t['afii10066'] = 0x0431;\n t['afii10067'] = 0x0432;\n t['afii10068'] = 0x0433;\n t['afii10069'] = 0x0434;\n t['afii10070'] = 0x0435;\n t['afii10071'] = 0x0451;\n t['afii10072'] = 0x0436;\n t['afii10073'] = 0x0437;\n t['afii10074'] = 0x0438;\n t['afii10075'] = 0x0439;\n t['afii10076'] = 0x043A;\n t['afii10077'] = 0x043B;\n t['afii10078'] = 0x043C;\n t['afii10079'] = 0x043D;\n t['afii10080'] = 0x043E;\n t['afii10081'] = 0x043F;\n t['afii10082'] = 0x0440;\n t['afii10083'] = 0x0441;\n t['afii10084'] = 0x0442;\n t['afii10085'] = 0x0443;\n t['afii10086'] = 0x0444;\n t['afii10087'] = 0x0445;\n t['afii10088'] = 0x0446;\n t['afii10089'] = 0x0447;\n t['afii10090'] = 0x0448;\n t['afii10091'] = 0x0449;\n t['afii10092'] = 0x044A;\n t['afii10093'] = 0x044B;\n t['afii10094'] = 0x044C;\n t['afii10095'] = 0x044D;\n t['afii10096'] = 0x044E;\n t['afii10097'] = 0x044F;\n t['afii10098'] = 0x0491;\n t['afii10099'] = 0x0452;\n t['afii10100'] = 0x0453;\n t['afii10101'] = 0x0454;\n t['afii10102'] = 0x0455;\n t['afii10103'] = 0x0456;\n t['afii10104'] = 0x0457;\n t['afii10105'] = 0x0458;\n t['afii10106'] = 0x0459;\n t['afii10107'] = 0x045A;\n t['afii10108'] = 0x045B;\n t['afii10109'] = 0x045C;\n t['afii10110'] = 0x045E;\n t['afii10145'] = 0x040F;\n t['afii10146'] = 0x0462;\n t['afii10147'] = 0x0472;\n t['afii10148'] = 0x0474;\n t['afii10192'] = 0xF6C6;\n t['afii10193'] = 0x045F;\n t['afii10194'] = 0x0463;\n t['afii10195'] = 0x0473;\n t['afii10196'] = 0x0475;\n t['afii10831'] = 0xF6C7;\n t['afii10832'] = 0xF6C8;\n t['afii10846'] = 0x04D9;\n t['afii299'] = 0x200E;\n t['afii300'] = 0x200F;\n t['afii301'] = 0x200D;\n t['afii57381'] = 0x066A;\n t['afii57388'] = 0x060C;\n t['afii57392'] = 0x0660;\n t['afii57393'] = 0x0661;\n t['afii57394'] = 0x0662;\n t['afii57395'] = 0x0663;\n t['afii57396'] = 0x0664;\n t['afii57397'] = 0x0665;\n t['afii57398'] = 0x0666;\n t['afii57399'] = 0x0667;\n t['afii57400'] = 0x0668;\n t['afii57401'] = 0x0669;\n t['afii57403'] = 0x061B;\n t['afii57407'] = 0x061F;\n t['afii57409'] = 0x0621;\n t['afii57410'] = 0x0622;\n t['afii57411'] = 0x0623;\n t['afii57412'] = 0x0624;\n t['afii57413'] = 0x0625;\n t['afii57414'] = 0x0626;\n t['afii57415'] = 0x0627;\n t['afii57416'] = 0x0628;\n t['afii57417'] = 0x0629;\n t['afii57418'] = 0x062A;\n t['afii57419'] = 0x062B;\n t['afii57420'] = 0x062C;\n t['afii57421'] = 0x062D;\n t['afii57422'] = 0x062E;\n t['afii57423'] = 0x062F;\n t['afii57424'] = 0x0630;\n t['afii57425'] = 0x0631;\n t['afii57426'] = 0x0632;\n t['afii57427'] = 0x0633;\n t['afii57428'] = 0x0634;\n t['afii57429'] = 0x0635;\n t['afii57430'] = 0x0636;\n t['afii57431'] = 0x0637;\n t['afii57432'] = 0x0638;\n t['afii57433'] = 0x0639;\n t['afii57434'] = 0x063A;\n t['afii57440'] = 0x0640;\n t['afii57441'] = 0x0641;\n t['afii57442'] = 0x0642;\n t['afii57443'] = 0x0643;\n t['afii57444'] = 0x0644;\n t['afii57445'] = 0x0645;\n t['afii57446'] = 0x0646;\n t['afii57448'] = 0x0648;\n t['afii57449'] = 0x0649;\n t['afii57450'] = 0x064A;\n t['afii57451'] = 0x064B;\n t['afii57452'] = 0x064C;\n t['afii57453'] = 0x064D;\n t['afii57454'] = 0x064E;\n t['afii57455'] = 0x064F;\n t['afii57456'] = 0x0650;\n t['afii57457'] = 0x0651;\n t['afii57458'] = 0x0652;\n t['afii57470'] = 0x0647;\n t['afii57505'] = 0x06A4;\n t['afii57506'] = 0x067E;\n t['afii57507'] = 0x0686;\n t['afii57508'] = 0x0698;\n t['afii57509'] = 0x06AF;\n t['afii57511'] = 0x0679;\n t['afii57512'] = 0x0688;\n t['afii57513'] = 0x0691;\n t['afii57514'] = 0x06BA;\n t['afii57519'] = 0x06D2;\n t['afii57534'] = 0x06D5;\n t['afii57636'] = 0x20AA;\n t['afii57645'] = 0x05BE;\n t['afii57658'] = 0x05C3;\n t['afii57664'] = 0x05D0;\n t['afii57665'] = 0x05D1;\n t['afii57666'] = 0x05D2;\n t['afii57667'] = 0x05D3;\n t['afii57668'] = 0x05D4;\n t['afii57669'] = 0x05D5;\n t['afii57670'] = 0x05D6;\n t['afii57671'] = 0x05D7;\n t['afii57672'] = 0x05D8;\n t['afii57673'] = 0x05D9;\n t['afii57674'] = 0x05DA;\n t['afii57675'] = 0x05DB;\n t['afii57676'] = 0x05DC;\n t['afii57677'] = 0x05DD;\n t['afii57678'] = 0x05DE;\n t['afii57679'] = 0x05DF;\n t['afii57680'] = 0x05E0;\n t['afii57681'] = 0x05E1;\n t['afii57682'] = 0x05E2;\n t['afii57683'] = 0x05E3;\n t['afii57684'] = 0x05E4;\n t['afii57685'] = 0x05E5;\n t['afii57686'] = 0x05E6;\n t['afii57687'] = 0x05E7;\n t['afii57688'] = 0x05E8;\n t['afii57689'] = 0x05E9;\n t['afii57690'] = 0x05EA;\n t['afii57694'] = 0xFB2A;\n t['afii57695'] = 0xFB2B;\n t['afii57700'] = 0xFB4B;\n t['afii57705'] = 0xFB1F;\n t['afii57716'] = 0x05F0;\n t['afii57717'] = 0x05F1;\n t['afii57718'] = 0x05F2;\n t['afii57723'] = 0xFB35;\n t['afii57793'] = 0x05B4;\n t['afii57794'] = 0x05B5;\n t['afii57795'] = 0x05B6;\n t['afii57796'] = 0x05BB;\n t['afii57797'] = 0x05B8;\n t['afii57798'] = 0x05B7;\n t['afii57799'] = 0x05B0;\n t['afii57800'] = 0x05B2;\n t['afii57801'] = 0x05B1;\n t['afii57802'] = 0x05B3;\n t['afii57803'] = 0x05C2;\n t['afii57804'] = 0x05C1;\n t['afii57806'] = 0x05B9;\n t['afii57807'] = 0x05BC;\n t['afii57839'] = 0x05BD;\n t['afii57841'] = 0x05BF;\n t['afii57842'] = 0x05C0;\n t['afii57929'] = 0x02BC;\n t['afii61248'] = 0x2105;\n t['afii61289'] = 0x2113;\n t['afii61352'] = 0x2116;\n t['afii61573'] = 0x202C;\n t['afii61574'] = 0x202D;\n t['afii61575'] = 0x202E;\n t['afii61664'] = 0x200C;\n t['afii63167'] = 0x066D;\n t['afii64937'] = 0x02BD;\n t['agrave'] = 0x00E0;\n t['agujarati'] = 0x0A85;\n t['agurmukhi'] = 0x0A05;\n t['ahiragana'] = 0x3042;\n t['ahookabove'] = 0x1EA3;\n t['aibengali'] = 0x0990;\n t['aibopomofo'] = 0x311E;\n t['aideva'] = 0x0910;\n t['aiecyrillic'] = 0x04D5;\n t['aigujarati'] = 0x0A90;\n t['aigurmukhi'] = 0x0A10;\n t['aimatragurmukhi'] = 0x0A48;\n t['ainarabic'] = 0x0639;\n t['ainfinalarabic'] = 0xFECA;\n t['aininitialarabic'] = 0xFECB;\n t['ainmedialarabic'] = 0xFECC;\n t['ainvertedbreve'] = 0x0203;\n t['aivowelsignbengali'] = 0x09C8;\n t['aivowelsigndeva'] = 0x0948;\n t['aivowelsigngujarati'] = 0x0AC8;\n t['akatakana'] = 0x30A2;\n t['akatakanahalfwidth'] = 0xFF71;\n t['akorean'] = 0x314F;\n t['alef'] = 0x05D0;\n t['alefarabic'] = 0x0627;\n t['alefdageshhebrew'] = 0xFB30;\n t['aleffinalarabic'] = 0xFE8E;\n t['alefhamzaabovearabic'] = 0x0623;\n t['alefhamzaabovefinalarabic'] = 0xFE84;\n t['alefhamzabelowarabic'] = 0x0625;\n t['alefhamzabelowfinalarabic'] = 0xFE88;\n t['alefhebrew'] = 0x05D0;\n t['aleflamedhebrew'] = 0xFB4F;\n t['alefmaddaabovearabic'] = 0x0622;\n t['alefmaddaabovefinalarabic'] = 0xFE82;\n t['alefmaksuraarabic'] = 0x0649;\n t['alefmaksurafinalarabic'] = 0xFEF0;\n t['alefmaksurainitialarabic'] = 0xFEF3;\n t['alefmaksuramedialarabic'] = 0xFEF4;\n t['alefpatahhebrew'] = 0xFB2E;\n t['alefqamatshebrew'] = 0xFB2F;\n t['aleph'] = 0x2135;\n t['allequal'] = 0x224C;\n t['alpha'] = 0x03B1;\n t['alphatonos'] = 0x03AC;\n t['amacron'] = 0x0101;\n t['amonospace'] = 0xFF41;\n t['ampersand'] = 0x0026;\n t['ampersandmonospace'] = 0xFF06;\n t['ampersandsmall'] = 0xF726;\n t['amsquare'] = 0x33C2;\n t['anbopomofo'] = 0x3122;\n t['angbopomofo'] = 0x3124;\n t['angbracketleft'] = 0x3008;\n t['angbracketright'] = 0x3009;\n t['angkhankhuthai'] = 0x0E5A;\n t['angle'] = 0x2220;\n t['anglebracketleft'] = 0x3008;\n t['anglebracketleftvertical'] = 0xFE3F;\n t['anglebracketright'] = 0x3009;\n t['anglebracketrightvertical'] = 0xFE40;\n t['angleleft'] = 0x2329;\n t['angleright'] = 0x232A;\n t['angstrom'] = 0x212B;\n t['anoteleia'] = 0x0387;\n t['anudattadeva'] = 0x0952;\n t['anusvarabengali'] = 0x0982;\n t['anusvaradeva'] = 0x0902;\n t['anusvaragujarati'] = 0x0A82;\n t['aogonek'] = 0x0105;\n t['apaatosquare'] = 0x3300;\n t['aparen'] = 0x249C;\n t['apostrophearmenian'] = 0x055A;\n t['apostrophemod'] = 0x02BC;\n t['apple'] = 0xF8FF;\n t['approaches'] = 0x2250;\n t['approxequal'] = 0x2248;\n t['approxequalorimage'] = 0x2252;\n t['approximatelyequal'] = 0x2245;\n t['araeaekorean'] = 0x318E;\n t['araeakorean'] = 0x318D;\n t['arc'] = 0x2312;\n t['arighthalfring'] = 0x1E9A;\n t['aring'] = 0x00E5;\n t['aringacute'] = 0x01FB;\n t['aringbelow'] = 0x1E01;\n t['arrowboth'] = 0x2194;\n t['arrowdashdown'] = 0x21E3;\n t['arrowdashleft'] = 0x21E0;\n t['arrowdashright'] = 0x21E2;\n t['arrowdashup'] = 0x21E1;\n t['arrowdblboth'] = 0x21D4;\n t['arrowdbldown'] = 0x21D3;\n t['arrowdblleft'] = 0x21D0;\n t['arrowdblright'] = 0x21D2;\n t['arrowdblup'] = 0x21D1;\n t['arrowdown'] = 0x2193;\n t['arrowdownleft'] = 0x2199;\n t['arrowdownright'] = 0x2198;\n t['arrowdownwhite'] = 0x21E9;\n t['arrowheaddownmod'] = 0x02C5;\n t['arrowheadleftmod'] = 0x02C2;\n t['arrowheadrightmod'] = 0x02C3;\n t['arrowheadupmod'] = 0x02C4;\n t['arrowhorizex'] = 0xF8E7;\n t['arrowleft'] = 0x2190;\n t['arrowleftdbl'] = 0x21D0;\n t['arrowleftdblstroke'] = 0x21CD;\n t['arrowleftoverright'] = 0x21C6;\n t['arrowleftwhite'] = 0x21E6;\n t['arrowright'] = 0x2192;\n t['arrowrightdblstroke'] = 0x21CF;\n t['arrowrightheavy'] = 0x279E;\n t['arrowrightoverleft'] = 0x21C4;\n t['arrowrightwhite'] = 0x21E8;\n t['arrowtableft'] = 0x21E4;\n t['arrowtabright'] = 0x21E5;\n t['arrowup'] = 0x2191;\n t['arrowupdn'] = 0x2195;\n t['arrowupdnbse'] = 0x21A8;\n t['arrowupdownbase'] = 0x21A8;\n t['arrowupleft'] = 0x2196;\n t['arrowupleftofdown'] = 0x21C5;\n t['arrowupright'] = 0x2197;\n t['arrowupwhite'] = 0x21E7;\n t['arrowvertex'] = 0xF8E6;\n t['asciicircum'] = 0x005E;\n t['asciicircummonospace'] = 0xFF3E;\n t['asciitilde'] = 0x007E;\n t['asciitildemonospace'] = 0xFF5E;\n t['ascript'] = 0x0251;\n t['ascriptturned'] = 0x0252;\n t['asmallhiragana'] = 0x3041;\n t['asmallkatakana'] = 0x30A1;\n t['asmallkatakanahalfwidth'] = 0xFF67;\n t['asterisk'] = 0x002A;\n t['asteriskaltonearabic'] = 0x066D;\n t['asteriskarabic'] = 0x066D;\n t['asteriskmath'] = 0x2217;\n t['asteriskmonospace'] = 0xFF0A;\n t['asterisksmall'] = 0xFE61;\n t['asterism'] = 0x2042;\n t['asuperior'] = 0xF6E9;\n t['asymptoticallyequal'] = 0x2243;\n t['at'] = 0x0040;\n t['atilde'] = 0x00E3;\n t['atmonospace'] = 0xFF20;\n t['atsmall'] = 0xFE6B;\n t['aturned'] = 0x0250;\n t['aubengali'] = 0x0994;\n t['aubopomofo'] = 0x3120;\n t['audeva'] = 0x0914;\n t['augujarati'] = 0x0A94;\n t['augurmukhi'] = 0x0A14;\n t['aulengthmarkbengali'] = 0x09D7;\n t['aumatragurmukhi'] = 0x0A4C;\n t['auvowelsignbengali'] = 0x09CC;\n t['auvowelsigndeva'] = 0x094C;\n t['auvowelsigngujarati'] = 0x0ACC;\n t['avagrahadeva'] = 0x093D;\n t['aybarmenian'] = 0x0561;\n t['ayin'] = 0x05E2;\n t['ayinaltonehebrew'] = 0xFB20;\n t['ayinhebrew'] = 0x05E2;\n t['b'] = 0x0062;\n t['babengali'] = 0x09AC;\n t['backslash'] = 0x005C;\n t['backslashmonospace'] = 0xFF3C;\n t['badeva'] = 0x092C;\n t['bagujarati'] = 0x0AAC;\n t['bagurmukhi'] = 0x0A2C;\n t['bahiragana'] = 0x3070;\n t['bahtthai'] = 0x0E3F;\n t['bakatakana'] = 0x30D0;\n t['bar'] = 0x007C;\n t['barmonospace'] = 0xFF5C;\n t['bbopomofo'] = 0x3105;\n t['bcircle'] = 0x24D1;\n t['bdotaccent'] = 0x1E03;\n t['bdotbelow'] = 0x1E05;\n t['beamedsixteenthnotes'] = 0x266C;\n t['because'] = 0x2235;\n t['becyrillic'] = 0x0431;\n t['beharabic'] = 0x0628;\n t['behfinalarabic'] = 0xFE90;\n t['behinitialarabic'] = 0xFE91;\n t['behiragana'] = 0x3079;\n t['behmedialarabic'] = 0xFE92;\n t['behmeeminitialarabic'] = 0xFC9F;\n t['behmeemisolatedarabic'] = 0xFC08;\n t['behnoonfinalarabic'] = 0xFC6D;\n t['bekatakana'] = 0x30D9;\n t['benarmenian'] = 0x0562;\n t['bet'] = 0x05D1;\n t['beta'] = 0x03B2;\n t['betasymbolgreek'] = 0x03D0;\n t['betdagesh'] = 0xFB31;\n t['betdageshhebrew'] = 0xFB31;\n t['bethebrew'] = 0x05D1;\n t['betrafehebrew'] = 0xFB4C;\n t['bhabengali'] = 0x09AD;\n t['bhadeva'] = 0x092D;\n t['bhagujarati'] = 0x0AAD;\n t['bhagurmukhi'] = 0x0A2D;\n t['bhook'] = 0x0253;\n t['bihiragana'] = 0x3073;\n t['bikatakana'] = 0x30D3;\n t['bilabialclick'] = 0x0298;\n t['bindigurmukhi'] = 0x0A02;\n t['birusquare'] = 0x3331;\n t['blackcircle'] = 0x25CF;\n t['blackdiamond'] = 0x25C6;\n t['blackdownpointingtriangle'] = 0x25BC;\n t['blackleftpointingpointer'] = 0x25C4;\n t['blackleftpointingtriangle'] = 0x25C0;\n t['blacklenticularbracketleft'] = 0x3010;\n t['blacklenticularbracketleftvertical'] = 0xFE3B;\n t['blacklenticularbracketright'] = 0x3011;\n t['blacklenticularbracketrightvertical'] = 0xFE3C;\n t['blacklowerlefttriangle'] = 0x25E3;\n t['blacklowerrighttriangle'] = 0x25E2;\n t['blackrectangle'] = 0x25AC;\n t['blackrightpointingpointer'] = 0x25BA;\n t['blackrightpointingtriangle'] = 0x25B6;\n t['blacksmallsquare'] = 0x25AA;\n t['blacksmilingface'] = 0x263B;\n t['blacksquare'] = 0x25A0;\n t['blackstar'] = 0x2605;\n t['blackupperlefttriangle'] = 0x25E4;\n t['blackupperrighttriangle'] = 0x25E5;\n t['blackuppointingsmalltriangle'] = 0x25B4;\n t['blackuppointingtriangle'] = 0x25B2;\n t['blank'] = 0x2423;\n t['blinebelow'] = 0x1E07;\n t['block'] = 0x2588;\n t['bmonospace'] = 0xFF42;\n t['bobaimaithai'] = 0x0E1A;\n t['bohiragana'] = 0x307C;\n t['bokatakana'] = 0x30DC;\n t['bparen'] = 0x249D;\n t['bqsquare'] = 0x33C3;\n t['braceex'] = 0xF8F4;\n t['braceleft'] = 0x007B;\n t['braceleftbt'] = 0xF8F3;\n t['braceleftmid'] = 0xF8F2;\n t['braceleftmonospace'] = 0xFF5B;\n t['braceleftsmall'] = 0xFE5B;\n t['bracelefttp'] = 0xF8F1;\n t['braceleftvertical'] = 0xFE37;\n t['braceright'] = 0x007D;\n t['bracerightbt'] = 0xF8FE;\n t['bracerightmid'] = 0xF8FD;\n t['bracerightmonospace'] = 0xFF5D;\n t['bracerightsmall'] = 0xFE5C;\n t['bracerighttp'] = 0xF8FC;\n t['bracerightvertical'] = 0xFE38;\n t['bracketleft'] = 0x005B;\n t['bracketleftbt'] = 0xF8F0;\n t['bracketleftex'] = 0xF8EF;\n t['bracketleftmonospace'] = 0xFF3B;\n t['bracketlefttp'] = 0xF8EE;\n t['bracketright'] = 0x005D;\n t['bracketrightbt'] = 0xF8FB;\n t['bracketrightex'] = 0xF8FA;\n t['bracketrightmonospace'] = 0xFF3D;\n t['bracketrighttp'] = 0xF8F9;\n t['breve'] = 0x02D8;\n t['brevebelowcmb'] = 0x032E;\n t['brevecmb'] = 0x0306;\n t['breveinvertedbelowcmb'] = 0x032F;\n t['breveinvertedcmb'] = 0x0311;\n t['breveinverteddoublecmb'] = 0x0361;\n t['bridgebelowcmb'] = 0x032A;\n t['bridgeinvertedbelowcmb'] = 0x033A;\n t['brokenbar'] = 0x00A6;\n t['bstroke'] = 0x0180;\n t['bsuperior'] = 0xF6EA;\n t['btopbar'] = 0x0183;\n t['buhiragana'] = 0x3076;\n t['bukatakana'] = 0x30D6;\n t['bullet'] = 0x2022;\n t['bulletinverse'] = 0x25D8;\n t['bulletoperator'] = 0x2219;\n t['bullseye'] = 0x25CE;\n t['c'] = 0x0063;\n t['caarmenian'] = 0x056E;\n t['cabengali'] = 0x099A;\n t['cacute'] = 0x0107;\n t['cadeva'] = 0x091A;\n t['cagujarati'] = 0x0A9A;\n t['cagurmukhi'] = 0x0A1A;\n t['calsquare'] = 0x3388;\n t['candrabindubengali'] = 0x0981;\n t['candrabinducmb'] = 0x0310;\n t['candrabindudeva'] = 0x0901;\n t['candrabindugujarati'] = 0x0A81;\n t['capslock'] = 0x21EA;\n t['careof'] = 0x2105;\n t['caron'] = 0x02C7;\n t['caronbelowcmb'] = 0x032C;\n t['caroncmb'] = 0x030C;\n t['carriagereturn'] = 0x21B5;\n t['cbopomofo'] = 0x3118;\n t['ccaron'] = 0x010D;\n t['ccedilla'] = 0x00E7;\n t['ccedillaacute'] = 0x1E09;\n t['ccircle'] = 0x24D2;\n t['ccircumflex'] = 0x0109;\n t['ccurl'] = 0x0255;\n t['cdot'] = 0x010B;\n t['cdotaccent'] = 0x010B;\n t['cdsquare'] = 0x33C5;\n t['cedilla'] = 0x00B8;\n t['cedillacmb'] = 0x0327;\n t['cent'] = 0x00A2;\n t['centigrade'] = 0x2103;\n t['centinferior'] = 0xF6DF;\n t['centmonospace'] = 0xFFE0;\n t['centoldstyle'] = 0xF7A2;\n t['centsuperior'] = 0xF6E0;\n t['chaarmenian'] = 0x0579;\n t['chabengali'] = 0x099B;\n t['chadeva'] = 0x091B;\n t['chagujarati'] = 0x0A9B;\n t['chagurmukhi'] = 0x0A1B;\n t['chbopomofo'] = 0x3114;\n t['cheabkhasiancyrillic'] = 0x04BD;\n t['checkmark'] = 0x2713;\n t['checyrillic'] = 0x0447;\n t['chedescenderabkhasiancyrillic'] = 0x04BF;\n t['chedescendercyrillic'] = 0x04B7;\n t['chedieresiscyrillic'] = 0x04F5;\n t['cheharmenian'] = 0x0573;\n t['chekhakassiancyrillic'] = 0x04CC;\n t['cheverticalstrokecyrillic'] = 0x04B9;\n t['chi'] = 0x03C7;\n t['chieuchacirclekorean'] = 0x3277;\n t['chieuchaparenkorean'] = 0x3217;\n t['chieuchcirclekorean'] = 0x3269;\n t['chieuchkorean'] = 0x314A;\n t['chieuchparenkorean'] = 0x3209;\n t['chochangthai'] = 0x0E0A;\n t['chochanthai'] = 0x0E08;\n t['chochingthai'] = 0x0E09;\n t['chochoethai'] = 0x0E0C;\n t['chook'] = 0x0188;\n t['cieucacirclekorean'] = 0x3276;\n t['cieucaparenkorean'] = 0x3216;\n t['cieuccirclekorean'] = 0x3268;\n t['cieuckorean'] = 0x3148;\n t['cieucparenkorean'] = 0x3208;\n t['cieucuparenkorean'] = 0x321C;\n t['circle'] = 0x25CB;\n t['circlecopyrt'] = 0x00A9;\n t['circlemultiply'] = 0x2297;\n t['circleot'] = 0x2299;\n t['circleplus'] = 0x2295;\n t['circlepostalmark'] = 0x3036;\n t['circlewithlefthalfblack'] = 0x25D0;\n t['circlewithrighthalfblack'] = 0x25D1;\n t['circumflex'] = 0x02C6;\n t['circumflexbelowcmb'] = 0x032D;\n t['circumflexcmb'] = 0x0302;\n t['clear'] = 0x2327;\n t['clickalveolar'] = 0x01C2;\n t['clickdental'] = 0x01C0;\n t['clicklateral'] = 0x01C1;\n t['clickretroflex'] = 0x01C3;\n t['club'] = 0x2663;\n t['clubsuitblack'] = 0x2663;\n t['clubsuitwhite'] = 0x2667;\n t['cmcubedsquare'] = 0x33A4;\n t['cmonospace'] = 0xFF43;\n t['cmsquaredsquare'] = 0x33A0;\n t['coarmenian'] = 0x0581;\n t['colon'] = 0x003A;\n t['colonmonetary'] = 0x20A1;\n t['colonmonospace'] = 0xFF1A;\n t['colonsign'] = 0x20A1;\n t['colonsmall'] = 0xFE55;\n t['colontriangularhalfmod'] = 0x02D1;\n t['colontriangularmod'] = 0x02D0;\n t['comma'] = 0x002C;\n t['commaabovecmb'] = 0x0313;\n t['commaaboverightcmb'] = 0x0315;\n t['commaaccent'] = 0xF6C3;\n t['commaarabic'] = 0x060C;\n t['commaarmenian'] = 0x055D;\n t['commainferior'] = 0xF6E1;\n t['commamonospace'] = 0xFF0C;\n t['commareversedabovecmb'] = 0x0314;\n t['commareversedmod'] = 0x02BD;\n t['commasmall'] = 0xFE50;\n t['commasuperior'] = 0xF6E2;\n t['commaturnedabovecmb'] = 0x0312;\n t['commaturnedmod'] = 0x02BB;\n t['compass'] = 0x263C;\n t['congruent'] = 0x2245;\n t['contourintegral'] = 0x222E;\n t['control'] = 0x2303;\n t['controlACK'] = 0x0006;\n t['controlBEL'] = 0x0007;\n t['controlBS'] = 0x0008;\n t['controlCAN'] = 0x0018;\n t['controlCR'] = 0x000D;\n t['controlDC1'] = 0x0011;\n t['controlDC2'] = 0x0012;\n t['controlDC3'] = 0x0013;\n t['controlDC4'] = 0x0014;\n t['controlDEL'] = 0x007F;\n t['controlDLE'] = 0x0010;\n t['controlEM'] = 0x0019;\n t['controlENQ'] = 0x0005;\n t['controlEOT'] = 0x0004;\n t['controlESC'] = 0x001B;\n t['controlETB'] = 0x0017;\n t['controlETX'] = 0x0003;\n t['controlFF'] = 0x000C;\n t['controlFS'] = 0x001C;\n t['controlGS'] = 0x001D;\n t['controlHT'] = 0x0009;\n t['controlLF'] = 0x000A;\n t['controlNAK'] = 0x0015;\n t['controlNULL'] = 0x0000;\n t['controlRS'] = 0x001E;\n t['controlSI'] = 0x000F;\n t['controlSO'] = 0x000E;\n t['controlSOT'] = 0x0002;\n t['controlSTX'] = 0x0001;\n t['controlSUB'] = 0x001A;\n t['controlSYN'] = 0x0016;\n t['controlUS'] = 0x001F;\n t['controlVT'] = 0x000B;\n t['copyright'] = 0x00A9;\n t['copyrightsans'] = 0xF8E9;\n t['copyrightserif'] = 0xF6D9;\n t['cornerbracketleft'] = 0x300C;\n t['cornerbracketlefthalfwidth'] = 0xFF62;\n t['cornerbracketleftvertical'] = 0xFE41;\n t['cornerbracketright'] = 0x300D;\n t['cornerbracketrighthalfwidth'] = 0xFF63;\n t['cornerbracketrightvertical'] = 0xFE42;\n t['corporationsquare'] = 0x337F;\n t['cosquare'] = 0x33C7;\n t['coverkgsquare'] = 0x33C6;\n t['cparen'] = 0x249E;\n t['cruzeiro'] = 0x20A2;\n t['cstretched'] = 0x0297;\n t['curlyand'] = 0x22CF;\n t['curlyor'] = 0x22CE;\n t['currency'] = 0x00A4;\n t['cyrBreve'] = 0xF6D1;\n t['cyrFlex'] = 0xF6D2;\n t['cyrbreve'] = 0xF6D4;\n t['cyrflex'] = 0xF6D5;\n t['d'] = 0x0064;\n t['daarmenian'] = 0x0564;\n t['dabengali'] = 0x09A6;\n t['dadarabic'] = 0x0636;\n t['dadeva'] = 0x0926;\n t['dadfinalarabic'] = 0xFEBE;\n t['dadinitialarabic'] = 0xFEBF;\n t['dadmedialarabic'] = 0xFEC0;\n t['dagesh'] = 0x05BC;\n t['dageshhebrew'] = 0x05BC;\n t['dagger'] = 0x2020;\n t['daggerdbl'] = 0x2021;\n t['dagujarati'] = 0x0AA6;\n t['dagurmukhi'] = 0x0A26;\n t['dahiragana'] = 0x3060;\n t['dakatakana'] = 0x30C0;\n t['dalarabic'] = 0x062F;\n t['dalet'] = 0x05D3;\n t['daletdagesh'] = 0xFB33;\n t['daletdageshhebrew'] = 0xFB33;\n t['dalethebrew'] = 0x05D3;\n t['dalfinalarabic'] = 0xFEAA;\n t['dammaarabic'] = 0x064F;\n t['dammalowarabic'] = 0x064F;\n t['dammatanaltonearabic'] = 0x064C;\n t['dammatanarabic'] = 0x064C;\n t['danda'] = 0x0964;\n t['dargahebrew'] = 0x05A7;\n t['dargalefthebrew'] = 0x05A7;\n t['dasiapneumatacyrilliccmb'] = 0x0485;\n t['dblGrave'] = 0xF6D3;\n t['dblanglebracketleft'] = 0x300A;\n t['dblanglebracketleftvertical'] = 0xFE3D;\n t['dblanglebracketright'] = 0x300B;\n t['dblanglebracketrightvertical'] = 0xFE3E;\n t['dblarchinvertedbelowcmb'] = 0x032B;\n t['dblarrowleft'] = 0x21D4;\n t['dblarrowright'] = 0x21D2;\n t['dbldanda'] = 0x0965;\n t['dblgrave'] = 0xF6D6;\n t['dblgravecmb'] = 0x030F;\n t['dblintegral'] = 0x222C;\n t['dbllowline'] = 0x2017;\n t['dbllowlinecmb'] = 0x0333;\n t['dbloverlinecmb'] = 0x033F;\n t['dblprimemod'] = 0x02BA;\n t['dblverticalbar'] = 0x2016;\n t['dblverticallineabovecmb'] = 0x030E;\n t['dbopomofo'] = 0x3109;\n t['dbsquare'] = 0x33C8;\n t['dcaron'] = 0x010F;\n t['dcedilla'] = 0x1E11;\n t['dcircle'] = 0x24D3;\n t['dcircumflexbelow'] = 0x1E13;\n t['dcroat'] = 0x0111;\n t['ddabengali'] = 0x09A1;\n t['ddadeva'] = 0x0921;\n t['ddagujarati'] = 0x0AA1;\n t['ddagurmukhi'] = 0x0A21;\n t['ddalarabic'] = 0x0688;\n t['ddalfinalarabic'] = 0xFB89;\n t['dddhadeva'] = 0x095C;\n t['ddhabengali'] = 0x09A2;\n t['ddhadeva'] = 0x0922;\n t['ddhagujarati'] = 0x0AA2;\n t['ddhagurmukhi'] = 0x0A22;\n t['ddotaccent'] = 0x1E0B;\n t['ddotbelow'] = 0x1E0D;\n t['decimalseparatorarabic'] = 0x066B;\n t['decimalseparatorpersian'] = 0x066B;\n t['decyrillic'] = 0x0434;\n t['degree'] = 0x00B0;\n t['dehihebrew'] = 0x05AD;\n t['dehiragana'] = 0x3067;\n t['deicoptic'] = 0x03EF;\n t['dekatakana'] = 0x30C7;\n t['deleteleft'] = 0x232B;\n t['deleteright'] = 0x2326;\n t['delta'] = 0x03B4;\n t['deltaturned'] = 0x018D;\n t['denominatorminusonenumeratorbengali'] = 0x09F8;\n t['dezh'] = 0x02A4;\n t['dhabengali'] = 0x09A7;\n t['dhadeva'] = 0x0927;\n t['dhagujarati'] = 0x0AA7;\n t['dhagurmukhi'] = 0x0A27;\n t['dhook'] = 0x0257;\n t['dialytikatonos'] = 0x0385;\n t['dialytikatonoscmb'] = 0x0344;\n t['diamond'] = 0x2666;\n t['diamondsuitwhite'] = 0x2662;\n t['dieresis'] = 0x00A8;\n t['dieresisacute'] = 0xF6D7;\n t['dieresisbelowcmb'] = 0x0324;\n t['dieresiscmb'] = 0x0308;\n t['dieresisgrave'] = 0xF6D8;\n t['dieresistonos'] = 0x0385;\n t['dihiragana'] = 0x3062;\n t['dikatakana'] = 0x30C2;\n t['dittomark'] = 0x3003;\n t['divide'] = 0x00F7;\n t['divides'] = 0x2223;\n t['divisionslash'] = 0x2215;\n t['djecyrillic'] = 0x0452;\n t['dkshade'] = 0x2593;\n t['dlinebelow'] = 0x1E0F;\n t['dlsquare'] = 0x3397;\n t['dmacron'] = 0x0111;\n t['dmonospace'] = 0xFF44;\n t['dnblock'] = 0x2584;\n t['dochadathai'] = 0x0E0E;\n t['dodekthai'] = 0x0E14;\n t['dohiragana'] = 0x3069;\n t['dokatakana'] = 0x30C9;\n t['dollar'] = 0x0024;\n t['dollarinferior'] = 0xF6E3;\n t['dollarmonospace'] = 0xFF04;\n t['dollaroldstyle'] = 0xF724;\n t['dollarsmall'] = 0xFE69;\n t['dollarsuperior'] = 0xF6E4;\n t['dong'] = 0x20AB;\n t['dorusquare'] = 0x3326;\n t['dotaccent'] = 0x02D9;\n t['dotaccentcmb'] = 0x0307;\n t['dotbelowcmb'] = 0x0323;\n t['dotbelowcomb'] = 0x0323;\n t['dotkatakana'] = 0x30FB;\n t['dotlessi'] = 0x0131;\n t['dotlessj'] = 0xF6BE;\n t['dotlessjstrokehook'] = 0x0284;\n t['dotmath'] = 0x22C5;\n t['dottedcircle'] = 0x25CC;\n t['doubleyodpatah'] = 0xFB1F;\n t['doubleyodpatahhebrew'] = 0xFB1F;\n t['downtackbelowcmb'] = 0x031E;\n t['downtackmod'] = 0x02D5;\n t['dparen'] = 0x249F;\n t['dsuperior'] = 0xF6EB;\n t['dtail'] = 0x0256;\n t['dtopbar'] = 0x018C;\n t['duhiragana'] = 0x3065;\n t['dukatakana'] = 0x30C5;\n t['dz'] = 0x01F3;\n t['dzaltone'] = 0x02A3;\n t['dzcaron'] = 0x01C6;\n t['dzcurl'] = 0x02A5;\n t['dzeabkhasiancyrillic'] = 0x04E1;\n t['dzecyrillic'] = 0x0455;\n t['dzhecyrillic'] = 0x045F;\n t['e'] = 0x0065;\n t['eacute'] = 0x00E9;\n t['earth'] = 0x2641;\n t['ebengali'] = 0x098F;\n t['ebopomofo'] = 0x311C;\n t['ebreve'] = 0x0115;\n t['ecandradeva'] = 0x090D;\n t['ecandragujarati'] = 0x0A8D;\n t['ecandravowelsigndeva'] = 0x0945;\n t['ecandravowelsigngujarati'] = 0x0AC5;\n t['ecaron'] = 0x011B;\n t['ecedillabreve'] = 0x1E1D;\n t['echarmenian'] = 0x0565;\n t['echyiwnarmenian'] = 0x0587;\n t['ecircle'] = 0x24D4;\n t['ecircumflex'] = 0x00EA;\n t['ecircumflexacute'] = 0x1EBF;\n t['ecircumflexbelow'] = 0x1E19;\n t['ecircumflexdotbelow'] = 0x1EC7;\n t['ecircumflexgrave'] = 0x1EC1;\n t['ecircumflexhookabove'] = 0x1EC3;\n t['ecircumflextilde'] = 0x1EC5;\n t['ecyrillic'] = 0x0454;\n t['edblgrave'] = 0x0205;\n t['edeva'] = 0x090F;\n t['edieresis'] = 0x00EB;\n t['edot'] = 0x0117;\n t['edotaccent'] = 0x0117;\n t['edotbelow'] = 0x1EB9;\n t['eegurmukhi'] = 0x0A0F;\n t['eematragurmukhi'] = 0x0A47;\n t['efcyrillic'] = 0x0444;\n t['egrave'] = 0x00E8;\n t['egujarati'] = 0x0A8F;\n t['eharmenian'] = 0x0567;\n t['ehbopomofo'] = 0x311D;\n t['ehiragana'] = 0x3048;\n t['ehookabove'] = 0x1EBB;\n t['eibopomofo'] = 0x311F;\n t['eight'] = 0x0038;\n t['eightarabic'] = 0x0668;\n t['eightbengali'] = 0x09EE;\n t['eightcircle'] = 0x2467;\n t['eightcircleinversesansserif'] = 0x2791;\n t['eightdeva'] = 0x096E;\n t['eighteencircle'] = 0x2471;\n t['eighteenparen'] = 0x2485;\n t['eighteenperiod'] = 0x2499;\n t['eightgujarati'] = 0x0AEE;\n t['eightgurmukhi'] = 0x0A6E;\n t['eighthackarabic'] = 0x0668;\n t['eighthangzhou'] = 0x3028;\n t['eighthnotebeamed'] = 0x266B;\n t['eightideographicparen'] = 0x3227;\n t['eightinferior'] = 0x2088;\n t['eightmonospace'] = 0xFF18;\n t['eightoldstyle'] = 0xF738;\n t['eightparen'] = 0x247B;\n t['eightperiod'] = 0x248F;\n t['eightpersian'] = 0x06F8;\n t['eightroman'] = 0x2177;\n t['eightsuperior'] = 0x2078;\n t['eightthai'] = 0x0E58;\n t['einvertedbreve'] = 0x0207;\n t['eiotifiedcyrillic'] = 0x0465;\n t['ekatakana'] = 0x30A8;\n t['ekatakanahalfwidth'] = 0xFF74;\n t['ekonkargurmukhi'] = 0x0A74;\n t['ekorean'] = 0x3154;\n t['elcyrillic'] = 0x043B;\n t['element'] = 0x2208;\n t['elevencircle'] = 0x246A;\n t['elevenparen'] = 0x247E;\n t['elevenperiod'] = 0x2492;\n t['elevenroman'] = 0x217A;\n t['ellipsis'] = 0x2026;\n t['ellipsisvertical'] = 0x22EE;\n t['emacron'] = 0x0113;\n t['emacronacute'] = 0x1E17;\n t['emacrongrave'] = 0x1E15;\n t['emcyrillic'] = 0x043C;\n t['emdash'] = 0x2014;\n t['emdashvertical'] = 0xFE31;\n t['emonospace'] = 0xFF45;\n t['emphasismarkarmenian'] = 0x055B;\n t['emptyset'] = 0x2205;\n t['enbopomofo'] = 0x3123;\n t['encyrillic'] = 0x043D;\n t['endash'] = 0x2013;\n t['endashvertical'] = 0xFE32;\n t['endescendercyrillic'] = 0x04A3;\n t['eng'] = 0x014B;\n t['engbopomofo'] = 0x3125;\n t['enghecyrillic'] = 0x04A5;\n t['enhookcyrillic'] = 0x04C8;\n t['enspace'] = 0x2002;\n t['eogonek'] = 0x0119;\n t['eokorean'] = 0x3153;\n t['eopen'] = 0x025B;\n t['eopenclosed'] = 0x029A;\n t['eopenreversed'] = 0x025C;\n t['eopenreversedclosed'] = 0x025E;\n t['eopenreversedhook'] = 0x025D;\n t['eparen'] = 0x24A0;\n t['epsilon'] = 0x03B5;\n t['epsilontonos'] = 0x03AD;\n t['equal'] = 0x003D;\n t['equalmonospace'] = 0xFF1D;\n t['equalsmall'] = 0xFE66;\n t['equalsuperior'] = 0x207C;\n t['equivalence'] = 0x2261;\n t['erbopomofo'] = 0x3126;\n t['ercyrillic'] = 0x0440;\n t['ereversed'] = 0x0258;\n t['ereversedcyrillic'] = 0x044D;\n t['escyrillic'] = 0x0441;\n t['esdescendercyrillic'] = 0x04AB;\n t['esh'] = 0x0283;\n t['eshcurl'] = 0x0286;\n t['eshortdeva'] = 0x090E;\n t['eshortvowelsigndeva'] = 0x0946;\n t['eshreversedloop'] = 0x01AA;\n t['eshsquatreversed'] = 0x0285;\n t['esmallhiragana'] = 0x3047;\n t['esmallkatakana'] = 0x30A7;\n t['esmallkatakanahalfwidth'] = 0xFF6A;\n t['estimated'] = 0x212E;\n t['esuperior'] = 0xF6EC;\n t['eta'] = 0x03B7;\n t['etarmenian'] = 0x0568;\n t['etatonos'] = 0x03AE;\n t['eth'] = 0x00F0;\n t['etilde'] = 0x1EBD;\n t['etildebelow'] = 0x1E1B;\n t['etnahtafoukhhebrew'] = 0x0591;\n t['etnahtafoukhlefthebrew'] = 0x0591;\n t['etnahtahebrew'] = 0x0591;\n t['etnahtalefthebrew'] = 0x0591;\n t['eturned'] = 0x01DD;\n t['eukorean'] = 0x3161;\n t['euro'] = 0x20AC;\n t['evowelsignbengali'] = 0x09C7;\n t['evowelsigndeva'] = 0x0947;\n t['evowelsigngujarati'] = 0x0AC7;\n t['exclam'] = 0x0021;\n t['exclamarmenian'] = 0x055C;\n t['exclamdbl'] = 0x203C;\n t['exclamdown'] = 0x00A1;\n t['exclamdownsmall'] = 0xF7A1;\n t['exclammonospace'] = 0xFF01;\n t['exclamsmall'] = 0xF721;\n t['existential'] = 0x2203;\n t['ezh'] = 0x0292;\n t['ezhcaron'] = 0x01EF;\n t['ezhcurl'] = 0x0293;\n t['ezhreversed'] = 0x01B9;\n t['ezhtail'] = 0x01BA;\n t['f'] = 0x0066;\n t['fadeva'] = 0x095E;\n t['fagurmukhi'] = 0x0A5E;\n t['fahrenheit'] = 0x2109;\n t['fathaarabic'] = 0x064E;\n t['fathalowarabic'] = 0x064E;\n t['fathatanarabic'] = 0x064B;\n t['fbopomofo'] = 0x3108;\n t['fcircle'] = 0x24D5;\n t['fdotaccent'] = 0x1E1F;\n t['feharabic'] = 0x0641;\n t['feharmenian'] = 0x0586;\n t['fehfinalarabic'] = 0xFED2;\n t['fehinitialarabic'] = 0xFED3;\n t['fehmedialarabic'] = 0xFED4;\n t['feicoptic'] = 0x03E5;\n t['female'] = 0x2640;\n t['ff'] = 0xFB00;\n t['ffi'] = 0xFB03;\n t['ffl'] = 0xFB04;\n t['fi'] = 0xFB01;\n t['fifteencircle'] = 0x246E;\n t['fifteenparen'] = 0x2482;\n t['fifteenperiod'] = 0x2496;\n t['figuredash'] = 0x2012;\n t['filledbox'] = 0x25A0;\n t['filledrect'] = 0x25AC;\n t['finalkaf'] = 0x05DA;\n t['finalkafdagesh'] = 0xFB3A;\n t['finalkafdageshhebrew'] = 0xFB3A;\n t['finalkafhebrew'] = 0x05DA;\n t['finalmem'] = 0x05DD;\n t['finalmemhebrew'] = 0x05DD;\n t['finalnun'] = 0x05DF;\n t['finalnunhebrew'] = 0x05DF;\n t['finalpe'] = 0x05E3;\n t['finalpehebrew'] = 0x05E3;\n t['finaltsadi'] = 0x05E5;\n t['finaltsadihebrew'] = 0x05E5;\n t['firsttonechinese'] = 0x02C9;\n t['fisheye'] = 0x25C9;\n t['fitacyrillic'] = 0x0473;\n t['five'] = 0x0035;\n t['fivearabic'] = 0x0665;\n t['fivebengali'] = 0x09EB;\n t['fivecircle'] = 0x2464;\n t['fivecircleinversesansserif'] = 0x278E;\n t['fivedeva'] = 0x096B;\n t['fiveeighths'] = 0x215D;\n t['fivegujarati'] = 0x0AEB;\n t['fivegurmukhi'] = 0x0A6B;\n t['fivehackarabic'] = 0x0665;\n t['fivehangzhou'] = 0x3025;\n t['fiveideographicparen'] = 0x3224;\n t['fiveinferior'] = 0x2085;\n t['fivemonospace'] = 0xFF15;\n t['fiveoldstyle'] = 0xF735;\n t['fiveparen'] = 0x2478;\n t['fiveperiod'] = 0x248C;\n t['fivepersian'] = 0x06F5;\n t['fiveroman'] = 0x2174;\n t['fivesuperior'] = 0x2075;\n t['fivethai'] = 0x0E55;\n t['fl'] = 0xFB02;\n t['florin'] = 0x0192;\n t['fmonospace'] = 0xFF46;\n t['fmsquare'] = 0x3399;\n t['fofanthai'] = 0x0E1F;\n t['fofathai'] = 0x0E1D;\n t['fongmanthai'] = 0x0E4F;\n t['forall'] = 0x2200;\n t['four'] = 0x0034;\n t['fourarabic'] = 0x0664;\n t['fourbengali'] = 0x09EA;\n t['fourcircle'] = 0x2463;\n t['fourcircleinversesansserif'] = 0x278D;\n t['fourdeva'] = 0x096A;\n t['fourgujarati'] = 0x0AEA;\n t['fourgurmukhi'] = 0x0A6A;\n t['fourhackarabic'] = 0x0664;\n t['fourhangzhou'] = 0x3024;\n t['fourideographicparen'] = 0x3223;\n t['fourinferior'] = 0x2084;\n t['fourmonospace'] = 0xFF14;\n t['fournumeratorbengali'] = 0x09F7;\n t['fouroldstyle'] = 0xF734;\n t['fourparen'] = 0x2477;\n t['fourperiod'] = 0x248B;\n t['fourpersian'] = 0x06F4;\n t['fourroman'] = 0x2173;\n t['foursuperior'] = 0x2074;\n t['fourteencircle'] = 0x246D;\n t['fourteenparen'] = 0x2481;\n t['fourteenperiod'] = 0x2495;\n t['fourthai'] = 0x0E54;\n t['fourthtonechinese'] = 0x02CB;\n t['fparen'] = 0x24A1;\n t['fraction'] = 0x2044;\n t['franc'] = 0x20A3;\n t['g'] = 0x0067;\n t['gabengali'] = 0x0997;\n t['gacute'] = 0x01F5;\n t['gadeva'] = 0x0917;\n t['gafarabic'] = 0x06AF;\n t['gaffinalarabic'] = 0xFB93;\n t['gafinitialarabic'] = 0xFB94;\n t['gafmedialarabic'] = 0xFB95;\n t['gagujarati'] = 0x0A97;\n t['gagurmukhi'] = 0x0A17;\n t['gahiragana'] = 0x304C;\n t['gakatakana'] = 0x30AC;\n t['gamma'] = 0x03B3;\n t['gammalatinsmall'] = 0x0263;\n t['gammasuperior'] = 0x02E0;\n t['gangiacoptic'] = 0x03EB;\n t['gbopomofo'] = 0x310D;\n t['gbreve'] = 0x011F;\n t['gcaron'] = 0x01E7;\n t['gcedilla'] = 0x0123;\n t['gcircle'] = 0x24D6;\n t['gcircumflex'] = 0x011D;\n t['gcommaaccent'] = 0x0123;\n t['gdot'] = 0x0121;\n t['gdotaccent'] = 0x0121;\n t['gecyrillic'] = 0x0433;\n t['gehiragana'] = 0x3052;\n t['gekatakana'] = 0x30B2;\n t['geometricallyequal'] = 0x2251;\n t['gereshaccenthebrew'] = 0x059C;\n t['gereshhebrew'] = 0x05F3;\n t['gereshmuqdamhebrew'] = 0x059D;\n t['germandbls'] = 0x00DF;\n t['gershayimaccenthebrew'] = 0x059E;\n t['gershayimhebrew'] = 0x05F4;\n t['getamark'] = 0x3013;\n t['ghabengali'] = 0x0998;\n t['ghadarmenian'] = 0x0572;\n t['ghadeva'] = 0x0918;\n t['ghagujarati'] = 0x0A98;\n t['ghagurmukhi'] = 0x0A18;\n t['ghainarabic'] = 0x063A;\n t['ghainfinalarabic'] = 0xFECE;\n t['ghaininitialarabic'] = 0xFECF;\n t['ghainmedialarabic'] = 0xFED0;\n t['ghemiddlehookcyrillic'] = 0x0495;\n t['ghestrokecyrillic'] = 0x0493;\n t['gheupturncyrillic'] = 0x0491;\n t['ghhadeva'] = 0x095A;\n t['ghhagurmukhi'] = 0x0A5A;\n t['ghook'] = 0x0260;\n t['ghzsquare'] = 0x3393;\n t['gihiragana'] = 0x304E;\n t['gikatakana'] = 0x30AE;\n t['gimarmenian'] = 0x0563;\n t['gimel'] = 0x05D2;\n t['gimeldagesh'] = 0xFB32;\n t['gimeldageshhebrew'] = 0xFB32;\n t['gimelhebrew'] = 0x05D2;\n t['gjecyrillic'] = 0x0453;\n t['glottalinvertedstroke'] = 0x01BE;\n t['glottalstop'] = 0x0294;\n t['glottalstopinverted'] = 0x0296;\n t['glottalstopmod'] = 0x02C0;\n t['glottalstopreversed'] = 0x0295;\n t['glottalstopreversedmod'] = 0x02C1;\n t['glottalstopreversedsuperior'] = 0x02E4;\n t['glottalstopstroke'] = 0x02A1;\n t['glottalstopstrokereversed'] = 0x02A2;\n t['gmacron'] = 0x1E21;\n t['gmonospace'] = 0xFF47;\n t['gohiragana'] = 0x3054;\n t['gokatakana'] = 0x30B4;\n t['gparen'] = 0x24A2;\n t['gpasquare'] = 0x33AC;\n t['gradient'] = 0x2207;\n t['grave'] = 0x0060;\n t['gravebelowcmb'] = 0x0316;\n t['gravecmb'] = 0x0300;\n t['gravecomb'] = 0x0300;\n t['gravedeva'] = 0x0953;\n t['gravelowmod'] = 0x02CE;\n t['gravemonospace'] = 0xFF40;\n t['gravetonecmb'] = 0x0340;\n t['greater'] = 0x003E;\n t['greaterequal'] = 0x2265;\n t['greaterequalorless'] = 0x22DB;\n t['greatermonospace'] = 0xFF1E;\n t['greaterorequivalent'] = 0x2273;\n t['greaterorless'] = 0x2277;\n t['greateroverequal'] = 0x2267;\n t['greatersmall'] = 0xFE65;\n t['gscript'] = 0x0261;\n t['gstroke'] = 0x01E5;\n t['guhiragana'] = 0x3050;\n t['guillemotleft'] = 0x00AB;\n t['guillemotright'] = 0x00BB;\n t['guilsinglleft'] = 0x2039;\n t['guilsinglright'] = 0x203A;\n t['gukatakana'] = 0x30B0;\n t['guramusquare'] = 0x3318;\n t['gysquare'] = 0x33C9;\n t['h'] = 0x0068;\n t['haabkhasiancyrillic'] = 0x04A9;\n t['haaltonearabic'] = 0x06C1;\n t['habengali'] = 0x09B9;\n t['hadescendercyrillic'] = 0x04B3;\n t['hadeva'] = 0x0939;\n t['hagujarati'] = 0x0AB9;\n t['hagurmukhi'] = 0x0A39;\n t['haharabic'] = 0x062D;\n t['hahfinalarabic'] = 0xFEA2;\n t['hahinitialarabic'] = 0xFEA3;\n t['hahiragana'] = 0x306F;\n t['hahmedialarabic'] = 0xFEA4;\n t['haitusquare'] = 0x332A;\n t['hakatakana'] = 0x30CF;\n t['hakatakanahalfwidth'] = 0xFF8A;\n t['halantgurmukhi'] = 0x0A4D;\n t['hamzaarabic'] = 0x0621;\n t['hamzalowarabic'] = 0x0621;\n t['hangulfiller'] = 0x3164;\n t['hardsigncyrillic'] = 0x044A;\n t['harpoonleftbarbup'] = 0x21BC;\n t['harpoonrightbarbup'] = 0x21C0;\n t['hasquare'] = 0x33CA;\n t['hatafpatah'] = 0x05B2;\n t['hatafpatah16'] = 0x05B2;\n t['hatafpatah23'] = 0x05B2;\n t['hatafpatah2f'] = 0x05B2;\n t['hatafpatahhebrew'] = 0x05B2;\n t['hatafpatahnarrowhebrew'] = 0x05B2;\n t['hatafpatahquarterhebrew'] = 0x05B2;\n t['hatafpatahwidehebrew'] = 0x05B2;\n t['hatafqamats'] = 0x05B3;\n t['hatafqamats1b'] = 0x05B3;\n t['hatafqamats28'] = 0x05B3;\n t['hatafqamats34'] = 0x05B3;\n t['hatafqamatshebrew'] = 0x05B3;\n t['hatafqamatsnarrowhebrew'] = 0x05B3;\n t['hatafqamatsquarterhebrew'] = 0x05B3;\n t['hatafqamatswidehebrew'] = 0x05B3;\n t['hatafsegol'] = 0x05B1;\n t['hatafsegol17'] = 0x05B1;\n t['hatafsegol24'] = 0x05B1;\n t['hatafsegol30'] = 0x05B1;\n t['hatafsegolhebrew'] = 0x05B1;\n t['hatafsegolnarrowhebrew'] = 0x05B1;\n t['hatafsegolquarterhebrew'] = 0x05B1;\n t['hatafsegolwidehebrew'] = 0x05B1;\n t['hbar'] = 0x0127;\n t['hbopomofo'] = 0x310F;\n t['hbrevebelow'] = 0x1E2B;\n t['hcedilla'] = 0x1E29;\n t['hcircle'] = 0x24D7;\n t['hcircumflex'] = 0x0125;\n t['hdieresis'] = 0x1E27;\n t['hdotaccent'] = 0x1E23;\n t['hdotbelow'] = 0x1E25;\n t['he'] = 0x05D4;\n t['heart'] = 0x2665;\n t['heartsuitblack'] = 0x2665;\n t['heartsuitwhite'] = 0x2661;\n t['hedagesh'] = 0xFB34;\n t['hedageshhebrew'] = 0xFB34;\n t['hehaltonearabic'] = 0x06C1;\n t['heharabic'] = 0x0647;\n t['hehebrew'] = 0x05D4;\n t['hehfinalaltonearabic'] = 0xFBA7;\n t['hehfinalalttwoarabic'] = 0xFEEA;\n t['hehfinalarabic'] = 0xFEEA;\n t['hehhamzaabovefinalarabic'] = 0xFBA5;\n t['hehhamzaaboveisolatedarabic'] = 0xFBA4;\n t['hehinitialaltonearabic'] = 0xFBA8;\n t['hehinitialarabic'] = 0xFEEB;\n t['hehiragana'] = 0x3078;\n t['hehmedialaltonearabic'] = 0xFBA9;\n t['hehmedialarabic'] = 0xFEEC;\n t['heiseierasquare'] = 0x337B;\n t['hekatakana'] = 0x30D8;\n t['hekatakanahalfwidth'] = 0xFF8D;\n t['hekutaarusquare'] = 0x3336;\n t['henghook'] = 0x0267;\n t['herutusquare'] = 0x3339;\n t['het'] = 0x05D7;\n t['hethebrew'] = 0x05D7;\n t['hhook'] = 0x0266;\n t['hhooksuperior'] = 0x02B1;\n t['hieuhacirclekorean'] = 0x327B;\n t['hieuhaparenkorean'] = 0x321B;\n t['hieuhcirclekorean'] = 0x326D;\n t['hieuhkorean'] = 0x314E;\n t['hieuhparenkorean'] = 0x320D;\n t['hihiragana'] = 0x3072;\n t['hikatakana'] = 0x30D2;\n t['hikatakanahalfwidth'] = 0xFF8B;\n t['hiriq'] = 0x05B4;\n t['hiriq14'] = 0x05B4;\n t['hiriq21'] = 0x05B4;\n t['hiriq2d'] = 0x05B4;\n t['hiriqhebrew'] = 0x05B4;\n t['hiriqnarrowhebrew'] = 0x05B4;\n t['hiriqquarterhebrew'] = 0x05B4;\n t['hiriqwidehebrew'] = 0x05B4;\n t['hlinebelow'] = 0x1E96;\n t['hmonospace'] = 0xFF48;\n t['hoarmenian'] = 0x0570;\n t['hohipthai'] = 0x0E2B;\n t['hohiragana'] = 0x307B;\n t['hokatakana'] = 0x30DB;\n t['hokatakanahalfwidth'] = 0xFF8E;\n t['holam'] = 0x05B9;\n t['holam19'] = 0x05B9;\n t['holam26'] = 0x05B9;\n t['holam32'] = 0x05B9;\n t['holamhebrew'] = 0x05B9;\n t['holamnarrowhebrew'] = 0x05B9;\n t['holamquarterhebrew'] = 0x05B9;\n t['holamwidehebrew'] = 0x05B9;\n t['honokhukthai'] = 0x0E2E;\n t['hookabovecomb'] = 0x0309;\n t['hookcmb'] = 0x0309;\n t['hookpalatalizedbelowcmb'] = 0x0321;\n t['hookretroflexbelowcmb'] = 0x0322;\n t['hoonsquare'] = 0x3342;\n t['horicoptic'] = 0x03E9;\n t['horizontalbar'] = 0x2015;\n t['horncmb'] = 0x031B;\n t['hotsprings'] = 0x2668;\n t['house'] = 0x2302;\n t['hparen'] = 0x24A3;\n t['hsuperior'] = 0x02B0;\n t['hturned'] = 0x0265;\n t['huhiragana'] = 0x3075;\n t['huiitosquare'] = 0x3333;\n t['hukatakana'] = 0x30D5;\n t['hukatakanahalfwidth'] = 0xFF8C;\n t['hungarumlaut'] = 0x02DD;\n t['hungarumlautcmb'] = 0x030B;\n t['hv'] = 0x0195;\n t['hyphen'] = 0x002D;\n t['hypheninferior'] = 0xF6E5;\n t['hyphenmonospace'] = 0xFF0D;\n t['hyphensmall'] = 0xFE63;\n t['hyphensuperior'] = 0xF6E6;\n t['hyphentwo'] = 0x2010;\n t['i'] = 0x0069;\n t['iacute'] = 0x00ED;\n t['iacyrillic'] = 0x044F;\n t['ibengali'] = 0x0987;\n t['ibopomofo'] = 0x3127;\n t['ibreve'] = 0x012D;\n t['icaron'] = 0x01D0;\n t['icircle'] = 0x24D8;\n t['icircumflex'] = 0x00EE;\n t['icyrillic'] = 0x0456;\n t['idblgrave'] = 0x0209;\n t['ideographearthcircle'] = 0x328F;\n t['ideographfirecircle'] = 0x328B;\n t['ideographicallianceparen'] = 0x323F;\n t['ideographiccallparen'] = 0x323A;\n t['ideographiccentrecircle'] = 0x32A5;\n t['ideographicclose'] = 0x3006;\n t['ideographiccomma'] = 0x3001;\n t['ideographiccommaleft'] = 0xFF64;\n t['ideographiccongratulationparen'] = 0x3237;\n t['ideographiccorrectcircle'] = 0x32A3;\n t['ideographicearthparen'] = 0x322F;\n t['ideographicenterpriseparen'] = 0x323D;\n t['ideographicexcellentcircle'] = 0x329D;\n t['ideographicfestivalparen'] = 0x3240;\n t['ideographicfinancialcircle'] = 0x3296;\n t['ideographicfinancialparen'] = 0x3236;\n t['ideographicfireparen'] = 0x322B;\n t['ideographichaveparen'] = 0x3232;\n t['ideographichighcircle'] = 0x32A4;\n t['ideographiciterationmark'] = 0x3005;\n t['ideographiclaborcircle'] = 0x3298;\n t['ideographiclaborparen'] = 0x3238;\n t['ideographicleftcircle'] = 0x32A7;\n t['ideographiclowcircle'] = 0x32A6;\n t['ideographicmedicinecircle'] = 0x32A9;\n t['ideographicmetalparen'] = 0x322E;\n t['ideographicmoonparen'] = 0x322A;\n t['ideographicnameparen'] = 0x3234;\n t['ideographicperiod'] = 0x3002;\n t['ideographicprintcircle'] = 0x329E;\n t['ideographicreachparen'] = 0x3243;\n t['ideographicrepresentparen'] = 0x3239;\n t['ideographicresourceparen'] = 0x323E;\n t['ideographicrightcircle'] = 0x32A8;\n t['ideographicsecretcircle'] = 0x3299;\n t['ideographicselfparen'] = 0x3242;\n t['ideographicsocietyparen'] = 0x3233;\n t['ideographicspace'] = 0x3000;\n t['ideographicspecialparen'] = 0x3235;\n t['ideographicstockparen'] = 0x3231;\n t['ideographicstudyparen'] = 0x323B;\n t['ideographicsunparen'] = 0x3230;\n t['ideographicsuperviseparen'] = 0x323C;\n t['ideographicwaterparen'] = 0x322C;\n t['ideographicwoodparen'] = 0x322D;\n t['ideographiczero'] = 0x3007;\n t['ideographmetalcircle'] = 0x328E;\n t['ideographmooncircle'] = 0x328A;\n t['ideographnamecircle'] = 0x3294;\n t['ideographsuncircle'] = 0x3290;\n t['ideographwatercircle'] = 0x328C;\n t['ideographwoodcircle'] = 0x328D;\n t['ideva'] = 0x0907;\n t['idieresis'] = 0x00EF;\n t['idieresisacute'] = 0x1E2F;\n t['idieresiscyrillic'] = 0x04E5;\n t['idotbelow'] = 0x1ECB;\n t['iebrevecyrillic'] = 0x04D7;\n t['iecyrillic'] = 0x0435;\n t['ieungacirclekorean'] = 0x3275;\n t['ieungaparenkorean'] = 0x3215;\n t['ieungcirclekorean'] = 0x3267;\n t['ieungkorean'] = 0x3147;\n t['ieungparenkorean'] = 0x3207;\n t['igrave'] = 0x00EC;\n t['igujarati'] = 0x0A87;\n t['igurmukhi'] = 0x0A07;\n t['ihiragana'] = 0x3044;\n t['ihookabove'] = 0x1EC9;\n t['iibengali'] = 0x0988;\n t['iicyrillic'] = 0x0438;\n t['iideva'] = 0x0908;\n t['iigujarati'] = 0x0A88;\n t['iigurmukhi'] = 0x0A08;\n t['iimatragurmukhi'] = 0x0A40;\n t['iinvertedbreve'] = 0x020B;\n t['iishortcyrillic'] = 0x0439;\n t['iivowelsignbengali'] = 0x09C0;\n t['iivowelsigndeva'] = 0x0940;\n t['iivowelsigngujarati'] = 0x0AC0;\n t['ij'] = 0x0133;\n t['ikatakana'] = 0x30A4;\n t['ikatakanahalfwidth'] = 0xFF72;\n t['ikorean'] = 0x3163;\n t['ilde'] = 0x02DC;\n t['iluyhebrew'] = 0x05AC;\n t['imacron'] = 0x012B;\n t['imacroncyrillic'] = 0x04E3;\n t['imageorapproximatelyequal'] = 0x2253;\n t['imatragurmukhi'] = 0x0A3F;\n t['imonospace'] = 0xFF49;\n t['increment'] = 0x2206;\n t['infinity'] = 0x221E;\n t['iniarmenian'] = 0x056B;\n t['integral'] = 0x222B;\n t['integralbottom'] = 0x2321;\n t['integralbt'] = 0x2321;\n t['integralex'] = 0xF8F5;\n t['integraltop'] = 0x2320;\n t['integraltp'] = 0x2320;\n t['intersection'] = 0x2229;\n t['intisquare'] = 0x3305;\n t['invbullet'] = 0x25D8;\n t['invcircle'] = 0x25D9;\n t['invsmileface'] = 0x263B;\n t['iocyrillic'] = 0x0451;\n t['iogonek'] = 0x012F;\n t['iota'] = 0x03B9;\n t['iotadieresis'] = 0x03CA;\n t['iotadieresistonos'] = 0x0390;\n t['iotalatin'] = 0x0269;\n t['iotatonos'] = 0x03AF;\n t['iparen'] = 0x24A4;\n t['irigurmukhi'] = 0x0A72;\n t['ismallhiragana'] = 0x3043;\n t['ismallkatakana'] = 0x30A3;\n t['ismallkatakanahalfwidth'] = 0xFF68;\n t['issharbengali'] = 0x09FA;\n t['istroke'] = 0x0268;\n t['isuperior'] = 0xF6ED;\n t['iterationhiragana'] = 0x309D;\n t['iterationkatakana'] = 0x30FD;\n t['itilde'] = 0x0129;\n t['itildebelow'] = 0x1E2D;\n t['iubopomofo'] = 0x3129;\n t['iucyrillic'] = 0x044E;\n t['ivowelsignbengali'] = 0x09BF;\n t['ivowelsigndeva'] = 0x093F;\n t['ivowelsigngujarati'] = 0x0ABF;\n t['izhitsacyrillic'] = 0x0475;\n t['izhitsadblgravecyrillic'] = 0x0477;\n t['j'] = 0x006A;\n t['jaarmenian'] = 0x0571;\n t['jabengali'] = 0x099C;\n t['jadeva'] = 0x091C;\n t['jagujarati'] = 0x0A9C;\n t['jagurmukhi'] = 0x0A1C;\n t['jbopomofo'] = 0x3110;\n t['jcaron'] = 0x01F0;\n t['jcircle'] = 0x24D9;\n t['jcircumflex'] = 0x0135;\n t['jcrossedtail'] = 0x029D;\n t['jdotlessstroke'] = 0x025F;\n t['jecyrillic'] = 0x0458;\n t['jeemarabic'] = 0x062C;\n t['jeemfinalarabic'] = 0xFE9E;\n t['jeeminitialarabic'] = 0xFE9F;\n t['jeemmedialarabic'] = 0xFEA0;\n t['jeharabic'] = 0x0698;\n t['jehfinalarabic'] = 0xFB8B;\n t['jhabengali'] = 0x099D;\n t['jhadeva'] = 0x091D;\n t['jhagujarati'] = 0x0A9D;\n t['jhagurmukhi'] = 0x0A1D;\n t['jheharmenian'] = 0x057B;\n t['jis'] = 0x3004;\n t['jmonospace'] = 0xFF4A;\n t['jparen'] = 0x24A5;\n t['jsuperior'] = 0x02B2;\n t['k'] = 0x006B;\n t['kabashkircyrillic'] = 0x04A1;\n t['kabengali'] = 0x0995;\n t['kacute'] = 0x1E31;\n t['kacyrillic'] = 0x043A;\n t['kadescendercyrillic'] = 0x049B;\n t['kadeva'] = 0x0915;\n t['kaf'] = 0x05DB;\n t['kafarabic'] = 0x0643;\n t['kafdagesh'] = 0xFB3B;\n t['kafdageshhebrew'] = 0xFB3B;\n t['kaffinalarabic'] = 0xFEDA;\n t['kafhebrew'] = 0x05DB;\n t['kafinitialarabic'] = 0xFEDB;\n t['kafmedialarabic'] = 0xFEDC;\n t['kafrafehebrew'] = 0xFB4D;\n t['kagujarati'] = 0x0A95;\n t['kagurmukhi'] = 0x0A15;\n t['kahiragana'] = 0x304B;\n t['kahookcyrillic'] = 0x04C4;\n t['kakatakana'] = 0x30AB;\n t['kakatakanahalfwidth'] = 0xFF76;\n t['kappa'] = 0x03BA;\n t['kappasymbolgreek'] = 0x03F0;\n t['kapyeounmieumkorean'] = 0x3171;\n t['kapyeounphieuphkorean'] = 0x3184;\n t['kapyeounpieupkorean'] = 0x3178;\n t['kapyeounssangpieupkorean'] = 0x3179;\n t['karoriisquare'] = 0x330D;\n t['kashidaautoarabic'] = 0x0640;\n t['kashidaautonosidebearingarabic'] = 0x0640;\n t['kasmallkatakana'] = 0x30F5;\n t['kasquare'] = 0x3384;\n t['kasraarabic'] = 0x0650;\n t['kasratanarabic'] = 0x064D;\n t['kastrokecyrillic'] = 0x049F;\n t['katahiraprolongmarkhalfwidth'] = 0xFF70;\n t['kaverticalstrokecyrillic'] = 0x049D;\n t['kbopomofo'] = 0x310E;\n t['kcalsquare'] = 0x3389;\n t['kcaron'] = 0x01E9;\n t['kcedilla'] = 0x0137;\n t['kcircle'] = 0x24DA;\n t['kcommaaccent'] = 0x0137;\n t['kdotbelow'] = 0x1E33;\n t['keharmenian'] = 0x0584;\n t['kehiragana'] = 0x3051;\n t['kekatakana'] = 0x30B1;\n t['kekatakanahalfwidth'] = 0xFF79;\n t['kenarmenian'] = 0x056F;\n t['kesmallkatakana'] = 0x30F6;\n t['kgreenlandic'] = 0x0138;\n t['khabengali'] = 0x0996;\n t['khacyrillic'] = 0x0445;\n t['khadeva'] = 0x0916;\n t['khagujarati'] = 0x0A96;\n t['khagurmukhi'] = 0x0A16;\n t['khaharabic'] = 0x062E;\n t['khahfinalarabic'] = 0xFEA6;\n t['khahinitialarabic'] = 0xFEA7;\n t['khahmedialarabic'] = 0xFEA8;\n t['kheicoptic'] = 0x03E7;\n t['khhadeva'] = 0x0959;\n t['khhagurmukhi'] = 0x0A59;\n t['khieukhacirclekorean'] = 0x3278;\n t['khieukhaparenkorean'] = 0x3218;\n t['khieukhcirclekorean'] = 0x326A;\n t['khieukhkorean'] = 0x314B;\n t['khieukhparenkorean'] = 0x320A;\n t['khokhaithai'] = 0x0E02;\n t['khokhonthai'] = 0x0E05;\n t['khokhuatthai'] = 0x0E03;\n t['khokhwaithai'] = 0x0E04;\n t['khomutthai'] = 0x0E5B;\n t['khook'] = 0x0199;\n t['khorakhangthai'] = 0x0E06;\n t['khzsquare'] = 0x3391;\n t['kihiragana'] = 0x304D;\n t['kikatakana'] = 0x30AD;\n t['kikatakanahalfwidth'] = 0xFF77;\n t['kiroguramusquare'] = 0x3315;\n t['kiromeetorusquare'] = 0x3316;\n t['kirosquare'] = 0x3314;\n t['kiyeokacirclekorean'] = 0x326E;\n t['kiyeokaparenkorean'] = 0x320E;\n t['kiyeokcirclekorean'] = 0x3260;\n t['kiyeokkorean'] = 0x3131;\n t['kiyeokparenkorean'] = 0x3200;\n t['kiyeoksioskorean'] = 0x3133;\n t['kjecyrillic'] = 0x045C;\n t['klinebelow'] = 0x1E35;\n t['klsquare'] = 0x3398;\n t['kmcubedsquare'] = 0x33A6;\n t['kmonospace'] = 0xFF4B;\n t['kmsquaredsquare'] = 0x33A2;\n t['kohiragana'] = 0x3053;\n t['kohmsquare'] = 0x33C0;\n t['kokaithai'] = 0x0E01;\n t['kokatakana'] = 0x30B3;\n t['kokatakanahalfwidth'] = 0xFF7A;\n t['kooposquare'] = 0x331E;\n t['koppacyrillic'] = 0x0481;\n t['koreanstandardsymbol'] = 0x327F;\n t['koroniscmb'] = 0x0343;\n t['kparen'] = 0x24A6;\n t['kpasquare'] = 0x33AA;\n t['ksicyrillic'] = 0x046F;\n t['ktsquare'] = 0x33CF;\n t['kturned'] = 0x029E;\n t['kuhiragana'] = 0x304F;\n t['kukatakana'] = 0x30AF;\n t['kukatakanahalfwidth'] = 0xFF78;\n t['kvsquare'] = 0x33B8;\n t['kwsquare'] = 0x33BE;\n t['l'] = 0x006C;\n t['labengali'] = 0x09B2;\n t['lacute'] = 0x013A;\n t['ladeva'] = 0x0932;\n t['lagujarati'] = 0x0AB2;\n t['lagurmukhi'] = 0x0A32;\n t['lakkhangyaothai'] = 0x0E45;\n t['lamaleffinalarabic'] = 0xFEFC;\n t['lamalefhamzaabovefinalarabic'] = 0xFEF8;\n t['lamalefhamzaaboveisolatedarabic'] = 0xFEF7;\n t['lamalefhamzabelowfinalarabic'] = 0xFEFA;\n t['lamalefhamzabelowisolatedarabic'] = 0xFEF9;\n t['lamalefisolatedarabic'] = 0xFEFB;\n t['lamalefmaddaabovefinalarabic'] = 0xFEF6;\n t['lamalefmaddaaboveisolatedarabic'] = 0xFEF5;\n t['lamarabic'] = 0x0644;\n t['lambda'] = 0x03BB;\n t['lambdastroke'] = 0x019B;\n t['lamed'] = 0x05DC;\n t['lameddagesh'] = 0xFB3C;\n t['lameddageshhebrew'] = 0xFB3C;\n t['lamedhebrew'] = 0x05DC;\n t['lamfinalarabic'] = 0xFEDE;\n t['lamhahinitialarabic'] = 0xFCCA;\n t['laminitialarabic'] = 0xFEDF;\n t['lamjeeminitialarabic'] = 0xFCC9;\n t['lamkhahinitialarabic'] = 0xFCCB;\n t['lamlamhehisolatedarabic'] = 0xFDF2;\n t['lammedialarabic'] = 0xFEE0;\n t['lammeemhahinitialarabic'] = 0xFD88;\n t['lammeeminitialarabic'] = 0xFCCC;\n t['largecircle'] = 0x25EF;\n t['lbar'] = 0x019A;\n t['lbelt'] = 0x026C;\n t['lbopomofo'] = 0x310C;\n t['lcaron'] = 0x013E;\n t['lcedilla'] = 0x013C;\n t['lcircle'] = 0x24DB;\n t['lcircumflexbelow'] = 0x1E3D;\n t['lcommaaccent'] = 0x013C;\n t['ldot'] = 0x0140;\n t['ldotaccent'] = 0x0140;\n t['ldotbelow'] = 0x1E37;\n t['ldotbelowmacron'] = 0x1E39;\n t['leftangleabovecmb'] = 0x031A;\n t['lefttackbelowcmb'] = 0x0318;\n t['less'] = 0x003C;\n t['lessequal'] = 0x2264;\n t['lessequalorgreater'] = 0x22DA;\n t['lessmonospace'] = 0xFF1C;\n t['lessorequivalent'] = 0x2272;\n t['lessorgreater'] = 0x2276;\n t['lessoverequal'] = 0x2266;\n t['lesssmall'] = 0xFE64;\n t['lezh'] = 0x026E;\n t['lfblock'] = 0x258C;\n t['lhookretroflex'] = 0x026D;\n t['lira'] = 0x20A4;\n t['liwnarmenian'] = 0x056C;\n t['lj'] = 0x01C9;\n t['ljecyrillic'] = 0x0459;\n t['ll'] = 0xF6C0;\n t['lladeva'] = 0x0933;\n t['llagujarati'] = 0x0AB3;\n t['llinebelow'] = 0x1E3B;\n t['llladeva'] = 0x0934;\n t['llvocalicbengali'] = 0x09E1;\n t['llvocalicdeva'] = 0x0961;\n t['llvocalicvowelsignbengali'] = 0x09E3;\n t['llvocalicvowelsigndeva'] = 0x0963;\n t['lmiddletilde'] = 0x026B;\n t['lmonospace'] = 0xFF4C;\n t['lmsquare'] = 0x33D0;\n t['lochulathai'] = 0x0E2C;\n t['logicaland'] = 0x2227;\n t['logicalnot'] = 0x00AC;\n t['logicalnotreversed'] = 0x2310;\n t['logicalor'] = 0x2228;\n t['lolingthai'] = 0x0E25;\n t['longs'] = 0x017F;\n t['lowlinecenterline'] = 0xFE4E;\n t['lowlinecmb'] = 0x0332;\n t['lowlinedashed'] = 0xFE4D;\n t['lozenge'] = 0x25CA;\n t['lparen'] = 0x24A7;\n t['lslash'] = 0x0142;\n t['lsquare'] = 0x2113;\n t['lsuperior'] = 0xF6EE;\n t['ltshade'] = 0x2591;\n t['luthai'] = 0x0E26;\n t['lvocalicbengali'] = 0x098C;\n t['lvocalicdeva'] = 0x090C;\n t['lvocalicvowelsignbengali'] = 0x09E2;\n t['lvocalicvowelsigndeva'] = 0x0962;\n t['lxsquare'] = 0x33D3;\n t['m'] = 0x006D;\n t['mabengali'] = 0x09AE;\n t['macron'] = 0x00AF;\n t['macronbelowcmb'] = 0x0331;\n t['macroncmb'] = 0x0304;\n t['macronlowmod'] = 0x02CD;\n t['macronmonospace'] = 0xFFE3;\n t['macute'] = 0x1E3F;\n t['madeva'] = 0x092E;\n t['magujarati'] = 0x0AAE;\n t['magurmukhi'] = 0x0A2E;\n t['mahapakhhebrew'] = 0x05A4;\n t['mahapakhlefthebrew'] = 0x05A4;\n t['mahiragana'] = 0x307E;\n t['maichattawalowleftthai'] = 0xF895;\n t['maichattawalowrightthai'] = 0xF894;\n t['maichattawathai'] = 0x0E4B;\n t['maichattawaupperleftthai'] = 0xF893;\n t['maieklowleftthai'] = 0xF88C;\n t['maieklowrightthai'] = 0xF88B;\n t['maiekthai'] = 0x0E48;\n t['maiekupperleftthai'] = 0xF88A;\n t['maihanakatleftthai'] = 0xF884;\n t['maihanakatthai'] = 0x0E31;\n t['maitaikhuleftthai'] = 0xF889;\n t['maitaikhuthai'] = 0x0E47;\n t['maitholowleftthai'] = 0xF88F;\n t['maitholowrightthai'] = 0xF88E;\n t['maithothai'] = 0x0E49;\n t['maithoupperleftthai'] = 0xF88D;\n t['maitrilowleftthai'] = 0xF892;\n t['maitrilowrightthai'] = 0xF891;\n t['maitrithai'] = 0x0E4A;\n t['maitriupperleftthai'] = 0xF890;\n t['maiyamokthai'] = 0x0E46;\n t['makatakana'] = 0x30DE;\n t['makatakanahalfwidth'] = 0xFF8F;\n t['male'] = 0x2642;\n t['mansyonsquare'] = 0x3347;\n t['maqafhebrew'] = 0x05BE;\n t['mars'] = 0x2642;\n t['masoracirclehebrew'] = 0x05AF;\n t['masquare'] = 0x3383;\n t['mbopomofo'] = 0x3107;\n t['mbsquare'] = 0x33D4;\n t['mcircle'] = 0x24DC;\n t['mcubedsquare'] = 0x33A5;\n t['mdotaccent'] = 0x1E41;\n t['mdotbelow'] = 0x1E43;\n t['meemarabic'] = 0x0645;\n t['meemfinalarabic'] = 0xFEE2;\n t['meeminitialarabic'] = 0xFEE3;\n t['meemmedialarabic'] = 0xFEE4;\n t['meemmeeminitialarabic'] = 0xFCD1;\n t['meemmeemisolatedarabic'] = 0xFC48;\n t['meetorusquare'] = 0x334D;\n t['mehiragana'] = 0x3081;\n t['meizierasquare'] = 0x337E;\n t['mekatakana'] = 0x30E1;\n t['mekatakanahalfwidth'] = 0xFF92;\n t['mem'] = 0x05DE;\n t['memdagesh'] = 0xFB3E;\n t['memdageshhebrew'] = 0xFB3E;\n t['memhebrew'] = 0x05DE;\n t['menarmenian'] = 0x0574;\n t['merkhahebrew'] = 0x05A5;\n t['merkhakefulahebrew'] = 0x05A6;\n t['merkhakefulalefthebrew'] = 0x05A6;\n t['merkhalefthebrew'] = 0x05A5;\n t['mhook'] = 0x0271;\n t['mhzsquare'] = 0x3392;\n t['middledotkatakanahalfwidth'] = 0xFF65;\n t['middot'] = 0x00B7;\n t['mieumacirclekorean'] = 0x3272;\n t['mieumaparenkorean'] = 0x3212;\n t['mieumcirclekorean'] = 0x3264;\n t['mieumkorean'] = 0x3141;\n t['mieumpansioskorean'] = 0x3170;\n t['mieumparenkorean'] = 0x3204;\n t['mieumpieupkorean'] = 0x316E;\n t['mieumsioskorean'] = 0x316F;\n t['mihiragana'] = 0x307F;\n t['mikatakana'] = 0x30DF;\n t['mikatakanahalfwidth'] = 0xFF90;\n t['minus'] = 0x2212;\n t['minusbelowcmb'] = 0x0320;\n t['minuscircle'] = 0x2296;\n t['minusmod'] = 0x02D7;\n t['minusplus'] = 0x2213;\n t['minute'] = 0x2032;\n t['miribaarusquare'] = 0x334A;\n t['mirisquare'] = 0x3349;\n t['mlonglegturned'] = 0x0270;\n t['mlsquare'] = 0x3396;\n t['mmcubedsquare'] = 0x33A3;\n t['mmonospace'] = 0xFF4D;\n t['mmsquaredsquare'] = 0x339F;\n t['mohiragana'] = 0x3082;\n t['mohmsquare'] = 0x33C1;\n t['mokatakana'] = 0x30E2;\n t['mokatakanahalfwidth'] = 0xFF93;\n t['molsquare'] = 0x33D6;\n t['momathai'] = 0x0E21;\n t['moverssquare'] = 0x33A7;\n t['moverssquaredsquare'] = 0x33A8;\n t['mparen'] = 0x24A8;\n t['mpasquare'] = 0x33AB;\n t['mssquare'] = 0x33B3;\n t['msuperior'] = 0xF6EF;\n t['mturned'] = 0x026F;\n t['mu'] = 0x00B5;\n t['mu1'] = 0x00B5;\n t['muasquare'] = 0x3382;\n t['muchgreater'] = 0x226B;\n t['muchless'] = 0x226A;\n t['mufsquare'] = 0x338C;\n t['mugreek'] = 0x03BC;\n t['mugsquare'] = 0x338D;\n t['muhiragana'] = 0x3080;\n t['mukatakana'] = 0x30E0;\n t['mukatakanahalfwidth'] = 0xFF91;\n t['mulsquare'] = 0x3395;\n t['multiply'] = 0x00D7;\n t['mumsquare'] = 0x339B;\n t['munahhebrew'] = 0x05A3;\n t['munahlefthebrew'] = 0x05A3;\n t['musicalnote'] = 0x266A;\n t['musicalnotedbl'] = 0x266B;\n t['musicflatsign'] = 0x266D;\n t['musicsharpsign'] = 0x266F;\n t['mussquare'] = 0x33B2;\n t['muvsquare'] = 0x33B6;\n t['muwsquare'] = 0x33BC;\n t['mvmegasquare'] = 0x33B9;\n t['mvsquare'] = 0x33B7;\n t['mwmegasquare'] = 0x33BF;\n t['mwsquare'] = 0x33BD;\n t['n'] = 0x006E;\n t['nabengali'] = 0x09A8;\n t['nabla'] = 0x2207;\n t['nacute'] = 0x0144;\n t['nadeva'] = 0x0928;\n t['nagujarati'] = 0x0AA8;\n t['nagurmukhi'] = 0x0A28;\n t['nahiragana'] = 0x306A;\n t['nakatakana'] = 0x30CA;\n t['nakatakanahalfwidth'] = 0xFF85;\n t['napostrophe'] = 0x0149;\n t['nasquare'] = 0x3381;\n t['nbopomofo'] = 0x310B;\n t['nbspace'] = 0x00A0;\n t['ncaron'] = 0x0148;\n t['ncedilla'] = 0x0146;\n t['ncircle'] = 0x24DD;\n t['ncircumflexbelow'] = 0x1E4B;\n t['ncommaaccent'] = 0x0146;\n t['ndotaccent'] = 0x1E45;\n t['ndotbelow'] = 0x1E47;\n t['nehiragana'] = 0x306D;\n t['nekatakana'] = 0x30CD;\n t['nekatakanahalfwidth'] = 0xFF88;\n t['newsheqelsign'] = 0x20AA;\n t['nfsquare'] = 0x338B;\n t['ngabengali'] = 0x0999;\n t['ngadeva'] = 0x0919;\n t['ngagujarati'] = 0x0A99;\n t['ngagurmukhi'] = 0x0A19;\n t['ngonguthai'] = 0x0E07;\n t['nhiragana'] = 0x3093;\n t['nhookleft'] = 0x0272;\n t['nhookretroflex'] = 0x0273;\n t['nieunacirclekorean'] = 0x326F;\n t['nieunaparenkorean'] = 0x320F;\n t['nieuncieuckorean'] = 0x3135;\n t['nieuncirclekorean'] = 0x3261;\n t['nieunhieuhkorean'] = 0x3136;\n t['nieunkorean'] = 0x3134;\n t['nieunpansioskorean'] = 0x3168;\n t['nieunparenkorean'] = 0x3201;\n t['nieunsioskorean'] = 0x3167;\n t['nieuntikeutkorean'] = 0x3166;\n t['nihiragana'] = 0x306B;\n t['nikatakana'] = 0x30CB;\n t['nikatakanahalfwidth'] = 0xFF86;\n t['nikhahitleftthai'] = 0xF899;\n t['nikhahitthai'] = 0x0E4D;\n t['nine'] = 0x0039;\n t['ninearabic'] = 0x0669;\n t['ninebengali'] = 0x09EF;\n t['ninecircle'] = 0x2468;\n t['ninecircleinversesansserif'] = 0x2792;\n t['ninedeva'] = 0x096F;\n t['ninegujarati'] = 0x0AEF;\n t['ninegurmukhi'] = 0x0A6F;\n t['ninehackarabic'] = 0x0669;\n t['ninehangzhou'] = 0x3029;\n t['nineideographicparen'] = 0x3228;\n t['nineinferior'] = 0x2089;\n t['ninemonospace'] = 0xFF19;\n t['nineoldstyle'] = 0xF739;\n t['nineparen'] = 0x247C;\n t['nineperiod'] = 0x2490;\n t['ninepersian'] = 0x06F9;\n t['nineroman'] = 0x2178;\n t['ninesuperior'] = 0x2079;\n t['nineteencircle'] = 0x2472;\n t['nineteenparen'] = 0x2486;\n t['nineteenperiod'] = 0x249A;\n t['ninethai'] = 0x0E59;\n t['nj'] = 0x01CC;\n t['njecyrillic'] = 0x045A;\n t['nkatakana'] = 0x30F3;\n t['nkatakanahalfwidth'] = 0xFF9D;\n t['nlegrightlong'] = 0x019E;\n t['nlinebelow'] = 0x1E49;\n t['nmonospace'] = 0xFF4E;\n t['nmsquare'] = 0x339A;\n t['nnabengali'] = 0x09A3;\n t['nnadeva'] = 0x0923;\n t['nnagujarati'] = 0x0AA3;\n t['nnagurmukhi'] = 0x0A23;\n t['nnnadeva'] = 0x0929;\n t['nohiragana'] = 0x306E;\n t['nokatakana'] = 0x30CE;\n t['nokatakanahalfwidth'] = 0xFF89;\n t['nonbreakingspace'] = 0x00A0;\n t['nonenthai'] = 0x0E13;\n t['nonuthai'] = 0x0E19;\n t['noonarabic'] = 0x0646;\n t['noonfinalarabic'] = 0xFEE6;\n t['noonghunnaarabic'] = 0x06BA;\n t['noonghunnafinalarabic'] = 0xFB9F;\n t['nooninitialarabic'] = 0xFEE7;\n t['noonjeeminitialarabic'] = 0xFCD2;\n t['noonjeemisolatedarabic'] = 0xFC4B;\n t['noonmedialarabic'] = 0xFEE8;\n t['noonmeeminitialarabic'] = 0xFCD5;\n t['noonmeemisolatedarabic'] = 0xFC4E;\n t['noonnoonfinalarabic'] = 0xFC8D;\n t['notcontains'] = 0x220C;\n t['notelement'] = 0x2209;\n t['notelementof'] = 0x2209;\n t['notequal'] = 0x2260;\n t['notgreater'] = 0x226F;\n t['notgreaternorequal'] = 0x2271;\n t['notgreaternorless'] = 0x2279;\n t['notidentical'] = 0x2262;\n t['notless'] = 0x226E;\n t['notlessnorequal'] = 0x2270;\n t['notparallel'] = 0x2226;\n t['notprecedes'] = 0x2280;\n t['notsubset'] = 0x2284;\n t['notsucceeds'] = 0x2281;\n t['notsuperset'] = 0x2285;\n t['nowarmenian'] = 0x0576;\n t['nparen'] = 0x24A9;\n t['nssquare'] = 0x33B1;\n t['nsuperior'] = 0x207F;\n t['ntilde'] = 0x00F1;\n t['nu'] = 0x03BD;\n t['nuhiragana'] = 0x306C;\n t['nukatakana'] = 0x30CC;\n t['nukatakanahalfwidth'] = 0xFF87;\n t['nuktabengali'] = 0x09BC;\n t['nuktadeva'] = 0x093C;\n t['nuktagujarati'] = 0x0ABC;\n t['nuktagurmukhi'] = 0x0A3C;\n t['numbersign'] = 0x0023;\n t['numbersignmonospace'] = 0xFF03;\n t['numbersignsmall'] = 0xFE5F;\n t['numeralsigngreek'] = 0x0374;\n t['numeralsignlowergreek'] = 0x0375;\n t['numero'] = 0x2116;\n t['nun'] = 0x05E0;\n t['nundagesh'] = 0xFB40;\n t['nundageshhebrew'] = 0xFB40;\n t['nunhebrew'] = 0x05E0;\n t['nvsquare'] = 0x33B5;\n t['nwsquare'] = 0x33BB;\n t['nyabengali'] = 0x099E;\n t['nyadeva'] = 0x091E;\n t['nyagujarati'] = 0x0A9E;\n t['nyagurmukhi'] = 0x0A1E;\n t['o'] = 0x006F;\n t['oacute'] = 0x00F3;\n t['oangthai'] = 0x0E2D;\n t['obarred'] = 0x0275;\n t['obarredcyrillic'] = 0x04E9;\n t['obarreddieresiscyrillic'] = 0x04EB;\n t['obengali'] = 0x0993;\n t['obopomofo'] = 0x311B;\n t['obreve'] = 0x014F;\n t['ocandradeva'] = 0x0911;\n t['ocandragujarati'] = 0x0A91;\n t['ocandravowelsigndeva'] = 0x0949;\n t['ocandravowelsigngujarati'] = 0x0AC9;\n t['ocaron'] = 0x01D2;\n t['ocircle'] = 0x24DE;\n t['ocircumflex'] = 0x00F4;\n t['ocircumflexacute'] = 0x1ED1;\n t['ocircumflexdotbelow'] = 0x1ED9;\n t['ocircumflexgrave'] = 0x1ED3;\n t['ocircumflexhookabove'] = 0x1ED5;\n t['ocircumflextilde'] = 0x1ED7;\n t['ocyrillic'] = 0x043E;\n t['odblacute'] = 0x0151;\n t['odblgrave'] = 0x020D;\n t['odeva'] = 0x0913;\n t['odieresis'] = 0x00F6;\n t['odieresiscyrillic'] = 0x04E7;\n t['odotbelow'] = 0x1ECD;\n t['oe'] = 0x0153;\n t['oekorean'] = 0x315A;\n t['ogonek'] = 0x02DB;\n t['ogonekcmb'] = 0x0328;\n t['ograve'] = 0x00F2;\n t['ogujarati'] = 0x0A93;\n t['oharmenian'] = 0x0585;\n t['ohiragana'] = 0x304A;\n t['ohookabove'] = 0x1ECF;\n t['ohorn'] = 0x01A1;\n t['ohornacute'] = 0x1EDB;\n t['ohorndotbelow'] = 0x1EE3;\n t['ohorngrave'] = 0x1EDD;\n t['ohornhookabove'] = 0x1EDF;\n t['ohorntilde'] = 0x1EE1;\n t['ohungarumlaut'] = 0x0151;\n t['oi'] = 0x01A3;\n t['oinvertedbreve'] = 0x020F;\n t['okatakana'] = 0x30AA;\n t['okatakanahalfwidth'] = 0xFF75;\n t['okorean'] = 0x3157;\n t['olehebrew'] = 0x05AB;\n t['omacron'] = 0x014D;\n t['omacronacute'] = 0x1E53;\n t['omacrongrave'] = 0x1E51;\n t['omdeva'] = 0x0950;\n t['omega'] = 0x03C9;\n t['omega1'] = 0x03D6;\n t['omegacyrillic'] = 0x0461;\n t['omegalatinclosed'] = 0x0277;\n t['omegaroundcyrillic'] = 0x047B;\n t['omegatitlocyrillic'] = 0x047D;\n t['omegatonos'] = 0x03CE;\n t['omgujarati'] = 0x0AD0;\n t['omicron'] = 0x03BF;\n t['omicrontonos'] = 0x03CC;\n t['omonospace'] = 0xFF4F;\n t['one'] = 0x0031;\n t['onearabic'] = 0x0661;\n t['onebengali'] = 0x09E7;\n t['onecircle'] = 0x2460;\n t['onecircleinversesansserif'] = 0x278A;\n t['onedeva'] = 0x0967;\n t['onedotenleader'] = 0x2024;\n t['oneeighth'] = 0x215B;\n t['onefitted'] = 0xF6DC;\n t['onegujarati'] = 0x0AE7;\n t['onegurmukhi'] = 0x0A67;\n t['onehackarabic'] = 0x0661;\n t['onehalf'] = 0x00BD;\n t['onehangzhou'] = 0x3021;\n t['oneideographicparen'] = 0x3220;\n t['oneinferior'] = 0x2081;\n t['onemonospace'] = 0xFF11;\n t['onenumeratorbengali'] = 0x09F4;\n t['oneoldstyle'] = 0xF731;\n t['oneparen'] = 0x2474;\n t['oneperiod'] = 0x2488;\n t['onepersian'] = 0x06F1;\n t['onequarter'] = 0x00BC;\n t['oneroman'] = 0x2170;\n t['onesuperior'] = 0x00B9;\n t['onethai'] = 0x0E51;\n t['onethird'] = 0x2153;\n t['oogonek'] = 0x01EB;\n t['oogonekmacron'] = 0x01ED;\n t['oogurmukhi'] = 0x0A13;\n t['oomatragurmukhi'] = 0x0A4B;\n t['oopen'] = 0x0254;\n t['oparen'] = 0x24AA;\n t['openbullet'] = 0x25E6;\n t['option'] = 0x2325;\n t['ordfeminine'] = 0x00AA;\n t['ordmasculine'] = 0x00BA;\n t['orthogonal'] = 0x221F;\n t['oshortdeva'] = 0x0912;\n t['oshortvowelsigndeva'] = 0x094A;\n t['oslash'] = 0x00F8;\n t['oslashacute'] = 0x01FF;\n t['osmallhiragana'] = 0x3049;\n t['osmallkatakana'] = 0x30A9;\n t['osmallkatakanahalfwidth'] = 0xFF6B;\n t['ostrokeacute'] = 0x01FF;\n t['osuperior'] = 0xF6F0;\n t['otcyrillic'] = 0x047F;\n t['otilde'] = 0x00F5;\n t['otildeacute'] = 0x1E4D;\n t['otildedieresis'] = 0x1E4F;\n t['oubopomofo'] = 0x3121;\n t['overline'] = 0x203E;\n t['overlinecenterline'] = 0xFE4A;\n t['overlinecmb'] = 0x0305;\n t['overlinedashed'] = 0xFE49;\n t['overlinedblwavy'] = 0xFE4C;\n t['overlinewavy'] = 0xFE4B;\n t['overscore'] = 0x00AF;\n t['ovowelsignbengali'] = 0x09CB;\n t['ovowelsigndeva'] = 0x094B;\n t['ovowelsigngujarati'] = 0x0ACB;\n t['p'] = 0x0070;\n t['paampssquare'] = 0x3380;\n t['paasentosquare'] = 0x332B;\n t['pabengali'] = 0x09AA;\n t['pacute'] = 0x1E55;\n t['padeva'] = 0x092A;\n t['pagedown'] = 0x21DF;\n t['pageup'] = 0x21DE;\n t['pagujarati'] = 0x0AAA;\n t['pagurmukhi'] = 0x0A2A;\n t['pahiragana'] = 0x3071;\n t['paiyannoithai'] = 0x0E2F;\n t['pakatakana'] = 0x30D1;\n t['palatalizationcyrilliccmb'] = 0x0484;\n t['palochkacyrillic'] = 0x04C0;\n t['pansioskorean'] = 0x317F;\n t['paragraph'] = 0x00B6;\n t['parallel'] = 0x2225;\n t['parenleft'] = 0x0028;\n t['parenleftaltonearabic'] = 0xFD3E;\n t['parenleftbt'] = 0xF8ED;\n t['parenleftex'] = 0xF8EC;\n t['parenleftinferior'] = 0x208D;\n t['parenleftmonospace'] = 0xFF08;\n t['parenleftsmall'] = 0xFE59;\n t['parenleftsuperior'] = 0x207D;\n t['parenlefttp'] = 0xF8EB;\n t['parenleftvertical'] = 0xFE35;\n t['parenright'] = 0x0029;\n t['parenrightaltonearabic'] = 0xFD3F;\n t['parenrightbt'] = 0xF8F8;\n t['parenrightex'] = 0xF8F7;\n t['parenrightinferior'] = 0x208E;\n t['parenrightmonospace'] = 0xFF09;\n t['parenrightsmall'] = 0xFE5A;\n t['parenrightsuperior'] = 0x207E;\n t['parenrighttp'] = 0xF8F6;\n t['parenrightvertical'] = 0xFE36;\n t['partialdiff'] = 0x2202;\n t['paseqhebrew'] = 0x05C0;\n t['pashtahebrew'] = 0x0599;\n t['pasquare'] = 0x33A9;\n t['patah'] = 0x05B7;\n t['patah11'] = 0x05B7;\n t['patah1d'] = 0x05B7;\n t['patah2a'] = 0x05B7;\n t['patahhebrew'] = 0x05B7;\n t['patahnarrowhebrew'] = 0x05B7;\n t['patahquarterhebrew'] = 0x05B7;\n t['patahwidehebrew'] = 0x05B7;\n t['pazerhebrew'] = 0x05A1;\n t['pbopomofo'] = 0x3106;\n t['pcircle'] = 0x24DF;\n t['pdotaccent'] = 0x1E57;\n t['pe'] = 0x05E4;\n t['pecyrillic'] = 0x043F;\n t['pedagesh'] = 0xFB44;\n t['pedageshhebrew'] = 0xFB44;\n t['peezisquare'] = 0x333B;\n t['pefinaldageshhebrew'] = 0xFB43;\n t['peharabic'] = 0x067E;\n t['peharmenian'] = 0x057A;\n t['pehebrew'] = 0x05E4;\n t['pehfinalarabic'] = 0xFB57;\n t['pehinitialarabic'] = 0xFB58;\n t['pehiragana'] = 0x307A;\n t['pehmedialarabic'] = 0xFB59;\n t['pekatakana'] = 0x30DA;\n t['pemiddlehookcyrillic'] = 0x04A7;\n t['perafehebrew'] = 0xFB4E;\n t['percent'] = 0x0025;\n t['percentarabic'] = 0x066A;\n t['percentmonospace'] = 0xFF05;\n t['percentsmall'] = 0xFE6A;\n t['period'] = 0x002E;\n t['periodarmenian'] = 0x0589;\n t['periodcentered'] = 0x00B7;\n t['periodhalfwidth'] = 0xFF61;\n t['periodinferior'] = 0xF6E7;\n t['periodmonospace'] = 0xFF0E;\n t['periodsmall'] = 0xFE52;\n t['periodsuperior'] = 0xF6E8;\n t['perispomenigreekcmb'] = 0x0342;\n t['perpendicular'] = 0x22A5;\n t['perthousand'] = 0x2030;\n t['peseta'] = 0x20A7;\n t['pfsquare'] = 0x338A;\n t['phabengali'] = 0x09AB;\n t['phadeva'] = 0x092B;\n t['phagujarati'] = 0x0AAB;\n t['phagurmukhi'] = 0x0A2B;\n t['phi'] = 0x03C6;\n t['phi1'] = 0x03D5;\n t['phieuphacirclekorean'] = 0x327A;\n t['phieuphaparenkorean'] = 0x321A;\n t['phieuphcirclekorean'] = 0x326C;\n t['phieuphkorean'] = 0x314D;\n t['phieuphparenkorean'] = 0x320C;\n t['philatin'] = 0x0278;\n t['phinthuthai'] = 0x0E3A;\n t['phisymbolgreek'] = 0x03D5;\n t['phook'] = 0x01A5;\n t['phophanthai'] = 0x0E1E;\n t['phophungthai'] = 0x0E1C;\n t['phosamphaothai'] = 0x0E20;\n t['pi'] = 0x03C0;\n t['pieupacirclekorean'] = 0x3273;\n t['pieupaparenkorean'] = 0x3213;\n t['pieupcieuckorean'] = 0x3176;\n t['pieupcirclekorean'] = 0x3265;\n t['pieupkiyeokkorean'] = 0x3172;\n t['pieupkorean'] = 0x3142;\n t['pieupparenkorean'] = 0x3205;\n t['pieupsioskiyeokkorean'] = 0x3174;\n t['pieupsioskorean'] = 0x3144;\n t['pieupsiostikeutkorean'] = 0x3175;\n t['pieupthieuthkorean'] = 0x3177;\n t['pieuptikeutkorean'] = 0x3173;\n t['pihiragana'] = 0x3074;\n t['pikatakana'] = 0x30D4;\n t['pisymbolgreek'] = 0x03D6;\n t['piwrarmenian'] = 0x0583;\n t['plus'] = 0x002B;\n t['plusbelowcmb'] = 0x031F;\n t['pluscircle'] = 0x2295;\n t['plusminus'] = 0x00B1;\n t['plusmod'] = 0x02D6;\n t['plusmonospace'] = 0xFF0B;\n t['plussmall'] = 0xFE62;\n t['plussuperior'] = 0x207A;\n t['pmonospace'] = 0xFF50;\n t['pmsquare'] = 0x33D8;\n t['pohiragana'] = 0x307D;\n t['pointingindexdownwhite'] = 0x261F;\n t['pointingindexleftwhite'] = 0x261C;\n t['pointingindexrightwhite'] = 0x261E;\n t['pointingindexupwhite'] = 0x261D;\n t['pokatakana'] = 0x30DD;\n t['poplathai'] = 0x0E1B;\n t['postalmark'] = 0x3012;\n t['postalmarkface'] = 0x3020;\n t['pparen'] = 0x24AB;\n t['precedes'] = 0x227A;\n t['prescription'] = 0x211E;\n t['primemod'] = 0x02B9;\n t['primereversed'] = 0x2035;\n t['product'] = 0x220F;\n t['projective'] = 0x2305;\n t['prolongedkana'] = 0x30FC;\n t['propellor'] = 0x2318;\n t['propersubset'] = 0x2282;\n t['propersuperset'] = 0x2283;\n t['proportion'] = 0x2237;\n t['proportional'] = 0x221D;\n t['psi'] = 0x03C8;\n t['psicyrillic'] = 0x0471;\n t['psilipneumatacyrilliccmb'] = 0x0486;\n t['pssquare'] = 0x33B0;\n t['puhiragana'] = 0x3077;\n t['pukatakana'] = 0x30D7;\n t['pvsquare'] = 0x33B4;\n t['pwsquare'] = 0x33BA;\n t['q'] = 0x0071;\n t['qadeva'] = 0x0958;\n t['qadmahebrew'] = 0x05A8;\n t['qafarabic'] = 0x0642;\n t['qaffinalarabic'] = 0xFED6;\n t['qafinitialarabic'] = 0xFED7;\n t['qafmedialarabic'] = 0xFED8;\n t['qamats'] = 0x05B8;\n t['qamats10'] = 0x05B8;\n t['qamats1a'] = 0x05B8;\n t['qamats1c'] = 0x05B8;\n t['qamats27'] = 0x05B8;\n t['qamats29'] = 0x05B8;\n t['qamats33'] = 0x05B8;\n t['qamatsde'] = 0x05B8;\n t['qamatshebrew'] = 0x05B8;\n t['qamatsnarrowhebrew'] = 0x05B8;\n t['qamatsqatanhebrew'] = 0x05B8;\n t['qamatsqatannarrowhebrew'] = 0x05B8;\n t['qamatsqatanquarterhebrew'] = 0x05B8;\n t['qamatsqatanwidehebrew'] = 0x05B8;\n t['qamatsquarterhebrew'] = 0x05B8;\n t['qamatswidehebrew'] = 0x05B8;\n t['qarneyparahebrew'] = 0x059F;\n t['qbopomofo'] = 0x3111;\n t['qcircle'] = 0x24E0;\n t['qhook'] = 0x02A0;\n t['qmonospace'] = 0xFF51;\n t['qof'] = 0x05E7;\n t['qofdagesh'] = 0xFB47;\n t['qofdageshhebrew'] = 0xFB47;\n t['qofhebrew'] = 0x05E7;\n t['qparen'] = 0x24AC;\n t['quarternote'] = 0x2669;\n t['qubuts'] = 0x05BB;\n t['qubuts18'] = 0x05BB;\n t['qubuts25'] = 0x05BB;\n t['qubuts31'] = 0x05BB;\n t['qubutshebrew'] = 0x05BB;\n t['qubutsnarrowhebrew'] = 0x05BB;\n t['qubutsquarterhebrew'] = 0x05BB;\n t['qubutswidehebrew'] = 0x05BB;\n t['question'] = 0x003F;\n t['questionarabic'] = 0x061F;\n t['questionarmenian'] = 0x055E;\n t['questiondown'] = 0x00BF;\n t['questiondownsmall'] = 0xF7BF;\n t['questiongreek'] = 0x037E;\n t['questionmonospace'] = 0xFF1F;\n t['questionsmall'] = 0xF73F;\n t['quotedbl'] = 0x0022;\n t['quotedblbase'] = 0x201E;\n t['quotedblleft'] = 0x201C;\n t['quotedblmonospace'] = 0xFF02;\n t['quotedblprime'] = 0x301E;\n t['quotedblprimereversed'] = 0x301D;\n t['quotedblright'] = 0x201D;\n t['quoteleft'] = 0x2018;\n t['quoteleftreversed'] = 0x201B;\n t['quotereversed'] = 0x201B;\n t['quoteright'] = 0x2019;\n t['quoterightn'] = 0x0149;\n t['quotesinglbase'] = 0x201A;\n t['quotesingle'] = 0x0027;\n t['quotesinglemonospace'] = 0xFF07;\n t['r'] = 0x0072;\n t['raarmenian'] = 0x057C;\n t['rabengali'] = 0x09B0;\n t['racute'] = 0x0155;\n t['radeva'] = 0x0930;\n t['radical'] = 0x221A;\n t['radicalex'] = 0xF8E5;\n t['radoverssquare'] = 0x33AE;\n t['radoverssquaredsquare'] = 0x33AF;\n t['radsquare'] = 0x33AD;\n t['rafe'] = 0x05BF;\n t['rafehebrew'] = 0x05BF;\n t['ragujarati'] = 0x0AB0;\n t['ragurmukhi'] = 0x0A30;\n t['rahiragana'] = 0x3089;\n t['rakatakana'] = 0x30E9;\n t['rakatakanahalfwidth'] = 0xFF97;\n t['ralowerdiagonalbengali'] = 0x09F1;\n t['ramiddlediagonalbengali'] = 0x09F0;\n t['ramshorn'] = 0x0264;\n t['ratio'] = 0x2236;\n t['rbopomofo'] = 0x3116;\n t['rcaron'] = 0x0159;\n t['rcedilla'] = 0x0157;\n t['rcircle'] = 0x24E1;\n t['rcommaaccent'] = 0x0157;\n t['rdblgrave'] = 0x0211;\n t['rdotaccent'] = 0x1E59;\n t['rdotbelow'] = 0x1E5B;\n t['rdotbelowmacron'] = 0x1E5D;\n t['referencemark'] = 0x203B;\n t['reflexsubset'] = 0x2286;\n t['reflexsuperset'] = 0x2287;\n t['registered'] = 0x00AE;\n t['registersans'] = 0xF8E8;\n t['registerserif'] = 0xF6DA;\n t['reharabic'] = 0x0631;\n t['reharmenian'] = 0x0580;\n t['rehfinalarabic'] = 0xFEAE;\n t['rehiragana'] = 0x308C;\n t['rekatakana'] = 0x30EC;\n t['rekatakanahalfwidth'] = 0xFF9A;\n t['resh'] = 0x05E8;\n t['reshdageshhebrew'] = 0xFB48;\n t['reshhebrew'] = 0x05E8;\n t['reversedtilde'] = 0x223D;\n t['reviahebrew'] = 0x0597;\n t['reviamugrashhebrew'] = 0x0597;\n t['revlogicalnot'] = 0x2310;\n t['rfishhook'] = 0x027E;\n t['rfishhookreversed'] = 0x027F;\n t['rhabengali'] = 0x09DD;\n t['rhadeva'] = 0x095D;\n t['rho'] = 0x03C1;\n t['rhook'] = 0x027D;\n t['rhookturned'] = 0x027B;\n t['rhookturnedsuperior'] = 0x02B5;\n t['rhosymbolgreek'] = 0x03F1;\n t['rhotichookmod'] = 0x02DE;\n t['rieulacirclekorean'] = 0x3271;\n t['rieulaparenkorean'] = 0x3211;\n t['rieulcirclekorean'] = 0x3263;\n t['rieulhieuhkorean'] = 0x3140;\n t['rieulkiyeokkorean'] = 0x313A;\n t['rieulkiyeoksioskorean'] = 0x3169;\n t['rieulkorean'] = 0x3139;\n t['rieulmieumkorean'] = 0x313B;\n t['rieulpansioskorean'] = 0x316C;\n t['rieulparenkorean'] = 0x3203;\n t['rieulphieuphkorean'] = 0x313F;\n t['rieulpieupkorean'] = 0x313C;\n t['rieulpieupsioskorean'] = 0x316B;\n t['rieulsioskorean'] = 0x313D;\n t['rieulthieuthkorean'] = 0x313E;\n t['rieultikeutkorean'] = 0x316A;\n t['rieulyeorinhieuhkorean'] = 0x316D;\n t['rightangle'] = 0x221F;\n t['righttackbelowcmb'] = 0x0319;\n t['righttriangle'] = 0x22BF;\n t['rihiragana'] = 0x308A;\n t['rikatakana'] = 0x30EA;\n t['rikatakanahalfwidth'] = 0xFF98;\n t['ring'] = 0x02DA;\n t['ringbelowcmb'] = 0x0325;\n t['ringcmb'] = 0x030A;\n t['ringhalfleft'] = 0x02BF;\n t['ringhalfleftarmenian'] = 0x0559;\n t['ringhalfleftbelowcmb'] = 0x031C;\n t['ringhalfleftcentered'] = 0x02D3;\n t['ringhalfright'] = 0x02BE;\n t['ringhalfrightbelowcmb'] = 0x0339;\n t['ringhalfrightcentered'] = 0x02D2;\n t['rinvertedbreve'] = 0x0213;\n t['rittorusquare'] = 0x3351;\n t['rlinebelow'] = 0x1E5F;\n t['rlongleg'] = 0x027C;\n t['rlonglegturned'] = 0x027A;\n t['rmonospace'] = 0xFF52;\n t['rohiragana'] = 0x308D;\n t['rokatakana'] = 0x30ED;\n t['rokatakanahalfwidth'] = 0xFF9B;\n t['roruathai'] = 0x0E23;\n t['rparen'] = 0x24AD;\n t['rrabengali'] = 0x09DC;\n t['rradeva'] = 0x0931;\n t['rragurmukhi'] = 0x0A5C;\n t['rreharabic'] = 0x0691;\n t['rrehfinalarabic'] = 0xFB8D;\n t['rrvocalicbengali'] = 0x09E0;\n t['rrvocalicdeva'] = 0x0960;\n t['rrvocalicgujarati'] = 0x0AE0;\n t['rrvocalicvowelsignbengali'] = 0x09C4;\n t['rrvocalicvowelsigndeva'] = 0x0944;\n t['rrvocalicvowelsigngujarati'] = 0x0AC4;\n t['rsuperior'] = 0xF6F1;\n t['rtblock'] = 0x2590;\n t['rturned'] = 0x0279;\n t['rturnedsuperior'] = 0x02B4;\n t['ruhiragana'] = 0x308B;\n t['rukatakana'] = 0x30EB;\n t['rukatakanahalfwidth'] = 0xFF99;\n t['rupeemarkbengali'] = 0x09F2;\n t['rupeesignbengali'] = 0x09F3;\n t['rupiah'] = 0xF6DD;\n t['ruthai'] = 0x0E24;\n t['rvocalicbengali'] = 0x098B;\n t['rvocalicdeva'] = 0x090B;\n t['rvocalicgujarati'] = 0x0A8B;\n t['rvocalicvowelsignbengali'] = 0x09C3;\n t['rvocalicvowelsigndeva'] = 0x0943;\n t['rvocalicvowelsigngujarati'] = 0x0AC3;\n t['s'] = 0x0073;\n t['sabengali'] = 0x09B8;\n t['sacute'] = 0x015B;\n t['sacutedotaccent'] = 0x1E65;\n t['sadarabic'] = 0x0635;\n t['sadeva'] = 0x0938;\n t['sadfinalarabic'] = 0xFEBA;\n t['sadinitialarabic'] = 0xFEBB;\n t['sadmedialarabic'] = 0xFEBC;\n t['sagujarati'] = 0x0AB8;\n t['sagurmukhi'] = 0x0A38;\n t['sahiragana'] = 0x3055;\n t['sakatakana'] = 0x30B5;\n t['sakatakanahalfwidth'] = 0xFF7B;\n t['sallallahoualayhewasallamarabic'] = 0xFDFA;\n t['samekh'] = 0x05E1;\n t['samekhdagesh'] = 0xFB41;\n t['samekhdageshhebrew'] = 0xFB41;\n t['samekhhebrew'] = 0x05E1;\n t['saraaathai'] = 0x0E32;\n t['saraaethai'] = 0x0E41;\n t['saraaimaimalaithai'] = 0x0E44;\n t['saraaimaimuanthai'] = 0x0E43;\n t['saraamthai'] = 0x0E33;\n t['saraathai'] = 0x0E30;\n t['saraethai'] = 0x0E40;\n t['saraiileftthai'] = 0xF886;\n t['saraiithai'] = 0x0E35;\n t['saraileftthai'] = 0xF885;\n t['saraithai'] = 0x0E34;\n t['saraothai'] = 0x0E42;\n t['saraueeleftthai'] = 0xF888;\n t['saraueethai'] = 0x0E37;\n t['saraueleftthai'] = 0xF887;\n t['sarauethai'] = 0x0E36;\n t['sarauthai'] = 0x0E38;\n t['sarauuthai'] = 0x0E39;\n t['sbopomofo'] = 0x3119;\n t['scaron'] = 0x0161;\n t['scarondotaccent'] = 0x1E67;\n t['scedilla'] = 0x015F;\n t['schwa'] = 0x0259;\n t['schwacyrillic'] = 0x04D9;\n t['schwadieresiscyrillic'] = 0x04DB;\n t['schwahook'] = 0x025A;\n t['scircle'] = 0x24E2;\n t['scircumflex'] = 0x015D;\n t['scommaaccent'] = 0x0219;\n t['sdotaccent'] = 0x1E61;\n t['sdotbelow'] = 0x1E63;\n t['sdotbelowdotaccent'] = 0x1E69;\n t['seagullbelowcmb'] = 0x033C;\n t['second'] = 0x2033;\n t['secondtonechinese'] = 0x02CA;\n t['section'] = 0x00A7;\n t['seenarabic'] = 0x0633;\n t['seenfinalarabic'] = 0xFEB2;\n t['seeninitialarabic'] = 0xFEB3;\n t['seenmedialarabic'] = 0xFEB4;\n t['segol'] = 0x05B6;\n t['segol13'] = 0x05B6;\n t['segol1f'] = 0x05B6;\n t['segol2c'] = 0x05B6;\n t['segolhebrew'] = 0x05B6;\n t['segolnarrowhebrew'] = 0x05B6;\n t['segolquarterhebrew'] = 0x05B6;\n t['segoltahebrew'] = 0x0592;\n t['segolwidehebrew'] = 0x05B6;\n t['seharmenian'] = 0x057D;\n t['sehiragana'] = 0x305B;\n t['sekatakana'] = 0x30BB;\n t['sekatakanahalfwidth'] = 0xFF7E;\n t['semicolon'] = 0x003B;\n t['semicolonarabic'] = 0x061B;\n t['semicolonmonospace'] = 0xFF1B;\n t['semicolonsmall'] = 0xFE54;\n t['semivoicedmarkkana'] = 0x309C;\n t['semivoicedmarkkanahalfwidth'] = 0xFF9F;\n t['sentisquare'] = 0x3322;\n t['sentosquare'] = 0x3323;\n t['seven'] = 0x0037;\n t['sevenarabic'] = 0x0667;\n t['sevenbengali'] = 0x09ED;\n t['sevencircle'] = 0x2466;\n t['sevencircleinversesansserif'] = 0x2790;\n t['sevendeva'] = 0x096D;\n t['seveneighths'] = 0x215E;\n t['sevengujarati'] = 0x0AED;\n t['sevengurmukhi'] = 0x0A6D;\n t['sevenhackarabic'] = 0x0667;\n t['sevenhangzhou'] = 0x3027;\n t['sevenideographicparen'] = 0x3226;\n t['seveninferior'] = 0x2087;\n t['sevenmonospace'] = 0xFF17;\n t['sevenoldstyle'] = 0xF737;\n t['sevenparen'] = 0x247A;\n t['sevenperiod'] = 0x248E;\n t['sevenpersian'] = 0x06F7;\n t['sevenroman'] = 0x2176;\n t['sevensuperior'] = 0x2077;\n t['seventeencircle'] = 0x2470;\n t['seventeenparen'] = 0x2484;\n t['seventeenperiod'] = 0x2498;\n t['seventhai'] = 0x0E57;\n t['sfthyphen'] = 0x00AD;\n t['shaarmenian'] = 0x0577;\n t['shabengali'] = 0x09B6;\n t['shacyrillic'] = 0x0448;\n t['shaddaarabic'] = 0x0651;\n t['shaddadammaarabic'] = 0xFC61;\n t['shaddadammatanarabic'] = 0xFC5E;\n t['shaddafathaarabic'] = 0xFC60;\n t['shaddakasraarabic'] = 0xFC62;\n t['shaddakasratanarabic'] = 0xFC5F;\n t['shade'] = 0x2592;\n t['shadedark'] = 0x2593;\n t['shadelight'] = 0x2591;\n t['shademedium'] = 0x2592;\n t['shadeva'] = 0x0936;\n t['shagujarati'] = 0x0AB6;\n t['shagurmukhi'] = 0x0A36;\n t['shalshelethebrew'] = 0x0593;\n t['shbopomofo'] = 0x3115;\n t['shchacyrillic'] = 0x0449;\n t['sheenarabic'] = 0x0634;\n t['sheenfinalarabic'] = 0xFEB6;\n t['sheeninitialarabic'] = 0xFEB7;\n t['sheenmedialarabic'] = 0xFEB8;\n t['sheicoptic'] = 0x03E3;\n t['sheqel'] = 0x20AA;\n t['sheqelhebrew'] = 0x20AA;\n t['sheva'] = 0x05B0;\n t['sheva115'] = 0x05B0;\n t['sheva15'] = 0x05B0;\n t['sheva22'] = 0x05B0;\n t['sheva2e'] = 0x05B0;\n t['shevahebrew'] = 0x05B0;\n t['shevanarrowhebrew'] = 0x05B0;\n t['shevaquarterhebrew'] = 0x05B0;\n t['shevawidehebrew'] = 0x05B0;\n t['shhacyrillic'] = 0x04BB;\n t['shimacoptic'] = 0x03ED;\n t['shin'] = 0x05E9;\n t['shindagesh'] = 0xFB49;\n t['shindageshhebrew'] = 0xFB49;\n t['shindageshshindot'] = 0xFB2C;\n t['shindageshshindothebrew'] = 0xFB2C;\n t['shindageshsindot'] = 0xFB2D;\n t['shindageshsindothebrew'] = 0xFB2D;\n t['shindothebrew'] = 0x05C1;\n t['shinhebrew'] = 0x05E9;\n t['shinshindot'] = 0xFB2A;\n t['shinshindothebrew'] = 0xFB2A;\n t['shinsindot'] = 0xFB2B;\n t['shinsindothebrew'] = 0xFB2B;\n t['shook'] = 0x0282;\n t['sigma'] = 0x03C3;\n t['sigma1'] = 0x03C2;\n t['sigmafinal'] = 0x03C2;\n t['sigmalunatesymbolgreek'] = 0x03F2;\n t['sihiragana'] = 0x3057;\n t['sikatakana'] = 0x30B7;\n t['sikatakanahalfwidth'] = 0xFF7C;\n t['siluqhebrew'] = 0x05BD;\n t['siluqlefthebrew'] = 0x05BD;\n t['similar'] = 0x223C;\n t['sindothebrew'] = 0x05C2;\n t['siosacirclekorean'] = 0x3274;\n t['siosaparenkorean'] = 0x3214;\n t['sioscieuckorean'] = 0x317E;\n t['sioscirclekorean'] = 0x3266;\n t['sioskiyeokkorean'] = 0x317A;\n t['sioskorean'] = 0x3145;\n t['siosnieunkorean'] = 0x317B;\n t['siosparenkorean'] = 0x3206;\n t['siospieupkorean'] = 0x317D;\n t['siostikeutkorean'] = 0x317C;\n t['six'] = 0x0036;\n t['sixarabic'] = 0x0666;\n t['sixbengali'] = 0x09EC;\n t['sixcircle'] = 0x2465;\n t['sixcircleinversesansserif'] = 0x278F;\n t['sixdeva'] = 0x096C;\n t['sixgujarati'] = 0x0AEC;\n t['sixgurmukhi'] = 0x0A6C;\n t['sixhackarabic'] = 0x0666;\n t['sixhangzhou'] = 0x3026;\n t['sixideographicparen'] = 0x3225;\n t['sixinferior'] = 0x2086;\n t['sixmonospace'] = 0xFF16;\n t['sixoldstyle'] = 0xF736;\n t['sixparen'] = 0x2479;\n t['sixperiod'] = 0x248D;\n t['sixpersian'] = 0x06F6;\n t['sixroman'] = 0x2175;\n t['sixsuperior'] = 0x2076;\n t['sixteencircle'] = 0x246F;\n t['sixteencurrencydenominatorbengali'] = 0x09F9;\n t['sixteenparen'] = 0x2483;\n t['sixteenperiod'] = 0x2497;\n t['sixthai'] = 0x0E56;\n t['slash'] = 0x002F;\n t['slashmonospace'] = 0xFF0F;\n t['slong'] = 0x017F;\n t['slongdotaccent'] = 0x1E9B;\n t['smileface'] = 0x263A;\n t['smonospace'] = 0xFF53;\n t['sofpasuqhebrew'] = 0x05C3;\n t['softhyphen'] = 0x00AD;\n t['softsigncyrillic'] = 0x044C;\n t['sohiragana'] = 0x305D;\n t['sokatakana'] = 0x30BD;\n t['sokatakanahalfwidth'] = 0xFF7F;\n t['soliduslongoverlaycmb'] = 0x0338;\n t['solidusshortoverlaycmb'] = 0x0337;\n t['sorusithai'] = 0x0E29;\n t['sosalathai'] = 0x0E28;\n t['sosothai'] = 0x0E0B;\n t['sosuathai'] = 0x0E2A;\n t['space'] = 0x0020;\n t['spacehackarabic'] = 0x0020;\n t['spade'] = 0x2660;\n t['spadesuitblack'] = 0x2660;\n t['spadesuitwhite'] = 0x2664;\n t['sparen'] = 0x24AE;\n t['squarebelowcmb'] = 0x033B;\n t['squarecc'] = 0x33C4;\n t['squarecm'] = 0x339D;\n t['squarediagonalcrosshatchfill'] = 0x25A9;\n t['squarehorizontalfill'] = 0x25A4;\n t['squarekg'] = 0x338F;\n t['squarekm'] = 0x339E;\n t['squarekmcapital'] = 0x33CE;\n t['squareln'] = 0x33D1;\n t['squarelog'] = 0x33D2;\n t['squaremg'] = 0x338E;\n t['squaremil'] = 0x33D5;\n t['squaremm'] = 0x339C;\n t['squaremsquared'] = 0x33A1;\n t['squareorthogonalcrosshatchfill'] = 0x25A6;\n t['squareupperlefttolowerrightfill'] = 0x25A7;\n t['squareupperrighttolowerleftfill'] = 0x25A8;\n t['squareverticalfill'] = 0x25A5;\n t['squarewhitewithsmallblack'] = 0x25A3;\n t['srsquare'] = 0x33DB;\n t['ssabengali'] = 0x09B7;\n t['ssadeva'] = 0x0937;\n t['ssagujarati'] = 0x0AB7;\n t['ssangcieuckorean'] = 0x3149;\n t['ssanghieuhkorean'] = 0x3185;\n t['ssangieungkorean'] = 0x3180;\n t['ssangkiyeokkorean'] = 0x3132;\n t['ssangnieunkorean'] = 0x3165;\n t['ssangpieupkorean'] = 0x3143;\n t['ssangsioskorean'] = 0x3146;\n t['ssangtikeutkorean'] = 0x3138;\n t['ssuperior'] = 0xF6F2;\n t['sterling'] = 0x00A3;\n t['sterlingmonospace'] = 0xFFE1;\n t['strokelongoverlaycmb'] = 0x0336;\n t['strokeshortoverlaycmb'] = 0x0335;\n t['subset'] = 0x2282;\n t['subsetnotequal'] = 0x228A;\n t['subsetorequal'] = 0x2286;\n t['succeeds'] = 0x227B;\n t['suchthat'] = 0x220B;\n t['suhiragana'] = 0x3059;\n t['sukatakana'] = 0x30B9;\n t['sukatakanahalfwidth'] = 0xFF7D;\n t['sukunarabic'] = 0x0652;\n t['summation'] = 0x2211;\n t['sun'] = 0x263C;\n t['superset'] = 0x2283;\n t['supersetnotequal'] = 0x228B;\n t['supersetorequal'] = 0x2287;\n t['svsquare'] = 0x33DC;\n t['syouwaerasquare'] = 0x337C;\n t['t'] = 0x0074;\n t['tabengali'] = 0x09A4;\n t['tackdown'] = 0x22A4;\n t['tackleft'] = 0x22A3;\n t['tadeva'] = 0x0924;\n t['tagujarati'] = 0x0AA4;\n t['tagurmukhi'] = 0x0A24;\n t['taharabic'] = 0x0637;\n t['tahfinalarabic'] = 0xFEC2;\n t['tahinitialarabic'] = 0xFEC3;\n t['tahiragana'] = 0x305F;\n t['tahmedialarabic'] = 0xFEC4;\n t['taisyouerasquare'] = 0x337D;\n t['takatakana'] = 0x30BF;\n t['takatakanahalfwidth'] = 0xFF80;\n t['tatweelarabic'] = 0x0640;\n t['tau'] = 0x03C4;\n t['tav'] = 0x05EA;\n t['tavdages'] = 0xFB4A;\n t['tavdagesh'] = 0xFB4A;\n t['tavdageshhebrew'] = 0xFB4A;\n t['tavhebrew'] = 0x05EA;\n t['tbar'] = 0x0167;\n t['tbopomofo'] = 0x310A;\n t['tcaron'] = 0x0165;\n t['tccurl'] = 0x02A8;\n t['tcedilla'] = 0x0163;\n t['tcheharabic'] = 0x0686;\n t['tchehfinalarabic'] = 0xFB7B;\n t['tchehinitialarabic'] = 0xFB7C;\n t['tchehmedialarabic'] = 0xFB7D;\n t['tcircle'] = 0x24E3;\n t['tcircumflexbelow'] = 0x1E71;\n t['tcommaaccent'] = 0x0163;\n t['tdieresis'] = 0x1E97;\n t['tdotaccent'] = 0x1E6B;\n t['tdotbelow'] = 0x1E6D;\n t['tecyrillic'] = 0x0442;\n t['tedescendercyrillic'] = 0x04AD;\n t['teharabic'] = 0x062A;\n t['tehfinalarabic'] = 0xFE96;\n t['tehhahinitialarabic'] = 0xFCA2;\n t['tehhahisolatedarabic'] = 0xFC0C;\n t['tehinitialarabic'] = 0xFE97;\n t['tehiragana'] = 0x3066;\n t['tehjeeminitialarabic'] = 0xFCA1;\n t['tehjeemisolatedarabic'] = 0xFC0B;\n t['tehmarbutaarabic'] = 0x0629;\n t['tehmarbutafinalarabic'] = 0xFE94;\n t['tehmedialarabic'] = 0xFE98;\n t['tehmeeminitialarabic'] = 0xFCA4;\n t['tehmeemisolatedarabic'] = 0xFC0E;\n t['tehnoonfinalarabic'] = 0xFC73;\n t['tekatakana'] = 0x30C6;\n t['tekatakanahalfwidth'] = 0xFF83;\n t['telephone'] = 0x2121;\n t['telephoneblack'] = 0x260E;\n t['telishagedolahebrew'] = 0x05A0;\n t['telishaqetanahebrew'] = 0x05A9;\n t['tencircle'] = 0x2469;\n t['tenideographicparen'] = 0x3229;\n t['tenparen'] = 0x247D;\n t['tenperiod'] = 0x2491;\n t['tenroman'] = 0x2179;\n t['tesh'] = 0x02A7;\n t['tet'] = 0x05D8;\n t['tetdagesh'] = 0xFB38;\n t['tetdageshhebrew'] = 0xFB38;\n t['tethebrew'] = 0x05D8;\n t['tetsecyrillic'] = 0x04B5;\n t['tevirhebrew'] = 0x059B;\n t['tevirlefthebrew'] = 0x059B;\n t['thabengali'] = 0x09A5;\n t['thadeva'] = 0x0925;\n t['thagujarati'] = 0x0AA5;\n t['thagurmukhi'] = 0x0A25;\n t['thalarabic'] = 0x0630;\n t['thalfinalarabic'] = 0xFEAC;\n t['thanthakhatlowleftthai'] = 0xF898;\n t['thanthakhatlowrightthai'] = 0xF897;\n t['thanthakhatthai'] = 0x0E4C;\n t['thanthakhatupperleftthai'] = 0xF896;\n t['theharabic'] = 0x062B;\n t['thehfinalarabic'] = 0xFE9A;\n t['thehinitialarabic'] = 0xFE9B;\n t['thehmedialarabic'] = 0xFE9C;\n t['thereexists'] = 0x2203;\n t['therefore'] = 0x2234;\n t['theta'] = 0x03B8;\n t['theta1'] = 0x03D1;\n t['thetasymbolgreek'] = 0x03D1;\n t['thieuthacirclekorean'] = 0x3279;\n t['thieuthaparenkorean'] = 0x3219;\n t['thieuthcirclekorean'] = 0x326B;\n t['thieuthkorean'] = 0x314C;\n t['thieuthparenkorean'] = 0x320B;\n t['thirteencircle'] = 0x246C;\n t['thirteenparen'] = 0x2480;\n t['thirteenperiod'] = 0x2494;\n t['thonangmonthothai'] = 0x0E11;\n t['thook'] = 0x01AD;\n t['thophuthaothai'] = 0x0E12;\n t['thorn'] = 0x00FE;\n t['thothahanthai'] = 0x0E17;\n t['thothanthai'] = 0x0E10;\n t['thothongthai'] = 0x0E18;\n t['thothungthai'] = 0x0E16;\n t['thousandcyrillic'] = 0x0482;\n t['thousandsseparatorarabic'] = 0x066C;\n t['thousandsseparatorpersian'] = 0x066C;\n t['three'] = 0x0033;\n t['threearabic'] = 0x0663;\n t['threebengali'] = 0x09E9;\n t['threecircle'] = 0x2462;\n t['threecircleinversesansserif'] = 0x278C;\n t['threedeva'] = 0x0969;\n t['threeeighths'] = 0x215C;\n t['threegujarati'] = 0x0AE9;\n t['threegurmukhi'] = 0x0A69;\n t['threehackarabic'] = 0x0663;\n t['threehangzhou'] = 0x3023;\n t['threeideographicparen'] = 0x3222;\n t['threeinferior'] = 0x2083;\n t['threemonospace'] = 0xFF13;\n t['threenumeratorbengali'] = 0x09F6;\n t['threeoldstyle'] = 0xF733;\n t['threeparen'] = 0x2476;\n t['threeperiod'] = 0x248A;\n t['threepersian'] = 0x06F3;\n t['threequarters'] = 0x00BE;\n t['threequartersemdash'] = 0xF6DE;\n t['threeroman'] = 0x2172;\n t['threesuperior'] = 0x00B3;\n t['threethai'] = 0x0E53;\n t['thzsquare'] = 0x3394;\n t['tihiragana'] = 0x3061;\n t['tikatakana'] = 0x30C1;\n t['tikatakanahalfwidth'] = 0xFF81;\n t['tikeutacirclekorean'] = 0x3270;\n t['tikeutaparenkorean'] = 0x3210;\n t['tikeutcirclekorean'] = 0x3262;\n t['tikeutkorean'] = 0x3137;\n t['tikeutparenkorean'] = 0x3202;\n t['tilde'] = 0x02DC;\n t['tildebelowcmb'] = 0x0330;\n t['tildecmb'] = 0x0303;\n t['tildecomb'] = 0x0303;\n t['tildedoublecmb'] = 0x0360;\n t['tildeoperator'] = 0x223C;\n t['tildeoverlaycmb'] = 0x0334;\n t['tildeverticalcmb'] = 0x033E;\n t['timescircle'] = 0x2297;\n t['tipehahebrew'] = 0x0596;\n t['tipehalefthebrew'] = 0x0596;\n t['tippigurmukhi'] = 0x0A70;\n t['titlocyrilliccmb'] = 0x0483;\n t['tiwnarmenian'] = 0x057F;\n t['tlinebelow'] = 0x1E6F;\n t['tmonospace'] = 0xFF54;\n t['toarmenian'] = 0x0569;\n t['tohiragana'] = 0x3068;\n t['tokatakana'] = 0x30C8;\n t['tokatakanahalfwidth'] = 0xFF84;\n t['tonebarextrahighmod'] = 0x02E5;\n t['tonebarextralowmod'] = 0x02E9;\n t['tonebarhighmod'] = 0x02E6;\n t['tonebarlowmod'] = 0x02E8;\n t['tonebarmidmod'] = 0x02E7;\n t['tonefive'] = 0x01BD;\n t['tonesix'] = 0x0185;\n t['tonetwo'] = 0x01A8;\n t['tonos'] = 0x0384;\n t['tonsquare'] = 0x3327;\n t['topatakthai'] = 0x0E0F;\n t['tortoiseshellbracketleft'] = 0x3014;\n t['tortoiseshellbracketleftsmall'] = 0xFE5D;\n t['tortoiseshellbracketleftvertical'] = 0xFE39;\n t['tortoiseshellbracketright'] = 0x3015;\n t['tortoiseshellbracketrightsmall'] = 0xFE5E;\n t['tortoiseshellbracketrightvertical'] = 0xFE3A;\n t['totaothai'] = 0x0E15;\n t['tpalatalhook'] = 0x01AB;\n t['tparen'] = 0x24AF;\n t['trademark'] = 0x2122;\n t['trademarksans'] = 0xF8EA;\n t['trademarkserif'] = 0xF6DB;\n t['tretroflexhook'] = 0x0288;\n t['triagdn'] = 0x25BC;\n t['triaglf'] = 0x25C4;\n t['triagrt'] = 0x25BA;\n t['triagup'] = 0x25B2;\n t['ts'] = 0x02A6;\n t['tsadi'] = 0x05E6;\n t['tsadidagesh'] = 0xFB46;\n t['tsadidageshhebrew'] = 0xFB46;\n t['tsadihebrew'] = 0x05E6;\n t['tsecyrillic'] = 0x0446;\n t['tsere'] = 0x05B5;\n t['tsere12'] = 0x05B5;\n t['tsere1e'] = 0x05B5;\n t['tsere2b'] = 0x05B5;\n t['tserehebrew'] = 0x05B5;\n t['tserenarrowhebrew'] = 0x05B5;\n t['tserequarterhebrew'] = 0x05B5;\n t['tserewidehebrew'] = 0x05B5;\n t['tshecyrillic'] = 0x045B;\n t['tsuperior'] = 0xF6F3;\n t['ttabengali'] = 0x099F;\n t['ttadeva'] = 0x091F;\n t['ttagujarati'] = 0x0A9F;\n t['ttagurmukhi'] = 0x0A1F;\n t['tteharabic'] = 0x0679;\n t['ttehfinalarabic'] = 0xFB67;\n t['ttehinitialarabic'] = 0xFB68;\n t['ttehmedialarabic'] = 0xFB69;\n t['tthabengali'] = 0x09A0;\n t['tthadeva'] = 0x0920;\n t['tthagujarati'] = 0x0AA0;\n t['tthagurmukhi'] = 0x0A20;\n t['tturned'] = 0x0287;\n t['tuhiragana'] = 0x3064;\n t['tukatakana'] = 0x30C4;\n t['tukatakanahalfwidth'] = 0xFF82;\n t['tusmallhiragana'] = 0x3063;\n t['tusmallkatakana'] = 0x30C3;\n t['tusmallkatakanahalfwidth'] = 0xFF6F;\n t['twelvecircle'] = 0x246B;\n t['twelveparen'] = 0x247F;\n t['twelveperiod'] = 0x2493;\n t['twelveroman'] = 0x217B;\n t['twentycircle'] = 0x2473;\n t['twentyhangzhou'] = 0x5344;\n t['twentyparen'] = 0x2487;\n t['twentyperiod'] = 0x249B;\n t['two'] = 0x0032;\n t['twoarabic'] = 0x0662;\n t['twobengali'] = 0x09E8;\n t['twocircle'] = 0x2461;\n t['twocircleinversesansserif'] = 0x278B;\n t['twodeva'] = 0x0968;\n t['twodotenleader'] = 0x2025;\n t['twodotleader'] = 0x2025;\n t['twodotleadervertical'] = 0xFE30;\n t['twogujarati'] = 0x0AE8;\n t['twogurmukhi'] = 0x0A68;\n t['twohackarabic'] = 0x0662;\n t['twohangzhou'] = 0x3022;\n t['twoideographicparen'] = 0x3221;\n t['twoinferior'] = 0x2082;\n t['twomonospace'] = 0xFF12;\n t['twonumeratorbengali'] = 0x09F5;\n t['twooldstyle'] = 0xF732;\n t['twoparen'] = 0x2475;\n t['twoperiod'] = 0x2489;\n t['twopersian'] = 0x06F2;\n t['tworoman'] = 0x2171;\n t['twostroke'] = 0x01BB;\n t['twosuperior'] = 0x00B2;\n t['twothai'] = 0x0E52;\n t['twothirds'] = 0x2154;\n t['u'] = 0x0075;\n t['uacute'] = 0x00FA;\n t['ubar'] = 0x0289;\n t['ubengali'] = 0x0989;\n t['ubopomofo'] = 0x3128;\n t['ubreve'] = 0x016D;\n t['ucaron'] = 0x01D4;\n t['ucircle'] = 0x24E4;\n t['ucircumflex'] = 0x00FB;\n t['ucircumflexbelow'] = 0x1E77;\n t['ucyrillic'] = 0x0443;\n t['udattadeva'] = 0x0951;\n t['udblacute'] = 0x0171;\n t['udblgrave'] = 0x0215;\n t['udeva'] = 0x0909;\n t['udieresis'] = 0x00FC;\n t['udieresisacute'] = 0x01D8;\n t['udieresisbelow'] = 0x1E73;\n t['udieresiscaron'] = 0x01DA;\n t['udieresiscyrillic'] = 0x04F1;\n t['udieresisgrave'] = 0x01DC;\n t['udieresismacron'] = 0x01D6;\n t['udotbelow'] = 0x1EE5;\n t['ugrave'] = 0x00F9;\n t['ugujarati'] = 0x0A89;\n t['ugurmukhi'] = 0x0A09;\n t['uhiragana'] = 0x3046;\n t['uhookabove'] = 0x1EE7;\n t['uhorn'] = 0x01B0;\n t['uhornacute'] = 0x1EE9;\n t['uhorndotbelow'] = 0x1EF1;\n t['uhorngrave'] = 0x1EEB;\n t['uhornhookabove'] = 0x1EED;\n t['uhorntilde'] = 0x1EEF;\n t['uhungarumlaut'] = 0x0171;\n t['uhungarumlautcyrillic'] = 0x04F3;\n t['uinvertedbreve'] = 0x0217;\n t['ukatakana'] = 0x30A6;\n t['ukatakanahalfwidth'] = 0xFF73;\n t['ukcyrillic'] = 0x0479;\n t['ukorean'] = 0x315C;\n t['umacron'] = 0x016B;\n t['umacroncyrillic'] = 0x04EF;\n t['umacrondieresis'] = 0x1E7B;\n t['umatragurmukhi'] = 0x0A41;\n t['umonospace'] = 0xFF55;\n t['underscore'] = 0x005F;\n t['underscoredbl'] = 0x2017;\n t['underscoremonospace'] = 0xFF3F;\n t['underscorevertical'] = 0xFE33;\n t['underscorewavy'] = 0xFE4F;\n t['union'] = 0x222A;\n t['universal'] = 0x2200;\n t['uogonek'] = 0x0173;\n t['uparen'] = 0x24B0;\n t['upblock'] = 0x2580;\n t['upperdothebrew'] = 0x05C4;\n t['upsilon'] = 0x03C5;\n t['upsilondieresis'] = 0x03CB;\n t['upsilondieresistonos'] = 0x03B0;\n t['upsilonlatin'] = 0x028A;\n t['upsilontonos'] = 0x03CD;\n t['uptackbelowcmb'] = 0x031D;\n t['uptackmod'] = 0x02D4;\n t['uragurmukhi'] = 0x0A73;\n t['uring'] = 0x016F;\n t['ushortcyrillic'] = 0x045E;\n t['usmallhiragana'] = 0x3045;\n t['usmallkatakana'] = 0x30A5;\n t['usmallkatakanahalfwidth'] = 0xFF69;\n t['ustraightcyrillic'] = 0x04AF;\n t['ustraightstrokecyrillic'] = 0x04B1;\n t['utilde'] = 0x0169;\n t['utildeacute'] = 0x1E79;\n t['utildebelow'] = 0x1E75;\n t['uubengali'] = 0x098A;\n t['uudeva'] = 0x090A;\n t['uugujarati'] = 0x0A8A;\n t['uugurmukhi'] = 0x0A0A;\n t['uumatragurmukhi'] = 0x0A42;\n t['uuvowelsignbengali'] = 0x09C2;\n t['uuvowelsigndeva'] = 0x0942;\n t['uuvowelsigngujarati'] = 0x0AC2;\n t['uvowelsignbengali'] = 0x09C1;\n t['uvowelsigndeva'] = 0x0941;\n t['uvowelsigngujarati'] = 0x0AC1;\n t['v'] = 0x0076;\n t['vadeva'] = 0x0935;\n t['vagujarati'] = 0x0AB5;\n t['vagurmukhi'] = 0x0A35;\n t['vakatakana'] = 0x30F7;\n t['vav'] = 0x05D5;\n t['vavdagesh'] = 0xFB35;\n t['vavdagesh65'] = 0xFB35;\n t['vavdageshhebrew'] = 0xFB35;\n t['vavhebrew'] = 0x05D5;\n t['vavholam'] = 0xFB4B;\n t['vavholamhebrew'] = 0xFB4B;\n t['vavvavhebrew'] = 0x05F0;\n t['vavyodhebrew'] = 0x05F1;\n t['vcircle'] = 0x24E5;\n t['vdotbelow'] = 0x1E7F;\n t['vecyrillic'] = 0x0432;\n t['veharabic'] = 0x06A4;\n t['vehfinalarabic'] = 0xFB6B;\n t['vehinitialarabic'] = 0xFB6C;\n t['vehmedialarabic'] = 0xFB6D;\n t['vekatakana'] = 0x30F9;\n t['venus'] = 0x2640;\n t['verticalbar'] = 0x007C;\n t['verticallineabovecmb'] = 0x030D;\n t['verticallinebelowcmb'] = 0x0329;\n t['verticallinelowmod'] = 0x02CC;\n t['verticallinemod'] = 0x02C8;\n t['vewarmenian'] = 0x057E;\n t['vhook'] = 0x028B;\n t['vikatakana'] = 0x30F8;\n t['viramabengali'] = 0x09CD;\n t['viramadeva'] = 0x094D;\n t['viramagujarati'] = 0x0ACD;\n t['visargabengali'] = 0x0983;\n t['visargadeva'] = 0x0903;\n t['visargagujarati'] = 0x0A83;\n t['vmonospace'] = 0xFF56;\n t['voarmenian'] = 0x0578;\n t['voicediterationhiragana'] = 0x309E;\n t['voicediterationkatakana'] = 0x30FE;\n t['voicedmarkkana'] = 0x309B;\n t['voicedmarkkanahalfwidth'] = 0xFF9E;\n t['vokatakana'] = 0x30FA;\n t['vparen'] = 0x24B1;\n t['vtilde'] = 0x1E7D;\n t['vturned'] = 0x028C;\n t['vuhiragana'] = 0x3094;\n t['vukatakana'] = 0x30F4;\n t['w'] = 0x0077;\n t['wacute'] = 0x1E83;\n t['waekorean'] = 0x3159;\n t['wahiragana'] = 0x308F;\n t['wakatakana'] = 0x30EF;\n t['wakatakanahalfwidth'] = 0xFF9C;\n t['wakorean'] = 0x3158;\n t['wasmallhiragana'] = 0x308E;\n t['wasmallkatakana'] = 0x30EE;\n t['wattosquare'] = 0x3357;\n t['wavedash'] = 0x301C;\n t['wavyunderscorevertical'] = 0xFE34;\n t['wawarabic'] = 0x0648;\n t['wawfinalarabic'] = 0xFEEE;\n t['wawhamzaabovearabic'] = 0x0624;\n t['wawhamzaabovefinalarabic'] = 0xFE86;\n t['wbsquare'] = 0x33DD;\n t['wcircle'] = 0x24E6;\n t['wcircumflex'] = 0x0175;\n t['wdieresis'] = 0x1E85;\n t['wdotaccent'] = 0x1E87;\n t['wdotbelow'] = 0x1E89;\n t['wehiragana'] = 0x3091;\n t['weierstrass'] = 0x2118;\n t['wekatakana'] = 0x30F1;\n t['wekorean'] = 0x315E;\n t['weokorean'] = 0x315D;\n t['wgrave'] = 0x1E81;\n t['whitebullet'] = 0x25E6;\n t['whitecircle'] = 0x25CB;\n t['whitecircleinverse'] = 0x25D9;\n t['whitecornerbracketleft'] = 0x300E;\n t['whitecornerbracketleftvertical'] = 0xFE43;\n t['whitecornerbracketright'] = 0x300F;\n t['whitecornerbracketrightvertical'] = 0xFE44;\n t['whitediamond'] = 0x25C7;\n t['whitediamondcontainingblacksmalldiamond'] = 0x25C8;\n t['whitedownpointingsmalltriangle'] = 0x25BF;\n t['whitedownpointingtriangle'] = 0x25BD;\n t['whiteleftpointingsmalltriangle'] = 0x25C3;\n t['whiteleftpointingtriangle'] = 0x25C1;\n t['whitelenticularbracketleft'] = 0x3016;\n t['whitelenticularbracketright'] = 0x3017;\n t['whiterightpointingsmalltriangle'] = 0x25B9;\n t['whiterightpointingtriangle'] = 0x25B7;\n t['whitesmallsquare'] = 0x25AB;\n t['whitesmilingface'] = 0x263A;\n t['whitesquare'] = 0x25A1;\n t['whitestar'] = 0x2606;\n t['whitetelephone'] = 0x260F;\n t['whitetortoiseshellbracketleft'] = 0x3018;\n t['whitetortoiseshellbracketright'] = 0x3019;\n t['whiteuppointingsmalltriangle'] = 0x25B5;\n t['whiteuppointingtriangle'] = 0x25B3;\n t['wihiragana'] = 0x3090;\n t['wikatakana'] = 0x30F0;\n t['wikorean'] = 0x315F;\n t['wmonospace'] = 0xFF57;\n t['wohiragana'] = 0x3092;\n t['wokatakana'] = 0x30F2;\n t['wokatakanahalfwidth'] = 0xFF66;\n t['won'] = 0x20A9;\n t['wonmonospace'] = 0xFFE6;\n t['wowaenthai'] = 0x0E27;\n t['wparen'] = 0x24B2;\n t['wring'] = 0x1E98;\n t['wsuperior'] = 0x02B7;\n t['wturned'] = 0x028D;\n t['wynn'] = 0x01BF;\n t['x'] = 0x0078;\n t['xabovecmb'] = 0x033D;\n t['xbopomofo'] = 0x3112;\n t['xcircle'] = 0x24E7;\n t['xdieresis'] = 0x1E8D;\n t['xdotaccent'] = 0x1E8B;\n t['xeharmenian'] = 0x056D;\n t['xi'] = 0x03BE;\n t['xmonospace'] = 0xFF58;\n t['xparen'] = 0x24B3;\n t['xsuperior'] = 0x02E3;\n t['y'] = 0x0079;\n t['yaadosquare'] = 0x334E;\n t['yabengali'] = 0x09AF;\n t['yacute'] = 0x00FD;\n t['yadeva'] = 0x092F;\n t['yaekorean'] = 0x3152;\n t['yagujarati'] = 0x0AAF;\n t['yagurmukhi'] = 0x0A2F;\n t['yahiragana'] = 0x3084;\n t['yakatakana'] = 0x30E4;\n t['yakatakanahalfwidth'] = 0xFF94;\n t['yakorean'] = 0x3151;\n t['yamakkanthai'] = 0x0E4E;\n t['yasmallhiragana'] = 0x3083;\n t['yasmallkatakana'] = 0x30E3;\n t['yasmallkatakanahalfwidth'] = 0xFF6C;\n t['yatcyrillic'] = 0x0463;\n t['ycircle'] = 0x24E8;\n t['ycircumflex'] = 0x0177;\n t['ydieresis'] = 0x00FF;\n t['ydotaccent'] = 0x1E8F;\n t['ydotbelow'] = 0x1EF5;\n t['yeharabic'] = 0x064A;\n t['yehbarreearabic'] = 0x06D2;\n t['yehbarreefinalarabic'] = 0xFBAF;\n t['yehfinalarabic'] = 0xFEF2;\n t['yehhamzaabovearabic'] = 0x0626;\n t['yehhamzaabovefinalarabic'] = 0xFE8A;\n t['yehhamzaaboveinitialarabic'] = 0xFE8B;\n t['yehhamzaabovemedialarabic'] = 0xFE8C;\n t['yehinitialarabic'] = 0xFEF3;\n t['yehmedialarabic'] = 0xFEF4;\n t['yehmeeminitialarabic'] = 0xFCDD;\n t['yehmeemisolatedarabic'] = 0xFC58;\n t['yehnoonfinalarabic'] = 0xFC94;\n t['yehthreedotsbelowarabic'] = 0x06D1;\n t['yekorean'] = 0x3156;\n t['yen'] = 0x00A5;\n t['yenmonospace'] = 0xFFE5;\n t['yeokorean'] = 0x3155;\n t['yeorinhieuhkorean'] = 0x3186;\n t['yerahbenyomohebrew'] = 0x05AA;\n t['yerahbenyomolefthebrew'] = 0x05AA;\n t['yericyrillic'] = 0x044B;\n t['yerudieresiscyrillic'] = 0x04F9;\n t['yesieungkorean'] = 0x3181;\n t['yesieungpansioskorean'] = 0x3183;\n t['yesieungsioskorean'] = 0x3182;\n t['yetivhebrew'] = 0x059A;\n t['ygrave'] = 0x1EF3;\n t['yhook'] = 0x01B4;\n t['yhookabove'] = 0x1EF7;\n t['yiarmenian'] = 0x0575;\n t['yicyrillic'] = 0x0457;\n t['yikorean'] = 0x3162;\n t['yinyang'] = 0x262F;\n t['yiwnarmenian'] = 0x0582;\n t['ymonospace'] = 0xFF59;\n t['yod'] = 0x05D9;\n t['yoddagesh'] = 0xFB39;\n t['yoddageshhebrew'] = 0xFB39;\n t['yodhebrew'] = 0x05D9;\n t['yodyodhebrew'] = 0x05F2;\n t['yodyodpatahhebrew'] = 0xFB1F;\n t['yohiragana'] = 0x3088;\n t['yoikorean'] = 0x3189;\n t['yokatakana'] = 0x30E8;\n t['yokatakanahalfwidth'] = 0xFF96;\n t['yokorean'] = 0x315B;\n t['yosmallhiragana'] = 0x3087;\n t['yosmallkatakana'] = 0x30E7;\n t['yosmallkatakanahalfwidth'] = 0xFF6E;\n t['yotgreek'] = 0x03F3;\n t['yoyaekorean'] = 0x3188;\n t['yoyakorean'] = 0x3187;\n t['yoyakthai'] = 0x0E22;\n t['yoyingthai'] = 0x0E0D;\n t['yparen'] = 0x24B4;\n t['ypogegrammeni'] = 0x037A;\n t['ypogegrammenigreekcmb'] = 0x0345;\n t['yr'] = 0x01A6;\n t['yring'] = 0x1E99;\n t['ysuperior'] = 0x02B8;\n t['ytilde'] = 0x1EF9;\n t['yturned'] = 0x028E;\n t['yuhiragana'] = 0x3086;\n t['yuikorean'] = 0x318C;\n t['yukatakana'] = 0x30E6;\n t['yukatakanahalfwidth'] = 0xFF95;\n t['yukorean'] = 0x3160;\n t['yusbigcyrillic'] = 0x046B;\n t['yusbigiotifiedcyrillic'] = 0x046D;\n t['yuslittlecyrillic'] = 0x0467;\n t['yuslittleiotifiedcyrillic'] = 0x0469;\n t['yusmallhiragana'] = 0x3085;\n t['yusmallkatakana'] = 0x30E5;\n t['yusmallkatakanahalfwidth'] = 0xFF6D;\n t['yuyekorean'] = 0x318B;\n t['yuyeokorean'] = 0x318A;\n t['yyabengali'] = 0x09DF;\n t['yyadeva'] = 0x095F;\n t['z'] = 0x007A;\n t['zaarmenian'] = 0x0566;\n t['zacute'] = 0x017A;\n t['zadeva'] = 0x095B;\n t['zagurmukhi'] = 0x0A5B;\n t['zaharabic'] = 0x0638;\n t['zahfinalarabic'] = 0xFEC6;\n t['zahinitialarabic'] = 0xFEC7;\n t['zahiragana'] = 0x3056;\n t['zahmedialarabic'] = 0xFEC8;\n t['zainarabic'] = 0x0632;\n t['zainfinalarabic'] = 0xFEB0;\n t['zakatakana'] = 0x30B6;\n t['zaqefgadolhebrew'] = 0x0595;\n t['zaqefqatanhebrew'] = 0x0594;\n t['zarqahebrew'] = 0x0598;\n t['zayin'] = 0x05D6;\n t['zayindagesh'] = 0xFB36;\n t['zayindageshhebrew'] = 0xFB36;\n t['zayinhebrew'] = 0x05D6;\n t['zbopomofo'] = 0x3117;\n t['zcaron'] = 0x017E;\n t['zcircle'] = 0x24E9;\n t['zcircumflex'] = 0x1E91;\n t['zcurl'] = 0x0291;\n t['zdot'] = 0x017C;\n t['zdotaccent'] = 0x017C;\n t['zdotbelow'] = 0x1E93;\n t['zecyrillic'] = 0x0437;\n t['zedescendercyrillic'] = 0x0499;\n t['zedieresiscyrillic'] = 0x04DF;\n t['zehiragana'] = 0x305C;\n t['zekatakana'] = 0x30BC;\n t['zero'] = 0x0030;\n t['zeroarabic'] = 0x0660;\n t['zerobengali'] = 0x09E6;\n t['zerodeva'] = 0x0966;\n t['zerogujarati'] = 0x0AE6;\n t['zerogurmukhi'] = 0x0A66;\n t['zerohackarabic'] = 0x0660;\n t['zeroinferior'] = 0x2080;\n t['zeromonospace'] = 0xFF10;\n t['zerooldstyle'] = 0xF730;\n t['zeropersian'] = 0x06F0;\n t['zerosuperior'] = 0x2070;\n t['zerothai'] = 0x0E50;\n t['zerowidthjoiner'] = 0xFEFF;\n t['zerowidthnonjoiner'] = 0x200C;\n t['zerowidthspace'] = 0x200B;\n t['zeta'] = 0x03B6;\n t['zhbopomofo'] = 0x3113;\n t['zhearmenian'] = 0x056A;\n t['zhebrevecyrillic'] = 0x04C2;\n t['zhecyrillic'] = 0x0436;\n t['zhedescendercyrillic'] = 0x0497;\n t['zhedieresiscyrillic'] = 0x04DD;\n t['zihiragana'] = 0x3058;\n t['zikatakana'] = 0x30B8;\n t['zinorhebrew'] = 0x05AE;\n t['zlinebelow'] = 0x1E95;\n t['zmonospace'] = 0xFF5A;\n t['zohiragana'] = 0x305E;\n t['zokatakana'] = 0x30BE;\n t['zparen'] = 0x24B5;\n t['zretroflexhook'] = 0x0290;\n t['zstroke'] = 0x01B6;\n t['zuhiragana'] = 0x305A;\n t['zukatakana'] = 0x30BA;\n t['.notdef'] = 0x0000;\n t['angbracketleftbig'] = 0x2329;\n t['angbracketleftBig'] = 0x2329;\n t['angbracketleftbigg'] = 0x2329;\n t['angbracketleftBigg'] = 0x2329;\n t['angbracketrightBig'] = 0x232A;\n t['angbracketrightbig'] = 0x232A;\n t['angbracketrightBigg'] = 0x232A;\n t['angbracketrightbigg'] = 0x232A;\n t['arrowhookleft'] = 0x21AA;\n t['arrowhookright'] = 0x21A9;\n t['arrowlefttophalf'] = 0x21BC;\n t['arrowleftbothalf'] = 0x21BD;\n t['arrownortheast'] = 0x2197;\n t['arrownorthwest'] = 0x2196;\n t['arrowrighttophalf'] = 0x21C0;\n t['arrowrightbothalf'] = 0x21C1;\n t['arrowsoutheast'] = 0x2198;\n t['arrowsouthwest'] = 0x2199;\n t['backslashbig'] = 0x2216;\n t['backslashBig'] = 0x2216;\n t['backslashBigg'] = 0x2216;\n t['backslashbigg'] = 0x2216;\n t['bardbl'] = 0x2016;\n t['bracehtipdownleft'] = 0xFE37;\n t['bracehtipdownright'] = 0xFE37;\n t['bracehtipupleft'] = 0xFE38;\n t['bracehtipupright'] = 0xFE38;\n t['braceleftBig'] = 0x007B;\n t['braceleftbig'] = 0x007B;\n t['braceleftbigg'] = 0x007B;\n t['braceleftBigg'] = 0x007B;\n t['bracerightBig'] = 0x007D;\n t['bracerightbig'] = 0x007D;\n t['bracerightbigg'] = 0x007D;\n t['bracerightBigg'] = 0x007D;\n t['bracketleftbig'] = 0x005B;\n t['bracketleftBig'] = 0x005B;\n t['bracketleftbigg'] = 0x005B;\n t['bracketleftBigg'] = 0x005B;\n t['bracketrightBig'] = 0x005D;\n t['bracketrightbig'] = 0x005D;\n t['bracketrightbigg'] = 0x005D;\n t['bracketrightBigg'] = 0x005D;\n t['ceilingleftbig'] = 0x2308;\n t['ceilingleftBig'] = 0x2308;\n t['ceilingleftBigg'] = 0x2308;\n t['ceilingleftbigg'] = 0x2308;\n t['ceilingrightbig'] = 0x2309;\n t['ceilingrightBig'] = 0x2309;\n t['ceilingrightbigg'] = 0x2309;\n t['ceilingrightBigg'] = 0x2309;\n t['circledotdisplay'] = 0x2299;\n t['circledottext'] = 0x2299;\n t['circlemultiplydisplay'] = 0x2297;\n t['circlemultiplytext'] = 0x2297;\n t['circleplusdisplay'] = 0x2295;\n t['circleplustext'] = 0x2295;\n t['contintegraldisplay'] = 0x222E;\n t['contintegraltext'] = 0x222E;\n t['coproductdisplay'] = 0x2210;\n t['coproducttext'] = 0x2210;\n t['floorleftBig'] = 0x230A;\n t['floorleftbig'] = 0x230A;\n t['floorleftbigg'] = 0x230A;\n t['floorleftBigg'] = 0x230A;\n t['floorrightbig'] = 0x230B;\n t['floorrightBig'] = 0x230B;\n t['floorrightBigg'] = 0x230B;\n t['floorrightbigg'] = 0x230B;\n t['hatwide'] = 0x0302;\n t['hatwider'] = 0x0302;\n t['hatwidest'] = 0x0302;\n t['intercal'] = 0x1D40;\n t['integraldisplay'] = 0x222B;\n t['integraltext'] = 0x222B;\n t['intersectiondisplay'] = 0x22C2;\n t['intersectiontext'] = 0x22C2;\n t['logicalanddisplay'] = 0x2227;\n t['logicalandtext'] = 0x2227;\n t['logicalordisplay'] = 0x2228;\n t['logicalortext'] = 0x2228;\n t['parenleftBig'] = 0x0028;\n t['parenleftbig'] = 0x0028;\n t['parenleftBigg'] = 0x0028;\n t['parenleftbigg'] = 0x0028;\n t['parenrightBig'] = 0x0029;\n t['parenrightbig'] = 0x0029;\n t['parenrightBigg'] = 0x0029;\n t['parenrightbigg'] = 0x0029;\n t['prime'] = 0x2032;\n t['productdisplay'] = 0x220F;\n t['producttext'] = 0x220F;\n t['radicalbig'] = 0x221A;\n t['radicalBig'] = 0x221A;\n t['radicalBigg'] = 0x221A;\n t['radicalbigg'] = 0x221A;\n t['radicalbt'] = 0x221A;\n t['radicaltp'] = 0x221A;\n t['radicalvertex'] = 0x221A;\n t['slashbig'] = 0x002F;\n t['slashBig'] = 0x002F;\n t['slashBigg'] = 0x002F;\n t['slashbigg'] = 0x002F;\n t['summationdisplay'] = 0x2211;\n t['summationtext'] = 0x2211;\n t['tildewide'] = 0x02DC;\n t['tildewider'] = 0x02DC;\n t['tildewidest'] = 0x02DC;\n t['uniondisplay'] = 0x22C3;\n t['unionmultidisplay'] = 0x228E;\n t['unionmultitext'] = 0x228E;\n t['unionsqdisplay'] = 0x2294;\n t['unionsqtext'] = 0x2294;\n t['uniontext'] = 0x22C3;\n t['vextenddouble'] = 0x2225;\n t['vextendsingle'] = 0x2223;\n});\nvar getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n t['space'] = 0x0020;\n t['a1'] = 0x2701;\n t['a2'] = 0x2702;\n t['a202'] = 0x2703;\n t['a3'] = 0x2704;\n t['a4'] = 0x260E;\n t['a5'] = 0x2706;\n t['a119'] = 0x2707;\n t['a118'] = 0x2708;\n t['a117'] = 0x2709;\n t['a11'] = 0x261B;\n t['a12'] = 0x261E;\n t['a13'] = 0x270C;\n t['a14'] = 0x270D;\n t['a15'] = 0x270E;\n t['a16'] = 0x270F;\n t['a105'] = 0x2710;\n t['a17'] = 0x2711;\n t['a18'] = 0x2712;\n t['a19'] = 0x2713;\n t['a20'] = 0x2714;\n t['a21'] = 0x2715;\n t['a22'] = 0x2716;\n t['a23'] = 0x2717;\n t['a24'] = 0x2718;\n t['a25'] = 0x2719;\n t['a26'] = 0x271A;\n t['a27'] = 0x271B;\n t['a28'] = 0x271C;\n t['a6'] = 0x271D;\n t['a7'] = 0x271E;\n t['a8'] = 0x271F;\n t['a9'] = 0x2720;\n t['a10'] = 0x2721;\n t['a29'] = 0x2722;\n t['a30'] = 0x2723;\n t['a31'] = 0x2724;\n t['a32'] = 0x2725;\n t['a33'] = 0x2726;\n t['a34'] = 0x2727;\n t['a35'] = 0x2605;\n t['a36'] = 0x2729;\n t['a37'] = 0x272A;\n t['a38'] = 0x272B;\n t['a39'] = 0x272C;\n t['a40'] = 0x272D;\n t['a41'] = 0x272E;\n t['a42'] = 0x272F;\n t['a43'] = 0x2730;\n t['a44'] = 0x2731;\n t['a45'] = 0x2732;\n t['a46'] = 0x2733;\n t['a47'] = 0x2734;\n t['a48'] = 0x2735;\n t['a49'] = 0x2736;\n t['a50'] = 0x2737;\n t['a51'] = 0x2738;\n t['a52'] = 0x2739;\n t['a53'] = 0x273A;\n t['a54'] = 0x273B;\n t['a55'] = 0x273C;\n t['a56'] = 0x273D;\n t['a57'] = 0x273E;\n t['a58'] = 0x273F;\n t['a59'] = 0x2740;\n t['a60'] = 0x2741;\n t['a61'] = 0x2742;\n t['a62'] = 0x2743;\n t['a63'] = 0x2744;\n t['a64'] = 0x2745;\n t['a65'] = 0x2746;\n t['a66'] = 0x2747;\n t['a67'] = 0x2748;\n t['a68'] = 0x2749;\n t['a69'] = 0x274A;\n t['a70'] = 0x274B;\n t['a71'] = 0x25CF;\n t['a72'] = 0x274D;\n t['a73'] = 0x25A0;\n t['a74'] = 0x274F;\n t['a203'] = 0x2750;\n t['a75'] = 0x2751;\n t['a204'] = 0x2752;\n t['a76'] = 0x25B2;\n t['a77'] = 0x25BC;\n t['a78'] = 0x25C6;\n t['a79'] = 0x2756;\n t['a81'] = 0x25D7;\n t['a82'] = 0x2758;\n t['a83'] = 0x2759;\n t['a84'] = 0x275A;\n t['a97'] = 0x275B;\n t['a98'] = 0x275C;\n t['a99'] = 0x275D;\n t['a100'] = 0x275E;\n t['a101'] = 0x2761;\n t['a102'] = 0x2762;\n t['a103'] = 0x2763;\n t['a104'] = 0x2764;\n t['a106'] = 0x2765;\n t['a107'] = 0x2766;\n t['a108'] = 0x2767;\n t['a112'] = 0x2663;\n t['a111'] = 0x2666;\n t['a110'] = 0x2665;\n t['a109'] = 0x2660;\n t['a120'] = 0x2460;\n t['a121'] = 0x2461;\n t['a122'] = 0x2462;\n t['a123'] = 0x2463;\n t['a124'] = 0x2464;\n t['a125'] = 0x2465;\n t['a126'] = 0x2466;\n t['a127'] = 0x2467;\n t['a128'] = 0x2468;\n t['a129'] = 0x2469;\n t['a130'] = 0x2776;\n t['a131'] = 0x2777;\n t['a132'] = 0x2778;\n t['a133'] = 0x2779;\n t['a134'] = 0x277A;\n t['a135'] = 0x277B;\n t['a136'] = 0x277C;\n t['a137'] = 0x277D;\n t['a138'] = 0x277E;\n t['a139'] = 0x277F;\n t['a140'] = 0x2780;\n t['a141'] = 0x2781;\n t['a142'] = 0x2782;\n t['a143'] = 0x2783;\n t['a144'] = 0x2784;\n t['a145'] = 0x2785;\n t['a146'] = 0x2786;\n t['a147'] = 0x2787;\n t['a148'] = 0x2788;\n t['a149'] = 0x2789;\n t['a150'] = 0x278A;\n t['a151'] = 0x278B;\n t['a152'] = 0x278C;\n t['a153'] = 0x278D;\n t['a154'] = 0x278E;\n t['a155'] = 0x278F;\n t['a156'] = 0x2790;\n t['a157'] = 0x2791;\n t['a158'] = 0x2792;\n t['a159'] = 0x2793;\n t['a160'] = 0x2794;\n t['a161'] = 0x2192;\n t['a163'] = 0x2194;\n t['a164'] = 0x2195;\n t['a196'] = 0x2798;\n t['a165'] = 0x2799;\n t['a192'] = 0x279A;\n t['a166'] = 0x279B;\n t['a167'] = 0x279C;\n t['a168'] = 0x279D;\n t['a169'] = 0x279E;\n t['a170'] = 0x279F;\n t['a171'] = 0x27A0;\n t['a172'] = 0x27A1;\n t['a173'] = 0x27A2;\n t['a162'] = 0x27A3;\n t['a174'] = 0x27A4;\n t['a175'] = 0x27A5;\n t['a176'] = 0x27A6;\n t['a177'] = 0x27A7;\n t['a178'] = 0x27A8;\n t['a179'] = 0x27A9;\n t['a193'] = 0x27AA;\n t['a180'] = 0x27AB;\n t['a199'] = 0x27AC;\n t['a181'] = 0x27AD;\n t['a200'] = 0x27AE;\n t['a182'] = 0x27AF;\n t['a201'] = 0x27B1;\n t['a183'] = 0x27B2;\n t['a184'] = 0x27B3;\n t['a197'] = 0x27B4;\n t['a185'] = 0x27B5;\n t['a194'] = 0x27B6;\n t['a198'] = 0x27B7;\n t['a186'] = 0x27B8;\n t['a195'] = 0x27B9;\n t['a187'] = 0x27BA;\n t['a188'] = 0x27BB;\n t['a189'] = 0x27BC;\n t['a190'] = 0x27BD;\n t['a191'] = 0x27BE;\n t['a89'] = 0x2768;\n t['a90'] = 0x2769;\n t['a93'] = 0x276A;\n t['a94'] = 0x276B;\n t['a91'] = 0x276C;\n t['a92'] = 0x276D;\n t['a205'] = 0x276E;\n t['a85'] = 0x276F;\n t['a206'] = 0x2770;\n t['a86'] = 0x2771;\n t['a87'] = 0x2772;\n t['a88'] = 0x2773;\n t['a95'] = 0x2774;\n t['a96'] = 0x2775;\n t['.notdef'] = 0x0000;\n});\nexports.getGlyphsUnicode = getGlyphsUnicode;\nexports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {\n throw TypeError(name + ': incorrect invocation!');\n }\n return it;\n};\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toObject = __w_pdfjs_require__(13);\nvar toAbsoluteIndex = __w_pdfjs_require__(21);\nvar toLength = __w_pdfjs_require__(8);\nmodule.exports = function fill(value) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) {\n O[index++] = value;\n }return O;\n};\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toIObject = __w_pdfjs_require__(22);\nvar toLength = __w_pdfjs_require__(8);\nvar toAbsoluteIndex = __w_pdfjs_require__(21);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n if (value != value) return true;\n } else for (; length > index; index++) {\n if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n }\n }return !IS_INCLUDES && -1;\n };\n};\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(24);\nvar TAG = __w_pdfjs_require__(2)('toStringTag');\nvar ARG = cof(function () {\n return arguments;\n}()) == 'Arguments';\nvar tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (e) {}\n};\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(10);\nvar document = __w_pdfjs_require__(4).document;\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(4);\nvar core = __w_pdfjs_require__(18);\nvar hide = __w_pdfjs_require__(6);\nvar redefine = __w_pdfjs_require__(28);\nvar ctx = __w_pdfjs_require__(25);\nvar PROTOTYPE = 'prototype';\nvar $export = function $export(type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n own = !IS_FORCED && target && target[key] !== undefined;\n out = (own ? target : source)[key];\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n if (target) redefine(target, key, out, type & $export.U);\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n$export.F = 1;\n$export.G = 2;\n$export.S = 4;\n$export.P = 8;\n$export.B = 16;\n$export.W = 32;\n$export.U = 64;\n$export.R = 128;\nmodule.exports = $export;\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(5) && !__w_pdfjs_require__(19)(function () {\n return Object.defineProperty(__w_pdfjs_require__(40)('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(24);\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\nvar dPs = __w_pdfjs_require__(76);\nvar enumBugKeys = __w_pdfjs_require__(26);\nvar IE_PROTO = __w_pdfjs_require__(30)('IE_PROTO');\nvar Empty = function Empty() {};\nvar PROTOTYPE = 'prototype';\nvar _createDict = function createDict() {\n var iframe = __w_pdfjs_require__(40)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __w_pdfjs_require__(69).appendChild(iframe);\n iframe.src = 'javascript:';\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n _createDict = iframeDocument.F;\n while (i--) {\n delete _createDict[PROTOTYPE][enumBugKeys[i]];\n }return _createDict();\n};\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n result[IE_PROTO] = O;\n } else result = _createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(47);\nvar hiddenKeys = __w_pdfjs_require__(26).concat('length', 'prototype');\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(7);\nvar toObject = __w_pdfjs_require__(13);\nvar IE_PROTO = __w_pdfjs_require__(30)('IE_PROTO');\nvar ObjectProto = Object.prototype;\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(7);\nvar toIObject = __w_pdfjs_require__(22);\nvar arrayIndexOf = __w_pdfjs_require__(37)(false);\nvar IE_PROTO = __w_pdfjs_require__(30)('IE_PROTO');\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) {\n if (key != IE_PROTO) has(O, key) && result.push(key);\n }while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n }return result;\n};\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefine = __w_pdfjs_require__(28);\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n redefine(target, key, src[key], safe);\n }return target;\n};\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(4);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(12);\nvar toLength = __w_pdfjs_require__(8);\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(4);\nvar hide = __w_pdfjs_require__(6);\nvar uid = __w_pdfjs_require__(14);\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\nvar TypedArrayConstructors = 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'.split(',');\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar ArithmeticDecoder = function ArithmeticDecoderClosure() {\n var QeTable = [{\n qe: 0x5601,\n nmps: 1,\n nlps: 1,\n switchFlag: 1\n }, {\n qe: 0x3401,\n nmps: 2,\n nlps: 6,\n switchFlag: 0\n }, {\n qe: 0x1801,\n nmps: 3,\n nlps: 9,\n switchFlag: 0\n }, {\n qe: 0x0AC1,\n nmps: 4,\n nlps: 12,\n switchFlag: 0\n }, {\n qe: 0x0521,\n nmps: 5,\n nlps: 29,\n switchFlag: 0\n }, {\n qe: 0x0221,\n nmps: 38,\n nlps: 33,\n switchFlag: 0\n }, {\n qe: 0x5601,\n nmps: 7,\n nlps: 6,\n switchFlag: 1\n }, {\n qe: 0x5401,\n nmps: 8,\n nlps: 14,\n switchFlag: 0\n }, {\n qe: 0x4801,\n nmps: 9,\n nlps: 14,\n switchFlag: 0\n }, {\n qe: 0x3801,\n nmps: 10,\n nlps: 14,\n switchFlag: 0\n }, {\n qe: 0x3001,\n nmps: 11,\n nlps: 17,\n switchFlag: 0\n }, {\n qe: 0x2401,\n nmps: 12,\n nlps: 18,\n switchFlag: 0\n }, {\n qe: 0x1C01,\n nmps: 13,\n nlps: 20,\n switchFlag: 0\n }, {\n qe: 0x1601,\n nmps: 29,\n nlps: 21,\n switchFlag: 0\n }, {\n qe: 0x5601,\n nmps: 15,\n nlps: 14,\n switchFlag: 1\n }, {\n qe: 0x5401,\n nmps: 16,\n nlps: 14,\n switchFlag: 0\n }, {\n qe: 0x5101,\n nmps: 17,\n nlps: 15,\n switchFlag: 0\n }, {\n qe: 0x4801,\n nmps: 18,\n nlps: 16,\n switchFlag: 0\n }, {\n qe: 0x3801,\n nmps: 19,\n nlps: 17,\n switchFlag: 0\n }, {\n qe: 0x3401,\n nmps: 20,\n nlps: 18,\n switchFlag: 0\n }, {\n qe: 0x3001,\n nmps: 21,\n nlps: 19,\n switchFlag: 0\n }, {\n qe: 0x2801,\n nmps: 22,\n nlps: 19,\n switchFlag: 0\n }, {\n qe: 0x2401,\n nmps: 23,\n nlps: 20,\n switchFlag: 0\n }, {\n qe: 0x2201,\n nmps: 24,\n nlps: 21,\n switchFlag: 0\n }, {\n qe: 0x1C01,\n nmps: 25,\n nlps: 22,\n switchFlag: 0\n }, {\n qe: 0x1801,\n nmps: 26,\n nlps: 23,\n switchFlag: 0\n }, {\n qe: 0x1601,\n nmps: 27,\n nlps: 24,\n switchFlag: 0\n }, {\n qe: 0x1401,\n nmps: 28,\n nlps: 25,\n switchFlag: 0\n }, {\n qe: 0x1201,\n nmps: 29,\n nlps: 26,\n switchFlag: 0\n }, {\n qe: 0x1101,\n nmps: 30,\n nlps: 27,\n switchFlag: 0\n }, {\n qe: 0x0AC1,\n nmps: 31,\n nlps: 28,\n switchFlag: 0\n }, {\n qe: 0x09C1,\n nmps: 32,\n nlps: 29,\n switchFlag: 0\n }, {\n qe: 0x08A1,\n nmps: 33,\n nlps: 30,\n switchFlag: 0\n }, {\n qe: 0x0521,\n nmps: 34,\n nlps: 31,\n switchFlag: 0\n }, {\n qe: 0x0441,\n nmps: 35,\n nlps: 32,\n switchFlag: 0\n }, {\n qe: 0x02A1,\n nmps: 36,\n nlps: 33,\n switchFlag: 0\n }, {\n qe: 0x0221,\n nmps: 37,\n nlps: 34,\n switchFlag: 0\n }, {\n qe: 0x0141,\n nmps: 38,\n nlps: 35,\n switchFlag: 0\n }, {\n qe: 0x0111,\n nmps: 39,\n nlps: 36,\n switchFlag: 0\n }, {\n qe: 0x0085,\n nmps: 40,\n nlps: 37,\n switchFlag: 0\n }, {\n qe: 0x0049,\n nmps: 41,\n nlps: 38,\n switchFlag: 0\n }, {\n qe: 0x0025,\n nmps: 42,\n nlps: 39,\n switchFlag: 0\n }, {\n qe: 0x0015,\n nmps: 43,\n nlps: 40,\n switchFlag: 0\n }, {\n qe: 0x0009,\n nmps: 44,\n nlps: 41,\n switchFlag: 0\n }, {\n qe: 0x0005,\n nmps: 45,\n nlps: 42,\n switchFlag: 0\n }, {\n qe: 0x0001,\n nmps: 45,\n nlps: 43,\n switchFlag: 0\n }, {\n qe: 0x5601,\n nmps: 46,\n nlps: 46,\n switchFlag: 0\n }];\n function ArithmeticDecoder(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n this.chigh = data[start];\n this.clow = 0;\n this.byteIn();\n this.chigh = this.chigh << 7 & 0xFFFF | this.clow >> 9 & 0x7F;\n this.clow = this.clow << 7 & 0xFFFF;\n this.ct -= 7;\n this.a = 0x8000;\n }\n ArithmeticDecoder.prototype = {\n byteIn: function ArithmeticDecoder_byteIn() {\n var data = this.data;\n var bp = this.bp;\n if (data[bp] === 0xFF) {\n var b1 = data[bp + 1];\n if (b1 > 0x8F) {\n this.clow += 0xFF00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00;\n this.ct = 8;\n this.bp = bp;\n }\n if (this.clow > 0xFFFF) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xFFFF;\n }\n },\n readBit: function ArithmeticDecoder_readBit(contexts, pos) {\n var cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n var qeTableIcx = QeTable[cx_index];\n var qeIcx = qeTableIcx.qe;\n var d;\n var a = this.a - qeIcx;\n if (this.chigh < qeIcx) {\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n a <<= 1;\n this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1;\n this.clow = this.clow << 1 & 0xFFFF;\n this.ct--;\n } while ((a & 0x8000) === 0);\n this.a = a;\n contexts[pos] = cx_index << 1 | cx_mps;\n return d;\n }\n };\n return ArithmeticDecoder;\n}();\nexports.ArithmeticDecoder = ArithmeticDecoder;\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _charsets = __w_pdfjs_require__(89);\n\nvar _encodings = __w_pdfjs_require__(16);\n\nvar MAX_SUBR_NESTING = 10;\nvar CFFStandardStrings = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall', '001.000', '001.001', '001.002', '001.003', 'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold'];\nvar CFFParser = function CFFParserClosure() {\n var CharstringValidationData = [null, {\n id: 'hstem',\n min: 2,\n stackClearing: true,\n stem: true\n }, null, {\n id: 'vstem',\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: 'vmoveto',\n min: 1,\n stackClearing: true\n }, {\n id: 'rlineto',\n min: 2,\n resetStack: true\n }, {\n id: 'hlineto',\n min: 1,\n resetStack: true\n }, {\n id: 'vlineto',\n min: 1,\n resetStack: true\n }, {\n id: 'rrcurveto',\n min: 6,\n resetStack: true\n }, null, {\n id: 'callsubr',\n min: 1,\n undefStack: true\n }, {\n id: 'return',\n min: 0,\n undefStack: true\n }, null, null, {\n id: 'endchar',\n min: 0,\n stackClearing: true\n }, null, null, null, {\n id: 'hstemhm',\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: 'hintmask',\n min: 0,\n stackClearing: true\n }, {\n id: 'cntrmask',\n min: 0,\n stackClearing: true\n }, {\n id: 'rmoveto',\n min: 2,\n stackClearing: true\n }, {\n id: 'hmoveto',\n min: 1,\n stackClearing: true\n }, {\n id: 'vstemhm',\n min: 2,\n stackClearing: true,\n stem: true\n }, {\n id: 'rcurveline',\n min: 8,\n resetStack: true\n }, {\n id: 'rlinecurve',\n min: 8,\n resetStack: true\n }, {\n id: 'vvcurveto',\n min: 4,\n resetStack: true\n }, {\n id: 'hhcurveto',\n min: 4,\n resetStack: true\n }, null, {\n id: 'callgsubr',\n min: 1,\n undefStack: true\n }, {\n id: 'vhcurveto',\n min: 4,\n resetStack: true\n }, {\n id: 'hvcurveto',\n min: 4,\n resetStack: true\n }];\n var CharstringValidationData12 = [null, null, null, {\n id: 'and',\n min: 2,\n stackDelta: -1\n }, {\n id: 'or',\n min: 2,\n stackDelta: -1\n }, {\n id: 'not',\n min: 1,\n stackDelta: 0\n }, null, null, null, {\n id: 'abs',\n min: 1,\n stackDelta: 0\n }, {\n id: 'add',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] + stack[index - 1];\n }\n }, {\n id: 'sub',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] - stack[index - 1];\n }\n }, {\n id: 'div',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] / stack[index - 1];\n }\n }, null, {\n id: 'neg',\n min: 1,\n stackDelta: 0,\n stackFn: function stack_div(stack, index) {\n stack[index - 1] = -stack[index - 1];\n }\n }, {\n id: 'eq',\n min: 2,\n stackDelta: -1\n }, null, null, {\n id: 'drop',\n min: 1,\n stackDelta: -1\n }, null, {\n id: 'put',\n min: 2,\n stackDelta: -2\n }, {\n id: 'get',\n min: 1,\n stackDelta: 0\n }, {\n id: 'ifelse',\n min: 4,\n stackDelta: -3\n }, {\n id: 'random',\n min: 0,\n stackDelta: 1\n }, {\n id: 'mul',\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] * stack[index - 1];\n }\n }, null, {\n id: 'sqrt',\n min: 1,\n stackDelta: 0\n }, {\n id: 'dup',\n min: 1,\n stackDelta: 1\n }, {\n id: 'exch',\n min: 2,\n stackDelta: 0\n }, {\n id: 'index',\n min: 2,\n stackDelta: 0\n }, {\n id: 'roll',\n min: 3,\n stackDelta: -2\n }, null, null, null, {\n id: 'hflex',\n min: 7,\n resetStack: true\n }, {\n id: 'flex',\n min: 13,\n resetStack: true\n }, {\n id: 'hflex1',\n min: 9,\n resetStack: true\n }, {\n id: 'flex1',\n min: 11,\n resetStack: true\n }];\n function CFFParser(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n CFFParser.prototype = {\n parse: function CFFParser_parse() {\n var properties = this.properties;\n var cff = new CFF();\n this.cff = cff;\n var header = this.parseHeader();\n var nameIndex = this.parseIndex(header.endPos);\n var topDictIndex = this.parseIndex(nameIndex.endPos);\n var stringIndex = this.parseIndex(topDictIndex.endPos);\n var globalSubrIndex = this.parseIndex(stringIndex.endPos);\n var topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n cff.header = header.obj;\n cff.names = this.parseNameIndex(nameIndex.obj);\n cff.strings = this.parseStringIndex(stringIndex.obj);\n cff.topDict = topDict;\n cff.globalSubrIndex = globalSubrIndex.obj;\n this.parsePrivateDict(cff.topDict);\n cff.isCIDFont = topDict.hasName('ROS');\n var charStringOffset = topDict.getByName('CharStrings');\n var charStringIndex = this.parseIndex(charStringOffset).obj;\n var fontMatrix = topDict.getByName('FontMatrix');\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n var fontBBox = topDict.getByName('FontBBox');\n if (fontBBox) {\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n }\n var charset, encoding;\n if (cff.isCIDFont) {\n var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj;\n for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n var dictRaw = fdArrayIndex.get(i);\n var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\n }\n encoding = null;\n charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, true);\n cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'), charStringIndex.count);\n } else {\n charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, false);\n encoding = this.parseEncoding(topDict.getByName('Encoding'), properties, cff.strings, charset.charset);\n }\n cff.charset = charset;\n cff.encoding = encoding;\n var charStringsAndSeacs = this.parseCharStrings({\n charStrings: charStringIndex,\n localSubrIndex: topDict.privateDict.subrsIndex,\n globalSubrIndex: globalSubrIndex.obj,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n privateDict: topDict.privateDict\n });\n cff.charStrings = charStringsAndSeacs.charStrings;\n cff.seacs = charStringsAndSeacs.seacs;\n cff.widths = charStringsAndSeacs.widths;\n return cff;\n },\n parseHeader: function CFFParser_parseHeader() {\n var bytes = this.bytes;\n var bytesLength = bytes.length;\n var offset = 0;\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n if (offset >= bytesLength) {\n throw new _util.FormatError('Invalid CFF header');\n }\n if (offset !== 0) {\n (0, _util.info)('cff data is shifted');\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\n var major = bytes[0];\n var minor = bytes[1];\n var hdrSize = bytes[2];\n var offSize = bytes[3];\n var header = new CFFHeader(major, minor, hdrSize, offSize);\n return {\n obj: header,\n endPos: hdrSize\n };\n },\n parseDict: function CFFParser_parseDict(dict) {\n var pos = 0;\n function parseOperand() {\n var value = dict[pos++];\n if (value === 30) {\n return parseFloatOperand();\n } else if (value === 28) {\n value = dict[pos++];\n value = (value << 24 | dict[pos++] << 16) >> 16;\n return value;\n } else if (value === 29) {\n value = dict[pos++];\n value = value << 8 | dict[pos++];\n value = value << 8 | dict[pos++];\n value = value << 8 | dict[pos++];\n return value;\n } else if (value >= 32 && value <= 246) {\n return value - 139;\n } else if (value >= 247 && value <= 250) {\n return (value - 247) * 256 + dict[pos++] + 108;\n } else if (value >= 251 && value <= 254) {\n return -((value - 251) * 256) - dict[pos++] - 108;\n }\n (0, _util.warn)('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n function parseFloatOperand() {\n var str = '';\n var eof = 15;\n var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'E', 'E-', null, '-'];\n var length = dict.length;\n while (pos < length) {\n var b = dict[pos++];\n var b1 = b >> 4;\n var b2 = b & 15;\n if (b1 === eof) {\n break;\n }\n str += lookup[b1];\n if (b2 === eof) {\n break;\n }\n str += lookup[b2];\n }\n return parseFloat(str);\n }\n var operands = [];\n var entries = [];\n pos = 0;\n var end = dict.length;\n while (pos < end) {\n var b = dict[pos];\n if (b <= 21) {\n if (b === 12) {\n b = b << 8 | dict[++pos];\n }\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n return entries;\n },\n parseIndex: function CFFParser_parseIndex(pos) {\n var cffIndex = new CFFIndex();\n var bytes = this.bytes;\n var count = bytes[pos++] << 8 | bytes[pos++];\n var offsets = [];\n var end = pos;\n var i, ii;\n if (count !== 0) {\n var offsetSize = bytes[pos++];\n var startPos = pos + (count + 1) * offsetSize - 1;\n for (i = 0, ii = count + 1; i < ii; ++i) {\n var offset = 0;\n for (var j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n offsets.push(startPos + offset);\n }\n end = offsets[count];\n }\n for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n var offsetStart = offsets[i];\n var offsetEnd = offsets[i + 1];\n cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n }\n return {\n obj: cffIndex,\n endPos: end\n };\n },\n parseNameIndex: function CFFParser_parseNameIndex(index) {\n var names = [];\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var name = index.get(i);\n var length = Math.min(name.length, 127);\n var data = [];\n for (var j = 0; j < length; ++j) {\n var c = name[j];\n if (j === 0 && c === 0) {\n data[j] = c;\n continue;\n }\n if (c < 33 || c > 126 || c === 91 || c === 93 || c === 40 || c === 41 || c === 123 || c === 125 || c === 60 || c === 62 || c === 47 || c === 37 || c === 35) {\n data[j] = 95;\n continue;\n }\n data[j] = c;\n }\n names.push((0, _util.bytesToString)(data));\n }\n return names;\n },\n parseStringIndex: function CFFParser_parseStringIndex(index) {\n var strings = new CFFStrings();\n for (var i = 0, ii = index.count; i < ii; ++i) {\n var data = index.get(i);\n strings.add((0, _util.bytesToString)(data));\n }\n return strings;\n },\n createDict: function CFFParser_createDict(Type, dict, strings) {\n var cffDict = new Type(strings);\n for (var i = 0, ii = dict.length; i < ii; ++i) {\n var pair = dict[i];\n var key = pair[0];\n var value = pair[1];\n cffDict.setByKey(key, value);\n }\n return cffDict;\n },\n parseCharString: function CFFParser_parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n var stackSize = state.stackSize;\n var stack = state.stack;\n var length = data.length;\n for (var j = 0; j < length;) {\n var value = data[j++];\n var validationCommand = null;\n if (value === 12) {\n var q = data[j++];\n if (q === 0) {\n data[j - 2] = 139;\n data[j - 1] = 22;\n stackSize = 0;\n } else {\n validationCommand = CharstringValidationData12[q];\n }\n } else if (value === 28) {\n stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16;\n j += 2;\n stackSize++;\n } else if (value === 14) {\n if (stackSize >= 4) {\n stackSize -= 4;\n if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n j += state.hints + 7 >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n var subrsIndex;\n if (value === 10) {\n subrsIndex = localSubrIndex;\n } else {\n subrsIndex = globalSubrIndex;\n }\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)('Missing subrsIndex for ' + validationCommand.id);\n return false;\n }\n var bias = 32768;\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n var subrNumber = stack[--stackSize] + bias;\n if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) {\n validationCommand = CharstringValidationData[value];\n (0, _util.warn)('Out of bounds subrIndex for ' + validationCommand.id);\n return false;\n }\n state.stackSize = stackSize;\n state.callDepth++;\n var valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n if (!valid) {\n return false;\n }\n state.callDepth--;\n stackSize = state.stackSize;\n continue;\n } else if (value === 11) {\n state.stackSize = stackSize;\n return true;\n } else {\n validationCommand = CharstringValidationData[value];\n }\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n }\n if ('min' in validationCommand) {\n if (!state.undefStack && stackSize < validationCommand.min) {\n (0, _util.warn)('Not enough parameters for ' + validationCommand.id + '; actual: ' + stackSize + ', expected: ' + validationCommand.min);\n return false;\n }\n }\n if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n stackSize -= validationCommand.min;\n if (stackSize >= 2 && validationCommand.stem) {\n stackSize %= 2;\n } else if (stackSize > 1) {\n (0, _util.warn)('Found too many parameters for stack-clearing command');\n }\n if (stackSize > 0 && stack[stackSize - 1] >= 0) {\n state.width = stack[stackSize - 1];\n }\n }\n if ('stackDelta' in validationCommand) {\n if ('stackFn' in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\n stackSize += validationCommand.stackDelta;\n } else if (validationCommand.stackClearing) {\n stackSize = 0;\n } else if (validationCommand.resetStack) {\n stackSize = 0;\n state.undefStack = false;\n } else if (validationCommand.undefStack) {\n stackSize = 0;\n state.undefStack = true;\n state.firstStackClearing = false;\n }\n }\n }\n state.stackSize = stackSize;\n return true;\n },\n parseCharStrings: function parseCharStrings(_ref) {\n var charStrings = _ref.charStrings,\n localSubrIndex = _ref.localSubrIndex,\n globalSubrIndex = _ref.globalSubrIndex,\n fdSelect = _ref.fdSelect,\n fdArray = _ref.fdArray,\n privateDict = _ref.privateDict;\n\n var seacs = [];\n var widths = [];\n var count = charStrings.count;\n for (var i = 0; i < count; i++) {\n var charstring = charStrings.get(i);\n var state = {\n callDepth: 0,\n stackSize: 0,\n stack: [],\n undefStack: true,\n hints: 0,\n firstStackClearing: true,\n seac: null,\n width: null\n };\n var valid = true;\n var localSubrToUse = null;\n var privateDictToUse = privateDict;\n if (fdSelect && fdArray.length) {\n var fdIndex = fdSelect.getFDIndex(i);\n if (fdIndex === -1) {\n (0, _util.warn)('Glyph index is not in fd select.');\n valid = false;\n }\n if (fdIndex >= fdArray.length) {\n (0, _util.warn)('Invalid fd index for glyph index.');\n valid = false;\n }\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n if (valid) {\n valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex);\n }\n if (state.width !== null) {\n var nominalWidth = privateDictToUse.getByName('nominalWidthX');\n widths[i] = nominalWidth + state.width;\n } else {\n var defaultWidth = privateDictToUse.getByName('defaultWidthX');\n widths[i] = defaultWidth;\n }\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n if (!valid) {\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n return {\n charStrings: charStrings,\n seacs: seacs,\n widths: widths\n };\n },\n\n emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(parentDict) {\n var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n },\n parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {\n if (!parentDict.hasName('Private')) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n var privateOffset = parentDict.getByName('Private');\n if (!(0, _util.isArray)(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName('Private');\n return;\n }\n var size = privateOffset[0];\n var offset = privateOffset[1];\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n var privateDictEnd = offset + size;\n var dictData = this.bytes.subarray(offset, privateDictEnd);\n var dict = this.parseDict(dictData);\n var privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n parentDict.privateDict = privateDict;\n if (!privateDict.getByName('Subrs')) {\n return;\n }\n var subrsOffset = privateDict.getByName('Subrs');\n var relativeOffset = offset + subrsOffset;\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n var subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n },\n parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset);\n } else if (pos === 1) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, _charsets.ExpertCharset);\n } else if (pos === 2) {\n return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, _charsets.ExpertSubsetCharset);\n }\n var bytes = this.bytes;\n var start = pos;\n var format = bytes[pos++];\n var charset = ['.notdef'];\n var id, count, i;\n length -= 1;\n switch (format) {\n case 0:\n for (i = 0; i < length; i++) {\n id = bytes[pos++] << 8 | bytes[pos++];\n charset.push(cid ? id : strings.get(id));\n }\n break;\n case 1:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n case 2:\n while (charset.length <= length) {\n id = bytes[pos++] << 8 | bytes[pos++];\n count = bytes[pos++] << 8 | bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n default:\n throw new _util.FormatError('Unknown charset format');\n }\n var end = pos;\n var raw = bytes.subarray(start, end);\n return new CFFCharset(false, format, charset, raw);\n },\n parseEncoding: function CFFParser_parseEncoding(pos, properties, strings, charset) {\n var encoding = Object.create(null);\n var bytes = this.bytes;\n var predefined = false;\n var format, i, ii;\n var raw = null;\n function readSupplement() {\n var supplementsCount = bytes[pos++];\n for (i = 0; i < supplementsCount; i++) {\n var code = bytes[pos++];\n var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n encoding[code] = charset.indexOf(strings.get(sid));\n }\n }\n if (pos === 0 || pos === 1) {\n predefined = true;\n format = pos;\n var baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n for (i = 0, ii = charset.length; i < ii; i++) {\n var index = baseEncoding.indexOf(charset[i]);\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n var dataStart = pos;\n format = bytes[pos++];\n switch (format & 0x7f) {\n case 0:\n var glyphsCount = bytes[pos++];\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n break;\n case 1:\n var rangesCount = bytes[pos++];\n var gid = 1;\n for (i = 0; i < rangesCount; i++) {\n var start = bytes[pos++];\n var left = bytes[pos++];\n for (var j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n break;\n default:\n throw new _util.FormatError('Unknown encoding format: ' + format + ' in CFF');\n }\n var dataEnd = pos;\n if (format & 0x80) {\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n raw = bytes.subarray(dataStart, dataEnd);\n }\n format = format & 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n },\n parseFDSelect: function CFFParser_parseFDSelect(pos, length) {\n var start = pos;\n var bytes = this.bytes;\n var format = bytes[pos++];\n var fdSelect = [],\n rawBytes;\n var i,\n invalidFirstGID = false;\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n var id = bytes[pos++];\n fdSelect.push(id);\n }\n rawBytes = bytes.subarray(start, pos);\n break;\n case 3:\n var rangesCount = bytes[pos++] << 8 | bytes[pos++];\n for (i = 0; i < rangesCount; ++i) {\n var first = bytes[pos++] << 8 | bytes[pos++];\n if (i === 0 && first !== 0) {\n (0, _util.warn)('parseFDSelect: The first range must have a first GID of 0' + ' -- trying to recover.');\n invalidFirstGID = true;\n first = 0;\n }\n var fdIndex = bytes[pos++];\n var next = bytes[pos] << 8 | bytes[pos + 1];\n for (var j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n pos += 2;\n rawBytes = bytes.subarray(start, pos);\n if (invalidFirstGID) {\n rawBytes[3] = rawBytes[4] = 0;\n }\n break;\n default:\n throw new _util.FormatError('parseFDSelect: Unknown format \"' + format + '\".');\n }\n if (fdSelect.length !== length) {\n throw new _util.FormatError('parseFDSelect: Invalid font data.');\n }\n return new CFFFDSelect(fdSelect, rawBytes);\n }\n };\n return CFFParser;\n}();\nvar CFF = function CFFClosure() {\n function CFF() {\n this.header = null;\n this.names = [];\n this.topDict = null;\n this.strings = new CFFStrings();\n this.globalSubrIndex = null;\n this.encoding = null;\n this.charset = null;\n this.charStrings = null;\n this.fdArray = [];\n this.fdSelect = null;\n this.isCIDFont = false;\n }\n return CFF;\n}();\nvar CFFHeader = function CFFHeaderClosure() {\n function CFFHeader(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n return CFFHeader;\n}();\nvar CFFStrings = function CFFStringsClosure() {\n function CFFStrings() {\n this.strings = [];\n }\n CFFStrings.prototype = {\n get: function CFFStrings_get(index) {\n if (index >= 0 && index <= 390) {\n return CFFStandardStrings[index];\n }\n if (index - 391 <= this.strings.length) {\n return this.strings[index - 391];\n }\n return CFFStandardStrings[0];\n },\n add: function CFFStrings_add(value) {\n this.strings.push(value);\n },\n get count() {\n return this.strings.length;\n }\n };\n return CFFStrings;\n}();\nvar CFFIndex = function CFFIndexClosure() {\n function CFFIndex() {\n this.objects = [];\n this.length = 0;\n }\n CFFIndex.prototype = {\n add: function CFFIndex_add(data) {\n this.length += data.length;\n this.objects.push(data);\n },\n set: function CFFIndex_set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n },\n get: function CFFIndex_get(index) {\n return this.objects[index];\n },\n get count() {\n return this.objects.length;\n }\n };\n return CFFIndex;\n}();\nvar CFFDict = function CFFDictClosure() {\n function CFFDict(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n CFFDict.prototype = {\n setByKey: function CFFDict_setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n var valueLength = value.length;\n if (valueLength === 0) {\n return true;\n }\n for (var i = 0; i < valueLength; i++) {\n if (isNaN(value[i])) {\n (0, _util.warn)('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n return true;\n }\n }\n var type = this.types[key];\n if (type === 'num' || type === 'sid' || type === 'offset') {\n value = value[0];\n }\n this.values[key] = value;\n return true;\n },\n setByName: function CFFDict_setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError('Invalid dictionary name \"' + name + '\"');\n }\n this.values[this.nameToKeyMap[name]] = value;\n },\n hasName: function CFFDict_hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n },\n getByName: function CFFDict_getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new _util.FormatError('Invalid dictionary name ' + name + '\"');\n }\n var key = this.nameToKeyMap[name];\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n return this.values[key];\n },\n removeByName: function CFFDict_removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n };\n CFFDict.createTables = function CFFDict_createTables(layout) {\n var tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: []\n };\n for (var i = 0, ii = layout.length; i < ii; ++i) {\n var entry = layout[i];\n var key = (0, _util.isArray)(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];\n tables.keyToNameMap[key] = entry[1];\n tables.nameToKeyMap[entry[1]] = key;\n tables.types[key] = entry[2];\n tables.defaults[key] = entry[3];\n tables.opcodes[key] = (0, _util.isArray)(entry[0]) ? entry[0] : [entry[0]];\n tables.order.push(key);\n }\n return tables;\n };\n return CFFDict;\n}();\nvar CFFTopDict = function CFFTopDictClosure() {\n var layout = [[[12, 30], 'ROS', ['sid', 'sid', 'num'], null], [[12, 20], 'SyntheticBase', 'num', null], [0, 'version', 'sid', null], [1, 'Notice', 'sid', null], [[12, 0], 'Copyright', 'sid', null], [2, 'FullName', 'sid', null], [3, 'FamilyName', 'sid', null], [4, 'Weight', 'sid', null], [[12, 1], 'isFixedPitch', 'num', 0], [[12, 2], 'ItalicAngle', 'num', 0], [[12, 3], 'UnderlinePosition', 'num', -100], [[12, 4], 'UnderlineThickness', 'num', 50], [[12, 5], 'PaintType', 'num', 0], [[12, 6], 'CharstringType', 'num', 2], [[12, 7], 'FontMatrix', ['num', 'num', 'num', 'num', 'num', 'num'], [0.001, 0, 0, 0.001, 0, 0]], [13, 'UniqueID', 'num', null], [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]], [[12, 8], 'StrokeWidth', 'num', 0], [14, 'XUID', 'array', null], [15, 'charset', 'offset', 0], [16, 'Encoding', 'offset', 0], [17, 'CharStrings', 'offset', 0], [18, 'Private', ['offset', 'offset'], null], [[12, 21], 'PostScript', 'sid', null], [[12, 22], 'BaseFontName', 'sid', null], [[12, 23], 'BaseFontBlend', 'delta', null], [[12, 31], 'CIDFontVersion', 'num', 0], [[12, 32], 'CIDFontRevision', 'num', 0], [[12, 33], 'CIDFontType', 'num', 0], [[12, 34], 'CIDCount', 'num', 8720], [[12, 35], 'UIDBase', 'num', null], [[12, 37], 'FDSelect', 'offset', null], [[12, 36], 'FDArray', 'offset', null], [[12, 38], 'FontName', 'sid', null]];\n var tables = null;\n function CFFTopDict(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n CFFDict.call(this, tables, strings);\n this.privateDict = null;\n }\n CFFTopDict.prototype = Object.create(CFFDict.prototype);\n return CFFTopDict;\n}();\nvar CFFPrivateDict = function CFFPrivateDictClosure() {\n var layout = [[6, 'BlueValues', 'delta', null], [7, 'OtherBlues', 'delta', null], [8, 'FamilyBlues', 'delta', null], [9, 'FamilyOtherBlues', 'delta', null], [[12, 9], 'BlueScale', 'num', 0.039625], [[12, 10], 'BlueShift', 'num', 7], [[12, 11], 'BlueFuzz', 'num', 1], [10, 'StdHW', 'num', null], [11, 'StdVW', 'num', null], [[12, 12], 'StemSnapH', 'delta', null], [[12, 13], 'StemSnapV', 'delta', null], [[12, 14], 'ForceBold', 'num', 0], [[12, 17], 'LanguageGroup', 'num', 0], [[12, 18], 'ExpansionFactor', 'num', 0.06], [[12, 19], 'initialRandomSeed', 'num', 0], [20, 'defaultWidthX', 'num', 0], [21, 'nominalWidthX', 'num', 0], [19, 'Subrs', 'offset', null]];\n var tables = null;\n function CFFPrivateDict(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n CFFDict.call(this, tables, strings);\n this.subrsIndex = null;\n }\n CFFPrivateDict.prototype = Object.create(CFFDict.prototype);\n return CFFPrivateDict;\n}();\nvar CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2\n};\nvar CFFCharset = function CFFCharsetClosure() {\n function CFFCharset(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n return CFFCharset;\n}();\nvar CFFEncoding = function CFFEncodingClosure() {\n function CFFEncoding(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n return CFFEncoding;\n}();\nvar CFFFDSelect = function CFFFDSelectClosure() {\n function CFFFDSelect(fdSelect, raw) {\n this.fdSelect = fdSelect;\n this.raw = raw;\n }\n CFFFDSelect.prototype = {\n getFDIndex: function CFFFDSelect_get(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n return this.fdSelect[glyphIndex];\n }\n };\n return CFFFDSelect;\n}();\nvar CFFOffsetTracker = function CFFOffsetTrackerClosure() {\n function CFFOffsetTracker() {\n this.offsets = Object.create(null);\n }\n CFFOffsetTracker.prototype = {\n isTracking: function CFFOffsetTracker_isTracking(key) {\n return key in this.offsets;\n },\n track: function CFFOffsetTracker_track(key, location) {\n if (key in this.offsets) {\n throw new _util.FormatError('Already tracking location of ' + key);\n }\n this.offsets[key] = location;\n },\n offset: function CFFOffsetTracker_offset(value) {\n for (var key in this.offsets) {\n this.offsets[key] += value;\n }\n },\n setEntryLocation: function CFFOffsetTracker_setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new _util.FormatError('Not tracking location of ' + key);\n }\n var data = output.data;\n var dataOffset = this.offsets[key];\n var size = 5;\n for (var i = 0, ii = values.length; i < ii; ++i) {\n var offset0 = i * size + dataOffset;\n var offset1 = offset0 + 1;\n var offset2 = offset0 + 2;\n var offset3 = offset0 + 3;\n var offset4 = offset0 + 4;\n if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) {\n throw new _util.FormatError('writing to an offset that is not empty');\n }\n var value = values[i];\n data[offset0] = 0x1d;\n data[offset1] = value >> 24 & 0xFF;\n data[offset2] = value >> 16 & 0xFF;\n data[offset3] = value >> 8 & 0xFF;\n data[offset4] = value & 0xFF;\n }\n }\n };\n return CFFOffsetTracker;\n}();\nvar CFFCompiler = function CFFCompilerClosure() {\n function CFFCompiler(cff) {\n this.cff = cff;\n }\n CFFCompiler.prototype = {\n compile: function CFFCompiler_compile() {\n var cff = this.cff;\n var output = {\n data: [],\n length: 0,\n add: function CFFCompiler_add(data) {\n this.data = this.data.concat(data);\n this.length = this.data.length;\n }\n };\n var header = this.compileHeader(cff.header);\n output.add(header);\n var nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n if (cff.isCIDFont) {\n if (cff.topDict.hasName('FontMatrix')) {\n var base = cff.topDict.getByName('FontMatrix');\n cff.topDict.removeByName('FontMatrix');\n for (var i = 0, ii = cff.fdArray.length; i < ii; i++) {\n var subDict = cff.fdArray[i];\n var matrix = base.slice(0);\n if (subDict.hasName('FontMatrix')) {\n matrix = _util.Util.transform(matrix, subDict.getByName('FontMatrix'));\n }\n subDict.setByName('FontMatrix', matrix);\n }\n }\n }\n var compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n output.add(compiled.output);\n var topDictTracker = compiled.trackers[0];\n var stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n if (cff.encoding && cff.topDict.hasName('Encoding')) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation('Encoding', [cff.encoding.format], output);\n } else {\n var encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation('Encoding', [output.length], output);\n output.add(encoding);\n }\n }\n if (cff.charset && cff.topDict.hasName('charset')) {\n if (cff.charset.predefined) {\n topDictTracker.setEntryLocation('charset', [cff.charset.format], output);\n } else {\n var charset = this.compileCharset(cff.charset);\n topDictTracker.setEntryLocation('charset', [output.length], output);\n output.add(charset);\n }\n }\n var charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation('CharStrings', [output.length], output);\n output.add(charStrings);\n if (cff.isCIDFont) {\n topDictTracker.setEntryLocation('FDSelect', [output.length], output);\n var fdSelect = this.compileFDSelect(cff.fdSelect.raw);\n output.add(fdSelect);\n compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n topDictTracker.setEntryLocation('FDArray', [output.length], output);\n output.add(compiled.output);\n var fontDictTrackers = compiled.trackers;\n this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n output.add([0]);\n return output.data;\n },\n encodeNumber: function CFFCompiler_encodeNumber(value) {\n if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) {\n return this.encodeInteger(value);\n }\n return this.encodeFloat(value);\n },\n encodeFloat: function CFFCompiler_encodeFloat(num) {\n var value = num.toString();\n var m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n if (m) {\n var epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n var nibbles = '';\n var i, ii;\n for (i = 0, ii = value.length; i < ii; ++i) {\n var a = value[i];\n if (a === 'e') {\n nibbles += value[++i] === '-' ? 'c' : 'b';\n } else if (a === '.') {\n nibbles += 'a';\n } else if (a === '-') {\n nibbles += 'e';\n } else {\n nibbles += a;\n }\n }\n nibbles += nibbles.length & 1 ? 'f' : 'ff';\n var out = [30];\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substr(i, 2), 16));\n }\n return out;\n },\n encodeInteger: function CFFCompiler_encodeInteger(value) {\n var code;\n if (value >= -107 && value <= 107) {\n code = [value + 139];\n } else if (value >= 108 && value <= 1131) {\n value = value - 108;\n code = [(value >> 8) + 247, value & 0xFF];\n } else if (value >= -1131 && value <= -108) {\n value = -value - 108;\n code = [(value >> 8) + 251, value & 0xFF];\n } else if (value >= -32768 && value <= 32767) {\n code = [0x1c, value >> 8 & 0xFF, value & 0xFF];\n } else {\n code = [0x1d, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF];\n }\n return code;\n },\n compileHeader: function CFFCompiler_compileHeader(header) {\n return [header.major, header.minor, header.hdrSize, header.offSize];\n },\n compileNameIndex: function CFFCompiler_compileNameIndex(names) {\n var nameIndex = new CFFIndex();\n for (var i = 0, ii = names.length; i < ii; ++i) {\n nameIndex.add((0, _util.stringToBytes)(names[i]));\n }\n return this.compileIndex(nameIndex);\n },\n compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length, removeCidKeys) {\n var fontDictTrackers = [];\n var fdArrayIndex = new CFFIndex();\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n if (removeCidKeys) {\n fontDict.removeByName('CIDFontVersion');\n fontDict.removeByName('CIDFontRevision');\n fontDict.removeByName('CIDFontType');\n fontDict.removeByName('CIDCount');\n fontDict.removeByName('UIDBase');\n }\n var fontDictTracker = new CFFOffsetTracker();\n var fontDictData = this.compileDict(fontDict, fontDictTracker);\n fontDictTrackers.push(fontDictTracker);\n fdArrayIndex.add(fontDictData);\n fontDictTracker.offset(length);\n }\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex\n };\n },\n compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts, trackers, output) {\n for (var i = 0, ii = dicts.length; i < ii; ++i) {\n var fontDict = dicts[i];\n var privateDict = fontDict.privateDict;\n if (!privateDict || !fontDict.hasName('Private')) {\n throw new _util.FormatError('There must be a private dictionary.');\n }\n var privateDictTracker = new CFFOffsetTracker();\n var privateDictData = this.compileDict(privateDict, privateDictTracker);\n var outputLength = output.length;\n privateDictTracker.offset(outputLength);\n if (!privateDictData.length) {\n outputLength = 0;\n }\n trackers[i].setEntryLocation('Private', [privateDictData.length, outputLength], output);\n output.add(privateDictData);\n if (privateDict.subrsIndex && privateDict.hasName('Subrs')) {\n var subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation('Subrs', [privateDictData.length], output);\n output.add(subrs);\n }\n }\n },\n compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {\n var out = [];\n var order = dict.order;\n for (var i = 0; i < order.length; ++i) {\n var key = order[i];\n if (!(key in dict.values)) {\n continue;\n }\n var values = dict.values[key];\n var types = dict.types[key];\n if (!(0, _util.isArray)(types)) {\n types = [types];\n }\n if (!(0, _util.isArray)(values)) {\n values = [values];\n }\n if (values.length === 0) {\n continue;\n }\n for (var j = 0, jj = types.length; j < jj; ++j) {\n var type = types[j];\n var value = values[j];\n switch (type) {\n case 'num':\n case 'sid':\n out = out.concat(this.encodeNumber(value));\n break;\n case 'offset':\n var name = dict.keyToNameMap[key];\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n out = out.concat([0x1d, 0, 0, 0, 0]);\n break;\n case 'array':\n case 'delta':\n out = out.concat(this.encodeNumber(value));\n for (var k = 1, kk = values.length; k < kk; ++k) {\n out = out.concat(this.encodeNumber(values[k]));\n }\n break;\n default:\n throw new _util.FormatError('Unknown data type of ' + type);\n }\n }\n out = out.concat(dict.opcodes[key]);\n }\n return out;\n },\n compileStringIndex: function CFFCompiler_compileStringIndex(strings) {\n var stringIndex = new CFFIndex();\n for (var i = 0, ii = strings.length; i < ii; ++i) {\n stringIndex.add((0, _util.stringToBytes)(strings[i]));\n }\n return this.compileIndex(stringIndex);\n },\n compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {\n var globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n },\n compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {\n return this.compileIndex(charStrings);\n },\n compileCharset: function CFFCompiler_compileCharset(charset) {\n return this.compileTypedArray(charset.raw);\n },\n compileEncoding: function CFFCompiler_compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n },\n compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {\n return this.compileTypedArray(fdSelect);\n },\n compileTypedArray: function CFFCompiler_compileTypedArray(data) {\n var out = [];\n for (var i = 0, ii = data.length; i < ii; ++i) {\n out[i] = data[i];\n }\n return out;\n },\n compileIndex: function CFFCompiler_compileIndex(index, trackers) {\n trackers = trackers || [];\n var objects = index.objects;\n var count = objects.length;\n if (count === 0) {\n return [0, 0, 0];\n }\n var data = [count >> 8 & 0xFF, count & 0xff];\n var lastOffset = 1,\n i;\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n var offsetSize;\n if (lastOffset < 0x100) {\n offsetSize = 1;\n } else if (lastOffset < 0x10000) {\n offsetSize = 2;\n } else if (lastOffset < 0x1000000) {\n offsetSize = 3;\n } else {\n offsetSize = 4;\n }\n data.push(offsetSize);\n var relativeOffset = 1;\n for (i = 0; i < count + 1; i++) {\n if (offsetSize === 1) {\n data.push(relativeOffset & 0xFF);\n } else if (offsetSize === 2) {\n data.push(relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n } else if (offsetSize === 3) {\n data.push(relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n } else {\n data.push(relativeOffset >>> 24 & 0xFF, relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n }\n if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n for (i = 0; i < count; i++) {\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n for (var j = 0, jj = objects[i].length; j < jj; j++) {\n data.push(objects[i][j]);\n }\n }\n return data;\n }\n };\n return CFFCompiler;\n}();\nexports.CFFStandardStrings = CFFStandardStrings;\nexports.CFFParser = CFFParser;\nexports.CFF = CFF;\nexports.CFFHeader = CFFHeader;\nexports.CFFStrings = CFFStrings;\nexports.CFFIndex = CFFIndex;\nexports.CFFCharset = CFFCharset;\nexports.CFFTopDict = CFFTopDict;\nexports.CFFPrivateDict = CFFPrivateDict;\nexports.CFFCompiler = CFFCompiler;\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ChunkedStreamManager = exports.ChunkedStream = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar ChunkedStream = function ChunkedStreamClosure() {\n function ChunkedStream(length, chunkSize, manager) {\n this.bytes = new Uint8Array(length);\n this.start = 0;\n this.pos = 0;\n this.end = length;\n this.chunkSize = chunkSize;\n this.loadedChunks = [];\n this.numChunksLoaded = 0;\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1;\n }\n ChunkedStream.prototype = {\n getMissingChunks: function ChunkedStream_getMissingChunks() {\n var chunks = [];\n for (var chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n chunks.push(chunk);\n }\n }\n return chunks;\n },\n getBaseStreams: function ChunkedStream_getBaseStreams() {\n return [this];\n },\n allChunksLoaded: function ChunkedStream_allChunksLoaded() {\n return this.numChunksLoaded === this.numChunks;\n },\n onReceiveData: function ChunkedStream_onReceiveData(begin, chunk) {\n var end = begin + chunk.byteLength;\n if (begin % this.chunkSize !== 0) {\n throw new Error('Bad begin offset: ' + begin);\n }\n var length = this.bytes.length;\n if (end % this.chunkSize !== 0 && end !== length) {\n throw new Error('Bad end offset: ' + end);\n }\n this.bytes.set(new Uint8Array(chunk), begin);\n var chunkSize = this.chunkSize;\n var beginChunk = Math.floor(begin / chunkSize);\n var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n var curChunk;\n for (curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n if (!this.loadedChunks[curChunk]) {\n this.loadedChunks[curChunk] = true;\n ++this.numChunksLoaded;\n }\n }\n },\n onReceiveProgressiveData: function ChunkedStream_onReceiveProgressiveData(data) {\n var position = this.progressiveDataLength;\n var beginChunk = Math.floor(position / this.chunkSize);\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n var endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n var curChunk;\n for (curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n if (!this.loadedChunks[curChunk]) {\n this.loadedChunks[curChunk] = true;\n ++this.numChunksLoaded;\n }\n }\n },\n ensureByte: function ChunkedStream_ensureByte(pos) {\n var chunk = Math.floor(pos / this.chunkSize);\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n if (!this.loadedChunks[chunk]) {\n throw new _util.MissingDataException(pos, pos + 1);\n }\n this.lastSuccessfulEnsureByteChunk = chunk;\n },\n ensureRange: function ChunkedStream_ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\n if (end <= this.progressiveDataLength) {\n return;\n }\n var chunkSize = this.chunkSize;\n var beginChunk = Math.floor(begin / chunkSize);\n var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n throw new _util.MissingDataException(begin, end);\n }\n }\n },\n nextEmptyChunk: function ChunkedStream_nextEmptyChunk(beginChunk) {\n var chunk,\n numChunks = this.numChunks;\n for (var i = 0; i < numChunks; ++i) {\n chunk = (beginChunk + i) % numChunks;\n if (!this.loadedChunks[chunk]) {\n return chunk;\n }\n }\n return null;\n },\n hasChunk: function ChunkedStream_hasChunk(chunk) {\n return !!this.loadedChunks[chunk];\n },\n get length() {\n return this.end - this.start;\n },\n get isEmpty() {\n return this.length === 0;\n },\n getByte: function ChunkedStream_getByte() {\n var pos = this.pos;\n if (pos >= this.end) {\n return -1;\n }\n this.ensureByte(pos);\n return this.bytes[this.pos++];\n },\n getUint16: function ChunkedStream_getUint16() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n },\n getInt32: function ChunkedStream_getInt32() {\n var b0 = this.getByte();\n var b1 = this.getByte();\n var b2 = this.getByte();\n var b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n },\n getBytes: function ChunkedStream_getBytes(length) {\n var bytes = this.bytes;\n var pos = this.pos;\n var strEnd = this.end;\n if (!length) {\n this.ensureRange(pos, strEnd);\n return bytes.subarray(pos, strEnd);\n }\n var end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.ensureRange(pos, end);\n this.pos = end;\n return bytes.subarray(pos, end);\n },\n peekByte: function ChunkedStream_peekByte() {\n var peekedByte = this.getByte();\n this.pos--;\n return peekedByte;\n },\n peekBytes: function ChunkedStream_peekBytes(length) {\n var bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n },\n getByteRange: function ChunkedStream_getBytes(begin, end) {\n this.ensureRange(begin, end);\n return this.bytes.subarray(begin, end);\n },\n skip: function ChunkedStream_skip(n) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n },\n reset: function ChunkedStream_reset() {\n this.pos = this.start;\n },\n moveStart: function ChunkedStream_moveStart() {\n this.start = this.pos;\n },\n makeSubStream: function ChunkedStream_makeSubStream(start, length, dict) {\n this.ensureRange(start, start + length);\n function ChunkedStreamSubstream() {}\n ChunkedStreamSubstream.prototype = Object.create(this);\n ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n var chunkSize = this.chunkSize;\n var beginChunk = Math.floor(this.start / chunkSize);\n var endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n var missingChunks = [];\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this.loadedChunks[chunk]) {\n missingChunks.push(chunk);\n }\n }\n return missingChunks;\n };\n var subStream = new ChunkedStreamSubstream();\n subStream.pos = subStream.start = start;\n subStream.end = start + length || this.end;\n subStream.dict = dict;\n return subStream;\n }\n };\n return ChunkedStream;\n}();\nvar ChunkedStreamManager = function ChunkedStreamManagerClosure() {\n function ChunkedStreamManager(pdfNetworkStream, args) {\n var chunkSize = args.rangeChunkSize;\n var length = args.length;\n this.stream = new ChunkedStream(length, chunkSize, this);\n this.length = length;\n this.chunkSize = chunkSize;\n this.pdfNetworkStream = pdfNetworkStream;\n this.url = args.url;\n this.disableAutoFetch = args.disableAutoFetch;\n this.msgHandler = args.msgHandler;\n this.currRequestId = 0;\n this.chunksNeededByRequest = Object.create(null);\n this.requestsByChunk = Object.create(null);\n this.promisesByRequest = Object.create(null);\n this.progressiveDataLength = 0;\n this.aborted = false;\n this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n }\n ChunkedStreamManager.prototype = {\n onLoadedStream: function ChunkedStreamManager_getLoadedStream() {\n return this._loadedStreamCapability.promise;\n },\n sendRequest: function ChunkedStreamManager_sendRequest(begin, end) {\n var _this = this;\n\n var rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n if (!rangeReader.isStreamingSupported) {\n rangeReader.onProgress = this.onProgress.bind(this);\n }\n var chunks = [],\n loaded = 0;\n var manager = this;\n var promise = new Promise(function (resolve, reject) {\n var readChunk = function readChunk(chunk) {\n try {\n if (!chunk.done) {\n var data = chunk.value;\n chunks.push(data);\n loaded += (0, _util.arrayByteLength)(data);\n if (rangeReader.isStreamingSupported) {\n manager.onProgress({ loaded: loaded });\n }\n rangeReader.read().then(readChunk, reject);\n return;\n }\n var chunkData = (0, _util.arraysToBytes)(chunks);\n chunks = null;\n resolve(chunkData);\n } catch (e) {\n reject(e);\n }\n };\n rangeReader.read().then(readChunk, reject);\n });\n promise.then(function (data) {\n if (_this.aborted) {\n return;\n }\n _this.onReceiveData({\n chunk: data,\n begin: begin\n });\n });\n },\n requestAllChunks: function ChunkedStreamManager_requestAllChunks() {\n var missingChunks = this.stream.getMissingChunks();\n this._requestChunks(missingChunks);\n return this._loadedStreamCapability.promise;\n },\n _requestChunks: function ChunkedStreamManager_requestChunks(chunks) {\n var requestId = this.currRequestId++;\n var i, ii;\n var chunksNeeded = Object.create(null);\n this.chunksNeededByRequest[requestId] = chunksNeeded;\n for (i = 0, ii = chunks.length; i < ii; i++) {\n if (!this.stream.hasChunk(chunks[i])) {\n chunksNeeded[chunks[i]] = true;\n }\n }\n if ((0, _util.isEmptyObj)(chunksNeeded)) {\n return Promise.resolve();\n }\n var capability = (0, _util.createPromiseCapability)();\n this.promisesByRequest[requestId] = capability;\n var chunksToRequest = [];\n for (var chunk in chunksNeeded) {\n chunk = chunk | 0;\n if (!(chunk in this.requestsByChunk)) {\n this.requestsByChunk[chunk] = [];\n chunksToRequest.push(chunk);\n }\n this.requestsByChunk[chunk].push(requestId);\n }\n if (!chunksToRequest.length) {\n return capability.promise;\n }\n var groupedChunksToRequest = this.groupChunks(chunksToRequest);\n for (i = 0; i < groupedChunksToRequest.length; ++i) {\n var groupedChunk = groupedChunksToRequest[i];\n var begin = groupedChunk.beginChunk * this.chunkSize;\n var end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n this.sendRequest(begin, end);\n }\n return capability.promise;\n },\n getStream: function ChunkedStreamManager_getStream() {\n return this.stream;\n },\n requestRange: function ChunkedStreamManager_requestRange(begin, end) {\n end = Math.min(end, this.length);\n var beginChunk = this.getBeginChunk(begin);\n var endChunk = this.getEndChunk(end);\n var chunks = [];\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n return this._requestChunks(chunks);\n },\n requestRanges: function ChunkedStreamManager_requestRanges(ranges) {\n ranges = ranges || [];\n var chunksToRequest = [];\n for (var i = 0; i < ranges.length; i++) {\n var beginChunk = this.getBeginChunk(ranges[i].begin);\n var endChunk = this.getEndChunk(ranges[i].end);\n for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (chunksToRequest.indexOf(chunk) < 0) {\n chunksToRequest.push(chunk);\n }\n }\n }\n chunksToRequest.sort(function (a, b) {\n return a - b;\n });\n return this._requestChunks(chunksToRequest);\n },\n groupChunks: function ChunkedStreamManager_groupChunks(chunks) {\n var groupedChunks = [];\n var beginChunk = -1;\n var prevChunk = -1;\n for (var i = 0; i < chunks.length; ++i) {\n var chunk = chunks[i];\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({\n beginChunk: beginChunk,\n endChunk: prevChunk + 1\n });\n beginChunk = chunk;\n }\n if (i + 1 === chunks.length) {\n groupedChunks.push({\n beginChunk: beginChunk,\n endChunk: chunk + 1\n });\n }\n prevChunk = chunk;\n }\n return groupedChunks;\n },\n onProgress: function ChunkedStreamManager_onProgress(args) {\n var bytesLoaded = this.stream.numChunksLoaded * this.chunkSize + args.loaded;\n this.msgHandler.send('DocProgress', {\n loaded: bytesLoaded,\n total: this.length\n });\n },\n onReceiveData: function ChunkedStreamManager_onReceiveData(args) {\n var chunk = args.chunk;\n var isProgressive = args.begin === undefined;\n var begin = isProgressive ? this.progressiveDataLength : args.begin;\n var end = begin + chunk.byteLength;\n var beginChunk = Math.floor(begin / this.chunkSize);\n var endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize);\n if (isProgressive) {\n this.stream.onReceiveProgressiveData(chunk);\n this.progressiveDataLength = end;\n } else {\n this.stream.onReceiveData(begin, chunk);\n }\n if (this.stream.allChunksLoaded()) {\n this._loadedStreamCapability.resolve(this.stream);\n }\n var loadedRequests = [];\n var i, requestId;\n for (chunk = beginChunk; chunk < endChunk; ++chunk) {\n var requestIds = this.requestsByChunk[chunk] || [];\n delete this.requestsByChunk[chunk];\n for (i = 0; i < requestIds.length; ++i) {\n requestId = requestIds[i];\n var chunksNeeded = this.chunksNeededByRequest[requestId];\n if (chunk in chunksNeeded) {\n delete chunksNeeded[chunk];\n }\n if (!(0, _util.isEmptyObj)(chunksNeeded)) {\n continue;\n }\n loadedRequests.push(requestId);\n }\n }\n if (!this.disableAutoFetch && (0, _util.isEmptyObj)(this.requestsByChunk)) {\n var nextEmptyChunk;\n if (this.stream.numChunksLoaded === 1) {\n var lastChunk = this.stream.numChunks - 1;\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n if ((0, _util.isInt)(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n for (i = 0; i < loadedRequests.length; ++i) {\n requestId = loadedRequests[i];\n var capability = this.promisesByRequest[requestId];\n delete this.promisesByRequest[requestId];\n capability.resolve();\n }\n this.msgHandler.send('DocProgress', {\n loaded: this.stream.numChunksLoaded * this.chunkSize,\n total: this.length\n });\n },\n onError: function ChunkedStreamManager_onError(err) {\n this._loadedStreamCapability.reject(err);\n },\n getBeginChunk: function ChunkedStreamManager_getBeginChunk(begin) {\n var chunk = Math.floor(begin / this.chunkSize);\n return chunk;\n },\n getEndChunk: function ChunkedStreamManager_getEndChunk(end) {\n var chunk = Math.floor((end - 1) / this.chunkSize) + 1;\n return chunk;\n },\n abort: function ChunkedStreamManager_abort() {\n this.aborted = true;\n if (this.pdfNetworkStream) {\n this.pdfNetworkStream.cancelAllRequests('abort');\n }\n for (var requestId in this.promisesByRequest) {\n var capability = this.promisesByRequest[requestId];\n capability.reject(new Error('Request was aborted'));\n }\n }\n };\n return ChunkedStreamManager;\n}();\nexports.ChunkedStream = ChunkedStream;\nexports.ChunkedStreamManager = ChunkedStreamManager;\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _stream = __w_pdfjs_require__(3);\n\nvar ARCFourCipher = function ARCFourCipherClosure() {\n function ARCFourCipher(key) {\n this.a = 0;\n this.b = 0;\n var s = new Uint8Array(256);\n var i,\n j = 0,\n tmp,\n keyLength = key.length;\n for (i = 0; i < 256; ++i) {\n s[i] = i;\n }\n for (i = 0; i < 256; ++i) {\n tmp = s[i];\n j = j + tmp + key[i % keyLength] & 0xFF;\n s[i] = s[j];\n s[j] = tmp;\n }\n this.s = s;\n }\n ARCFourCipher.prototype = {\n encryptBlock: function ARCFourCipher_encryptBlock(data) {\n var i,\n n = data.length,\n tmp,\n tmp2;\n var a = this.a,\n b = this.b,\n s = this.s;\n var output = new Uint8Array(n);\n for (i = 0; i < n; ++i) {\n a = a + 1 & 0xFF;\n tmp = s[a];\n b = b + tmp & 0xFF;\n tmp2 = s[b];\n s[a] = tmp2;\n s[b] = tmp;\n output[i] = data[i] ^ s[tmp + tmp2 & 0xFF];\n }\n this.a = a;\n this.b = b;\n return output;\n }\n };\n ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;\n return ARCFourCipher;\n}();\nvar calculateMD5 = function calculateMD5Closure() {\n var r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);\n var k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]);\n function hash(data, offset, length) {\n var h0 = 1732584193,\n h1 = -271733879,\n h2 = -1732584194,\n h3 = 271733878;\n var paddedLength = length + 72 & ~63;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = length << 3 & 0xFF;\n padded[i++] = length >> 5 & 0xFF;\n padded[i++] = length >> 13 & 0xFF;\n padded[i++] = length >> 21 & 0xFF;\n padded[i++] = length >>> 29 & 0xFF;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n var w = new Int32Array(16);\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n }\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n for (j = 0; j < 64; ++j) {\n if (j < 16) {\n f = b & c | ~b & d;\n g = j;\n } else if (j < 32) {\n f = d & b | ~d & c;\n g = 5 * j + 1 & 15;\n } else if (j < 48) {\n f = b ^ c ^ d;\n g = 3 * j + 5 & 15;\n } else {\n f = c ^ (b | ~d);\n g = 7 * j & 15;\n }\n var tmp = d,\n rotateArg = a + f + k[j] + w[g] | 0,\n rotate = r[j];\n d = c;\n c = b;\n b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0;\n a = tmp;\n }\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n }\n return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]);\n }\n return hash;\n}();\nvar Word64 = function Word64Closure() {\n function Word64(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n Word64.prototype = {\n and: function Word64_and(word) {\n this.high &= word.high;\n this.low &= word.low;\n },\n xor: function Word64_xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n },\n or: function Word64_or(word) {\n this.high |= word.high;\n this.low |= word.low;\n },\n shiftRight: function Word64_shiftRight(places) {\n if (places >= 32) {\n this.low = this.high >>> places - 32 | 0;\n this.high = 0;\n } else {\n this.low = this.low >>> places | this.high << 32 - places;\n this.high = this.high >>> places | 0;\n }\n },\n shiftLeft: function Word64_shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << places - 32;\n this.low = 0;\n } else {\n this.high = this.high << places | this.low >>> 32 - places;\n this.low = this.low << places;\n }\n },\n rotateRight: function Word64_rotateRight(places) {\n var low, high;\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n places &= 31;\n this.low = low >>> places | high << 32 - places;\n this.high = high >>> places | low << 32 - places;\n },\n not: function Word64_not() {\n this.high = ~this.high;\n this.low = ~this.low;\n },\n add: function Word64_add(word) {\n var lowAdd = (this.low >>> 0) + (word.low >>> 0);\n var highAdd = (this.high >>> 0) + (word.high >>> 0);\n if (lowAdd > 0xFFFFFFFF) {\n highAdd += 1;\n }\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\n },\n copyTo: function Word64_copyTo(bytes, offset) {\n bytes[offset] = this.high >>> 24 & 0xFF;\n bytes[offset + 1] = this.high >> 16 & 0xFF;\n bytes[offset + 2] = this.high >> 8 & 0xFF;\n bytes[offset + 3] = this.high & 0xFF;\n bytes[offset + 4] = this.low >>> 24 & 0xFF;\n bytes[offset + 5] = this.low >> 16 & 0xFF;\n bytes[offset + 6] = this.low >> 8 & 0xFF;\n bytes[offset + 7] = this.low & 0xFF;\n },\n assign: function Word64_assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n };\n return Word64;\n}();\nvar calculateSHA256 = function calculateSHA256Closure() {\n function rotr(x, n) {\n return x >>> n | x << 32 - n;\n }\n function ch(x, y, z) {\n return x & y ^ ~x & z;\n }\n function maj(x, y, z) {\n return x & y ^ x & z ^ y & z;\n }\n function sigma(x) {\n return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n }\n function sigmaPrime(x) {\n return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n }\n function littleSigma(x) {\n return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;\n }\n function littleSigmaPrime(x) {\n return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10;\n }\n var k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n function hash(data, offset, length) {\n var h0 = 0x6a09e667,\n h1 = 0xbb67ae85,\n h2 = 0x3c6ef372,\n h3 = 0xa54ff53a,\n h4 = 0x510e527f,\n h5 = 0x9b05688c,\n h6 = 0x1f83d9ab,\n h7 = 0x5be0cd19;\n var paddedLength = Math.ceil((length + 9) / 64) * 64;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = length >>> 29 & 0xFF;\n padded[i++] = length >> 21 & 0xFF;\n padded[i++] = length >> 13 & 0xFF;\n padded[i++] = length >> 5 & 0xFF;\n padded[i++] = length << 3 & 0xFF;\n var w = new Uint32Array(64);\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j) {\n w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n i += 4;\n }\n for (j = 16; j < 64; ++j) {\n w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0;\n }\n var a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n t1,\n t2;\n for (j = 0; j < 64; ++j) {\n t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n t2 = sigma(a) + maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n h0 = h0 + a | 0;\n h1 = h1 + b | 0;\n h2 = h2 + c | 0;\n h3 = h3 + d | 0;\n h4 = h4 + e | 0;\n h5 = h5 + f | 0;\n h6 = h6 + g | 0;\n h7 = h7 + h | 0;\n }\n return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]);\n }\n return hash;\n}();\nvar calculateSHA512 = function calculateSHA512Closure() {\n function ch(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.not();\n tmp.and(z);\n result.xor(tmp);\n }\n function maj(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.and(z);\n result.xor(tmp);\n tmp.assign(y);\n tmp.and(z);\n result.xor(tmp);\n }\n function sigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(28);\n tmp.assign(x);\n tmp.rotateRight(34);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(39);\n result.xor(tmp);\n }\n function sigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(14);\n tmp.assign(x);\n tmp.rotateRight(18);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(41);\n result.xor(tmp);\n }\n function littleSigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(1);\n tmp.assign(x);\n tmp.rotateRight(8);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(7);\n result.xor(tmp);\n }\n function littleSigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(19);\n tmp.assign(x);\n tmp.rotateRight(61);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(6);\n result.xor(tmp);\n }\n var k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n function hash(data, offset, length, mode384) {\n mode384 = !!mode384;\n var h0, h1, h2, h3, h4, h5, h6, h7;\n if (!mode384) {\n h0 = new Word64(0x6a09e667, 0xf3bcc908);\n h1 = new Word64(0xbb67ae85, 0x84caa73b);\n h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n h4 = new Word64(0x510e527f, 0xade682d1);\n h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n h7 = new Word64(0x5be0cd19, 0x137e2179);\n } else {\n h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n h1 = new Word64(0x629a292a, 0x367cd507);\n h2 = new Word64(0x9159015a, 0x3070dd17);\n h3 = new Word64(0x152fecd8, 0xf70e5939);\n h4 = new Word64(0x67332667, 0xffc00b31);\n h5 = new Word64(0x8eb44a87, 0x68581511);\n h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n }\n var paddedLength = Math.ceil((length + 17) / 128) * 128;\n var padded = new Uint8Array(paddedLength);\n var i, j, n;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n n = paddedLength - 16;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = length >>> 29 & 0xFF;\n padded[i++] = length >> 21 & 0xFF;\n padded[i++] = length >> 13 & 0xFF;\n padded[i++] = length >> 5 & 0xFF;\n padded[i++] = length << 3 & 0xFF;\n var w = new Array(80);\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\n var a = new Word64(0, 0),\n b = new Word64(0, 0),\n c = new Word64(0, 0);\n var d = new Word64(0, 0),\n e = new Word64(0, 0),\n f = new Word64(0, 0);\n var g = new Word64(0, 0),\n h = new Word64(0, 0);\n var t1 = new Word64(0, 0),\n t2 = new Word64(0, 0);\n var tmp1 = new Word64(0, 0),\n tmp2 = new Word64(0, 0),\n tmp3;\n for (i = 0; i < paddedLength;) {\n for (j = 0; j < 16; ++j) {\n w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7];\n i += 8;\n }\n for (j = 16; j < 80; ++j) {\n tmp3 = w[j];\n littleSigmaPrime(tmp3, w[j - 2], tmp2);\n tmp3.add(w[j - 7]);\n littleSigma(tmp1, w[j - 15], tmp2);\n tmp3.add(tmp1);\n tmp3.add(w[j - 16]);\n }\n a.assign(h0);\n b.assign(h1);\n c.assign(h2);\n d.assign(h3);\n e.assign(h4);\n f.assign(h5);\n g.assign(h6);\n h.assign(h7);\n for (j = 0; j < 80; ++j) {\n t1.assign(h);\n sigmaPrime(tmp1, e, tmp2);\n t1.add(tmp1);\n ch(tmp1, e, f, g, tmp2);\n t1.add(tmp1);\n t1.add(k[j]);\n t1.add(w[j]);\n sigma(t2, a, tmp2);\n maj(tmp1, a, b, c, tmp2);\n t2.add(tmp1);\n tmp3 = h;\n h = g;\n g = f;\n f = e;\n d.add(t1);\n e = d;\n d = c;\n c = b;\n b = a;\n tmp3.assign(t1);\n tmp3.add(t2);\n a = tmp3;\n }\n h0.add(a);\n h1.add(b);\n h2.add(c);\n h3.add(d);\n h4.add(e);\n h5.add(f);\n h6.add(g);\n h7.add(h);\n }\n var result;\n if (!mode384) {\n result = new Uint8Array(64);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n h6.copyTo(result, 48);\n h7.copyTo(result, 56);\n } else {\n result = new Uint8Array(48);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n }\n return result;\n }\n return hash;\n}();\nvar calculateSHA384 = function calculateSHA384Closure() {\n function hash(data, offset, length) {\n return calculateSHA512(data, offset, length, true);\n }\n return hash;\n}();\nvar NullCipher = function NullCipherClosure() {\n function NullCipher() {}\n NullCipher.prototype = {\n decryptBlock: function NullCipher_decryptBlock(data) {\n return data;\n }\n };\n return NullCipher;\n}();\nvar AES128Cipher = function AES128CipherClosure() {\n var rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]);\n var s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n var inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n var mixCol = new Uint8Array(256);\n for (var i = 0; i < 256; i++) {\n if (i < 128) {\n mixCol[i] = i << 1;\n } else {\n mixCol[i] = i << 1 ^ 0x1b;\n }\n }\n var mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n function expandKey128(cipherKey) {\n var b = 176,\n result = new Uint8Array(b);\n result.set(cipherKey);\n for (var j = 16, i = 1; j < b; ++i) {\n var t1 = result[j - 3],\n t2 = result[j - 2],\n t3 = result[j - 1],\n t4 = result[j - 4];\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n t1 = t1 ^ rcon[i];\n for (var n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 16];\n j++;\n result[j] = t2 ^= result[j - 16];\n j++;\n result[j] = t3 ^= result[j - 16];\n j++;\n result[j] = t4 ^= result[j - 16];\n j++;\n }\n }\n return result;\n }\n function decrypt128(input, key) {\n var state = new Uint8Array(16);\n state.set(input);\n var i, j, k;\n var t, u, v;\n for (j = 0, k = 160; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (i = 9; i >= 1; --i) {\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (j = 0; j < 16; ++j) {\n state[j] = inv_s[state[j]];\n }\n for (j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (j = 0; j < 16; j += 4) {\n var s0 = mix[state[j]],\n s1 = mix[state[j + 1]],\n s2 = mix[state[j + 2]],\n s3 = mix[state[j + 3]];\n t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n state[j] = t >>> 24 & 0xFF;\n state[j + 1] = t >> 16 & 0xFF;\n state[j + 2] = t >> 8 & 0xFF;\n state[j + 3] = t & 0xFF;\n }\n }\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (j = 0; j < 16; ++j) {\n state[j] = inv_s[state[j]];\n state[j] ^= key[j];\n }\n return state;\n }\n function encrypt128(input, key) {\n var t, u, v, k;\n var state = new Uint8Array(16);\n state.set(input);\n for (j = 0; j < 16; ++j) {\n state[j] ^= key[j];\n }\n for (i = 1; i < 10; i++) {\n for (j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n for (var j = 0; j < 16; j += 4) {\n var s0 = state[j + 0],\n s1 = state[j + 1];\n var s2 = state[j + 2],\n s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ mixCol[s3 ^ s0];\n }\n for (j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n for (j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n for (j = 0, k = 160; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n return state;\n }\n function AES128Cipher(key) {\n this.key = expandKey128(key);\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n function decryptBlock2(data, finalize) {\n var i,\n j,\n ii,\n sourceLength = data.length,\n buffer = this.buffer,\n bufferLength = this.bufferPosition,\n result = [],\n iv = this.iv;\n for (i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n var plain = decrypt128(buffer, this.key);\n for (j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array([]);\n }\n var outputLength = 16 * result.length;\n if (finalize) {\n var lastBlock = result[result.length - 1];\n var psLen = lastBlock[15];\n if (psLen <= 16) {\n for (i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n psLen = 0;\n break;\n }\n }\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n var output = new Uint8Array(outputLength);\n for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n AES128Cipher.prototype = {\n decryptBlock: function AES128Cipher_decryptBlock(data, finalize) {\n var i,\n sourceLength = data.length;\n var buffer = this.buffer,\n bufferLength = this.bufferPosition;\n for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n buffer[bufferLength] = data[i];\n }\n if (bufferLength < 16) {\n this.bufferLength = bufferLength;\n return new Uint8Array([]);\n }\n this.iv = buffer;\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n this.decryptBlock = decryptBlock2;\n return this.decryptBlock(data.subarray(16), finalize);\n },\n encrypt: function AES128Cipher_encrypt(data, iv) {\n var i,\n j,\n ii,\n sourceLength = data.length,\n buffer = this.buffer,\n bufferLength = this.bufferPosition,\n result = [];\n if (!iv) {\n iv = new Uint8Array(16);\n }\n for (i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n for (j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n var cipher = encrypt128(buffer, this.key);\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array([]);\n }\n var outputLength = 16 * result.length;\n var output = new Uint8Array(outputLength);\n for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n };\n return AES128Cipher;\n}();\nvar AES256Cipher = function AES256CipherClosure() {\n var s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n var inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n var mixCol = new Uint8Array(256);\n for (var i = 0; i < 256; i++) {\n if (i < 128) {\n mixCol[i] = i << 1;\n } else {\n mixCol[i] = i << 1 ^ 0x1b;\n }\n }\n var mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n function expandKey256(cipherKey) {\n var b = 240,\n result = new Uint8Array(b);\n var r = 1;\n result.set(cipherKey);\n for (var j = 32, i = 1; j < b; ++i) {\n if (j % 32 === 16) {\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n } else if (j % 32 === 0) {\n var t1 = result[j - 3],\n t2 = result[j - 2],\n t3 = result[j - 1],\n t4 = result[j - 4];\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n t1 = t1 ^ r;\n if ((r <<= 1) >= 256) {\n r = (r ^ 0x1b) & 0xFF;\n }\n }\n for (var n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 32];\n j++;\n result[j] = t2 ^= result[j - 32];\n j++;\n result[j] = t3 ^= result[j - 32];\n j++;\n result[j] = t4 ^= result[j - 32];\n j++;\n }\n }\n return result;\n }\n function decrypt256(input, key) {\n var state = new Uint8Array(16);\n state.set(input);\n var i, j, k;\n var t, u, v;\n for (j = 0, k = 224; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (i = 13; i >= 1; --i) {\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (j = 0; j < 16; ++j) {\n state[j] = inv_s[state[j]];\n }\n for (j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (j = 0; j < 16; j += 4) {\n var s0 = mix[state[j]],\n s1 = mix[state[j + 1]],\n s2 = mix[state[j + 2]],\n s3 = mix[state[j + 3]];\n t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n state[j] = t >>> 24 & 0xFF;\n state[j + 1] = t >> 16 & 0xFF;\n state[j + 2] = t >> 8 & 0xFF;\n state[j + 3] = t & 0xFF;\n }\n }\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (j = 0; j < 16; ++j) {\n state[j] = inv_s[state[j]];\n state[j] ^= key[j];\n }\n return state;\n }\n function encrypt256(input, key) {\n var t, u, v, k;\n var state = new Uint8Array(16);\n state.set(input);\n for (j = 0; j < 16; ++j) {\n state[j] ^= key[j];\n }\n for (i = 1; i < 14; i++) {\n for (j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n for (var j = 0; j < 16; j += 4) {\n var s0 = state[j + 0],\n s1 = state[j + 1];\n var s2 = state[j + 2],\n s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ mixCol[s3 ^ s0];\n }\n for (j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n for (j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n for (j = 0, k = 224; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n return state;\n }\n function AES256Cipher(key) {\n this.key = expandKey256(key);\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n function decryptBlock2(data, finalize) {\n var i,\n j,\n ii,\n sourceLength = data.length,\n buffer = this.buffer,\n bufferLength = this.bufferPosition,\n result = [],\n iv = this.iv;\n for (i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n var plain = decrypt256(buffer, this.key);\n for (j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array([]);\n }\n var outputLength = 16 * result.length;\n if (finalize) {\n var lastBlock = result[result.length - 1];\n var psLen = lastBlock[15];\n if (psLen <= 16) {\n for (i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n psLen = 0;\n break;\n }\n }\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n var output = new Uint8Array(outputLength);\n for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n AES256Cipher.prototype = {\n decryptBlock: function AES256Cipher_decryptBlock(data, finalize, iv) {\n var i,\n sourceLength = data.length;\n var buffer = this.buffer,\n bufferLength = this.bufferPosition;\n if (iv) {\n this.iv = iv;\n } else {\n for (i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n buffer[bufferLength] = data[i];\n }\n if (bufferLength < 16) {\n this.bufferLength = bufferLength;\n return new Uint8Array([]);\n }\n this.iv = buffer;\n data = data.subarray(16);\n }\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n this.decryptBlock = decryptBlock2;\n return this.decryptBlock(data, finalize);\n },\n encrypt: function AES256Cipher_encrypt(data, iv) {\n var i,\n j,\n ii,\n sourceLength = data.length,\n buffer = this.buffer,\n bufferLength = this.bufferPosition,\n result = [];\n if (!iv) {\n iv = new Uint8Array(16);\n }\n for (i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n for (j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n var cipher = encrypt256(buffer, this.key);\n this.iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array([]);\n }\n var outputLength = 16 * result.length;\n var output = new Uint8Array(outputLength);\n for (i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n };\n return AES256Cipher;\n}();\nvar PDF17 = function PDF17Closure() {\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n function PDF17() {}\n PDF17.prototype = {\n checkOwnerPassword: function PDF17_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n var result = calculateSHA256(hashData, 0, hashData.length);\n return compareByteArrays(result, ownerPassword);\n },\n checkUserPassword: function PDF17_checkUserPassword(password, userValidationSalt, userPassword) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n var result = calculateSHA256(hashData, 0, hashData.length);\n return compareByteArrays(result, userPassword);\n },\n getOwnerKey: function PDF17_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n var key = calculateSHA256(hashData, 0, hashData.length);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n },\n getUserKey: function PDF17_getUserKey(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n var key = calculateSHA256(hashData, 0, hashData.length);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n };\n return PDF17;\n}();\nvar PDF20 = function PDF20Closure() {\n function concatArrays(array1, array2) {\n var t = new Uint8Array(array1.length + array2.length);\n t.set(array1, 0);\n t.set(array2, array1.length);\n return t;\n }\n function calculatePDF20Hash(password, input, userBytes) {\n var k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n var e = [0];\n var i = 0;\n while (i < 64 || e[e.length - 1] > i - 32) {\n var arrayLength = password.length + k.length + userBytes.length;\n var k1 = new Uint8Array(arrayLength * 64);\n var array = concatArrays(password, k);\n array = concatArrays(array, userBytes);\n for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) {\n k1.set(array, pos);\n }\n var cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n var remainder = 0;\n for (var z = 0; z < 16; z++) {\n remainder *= 256 % 3;\n remainder %= 3;\n remainder += (e[z] >>> 0) % 3;\n remainder %= 3;\n }\n if (remainder === 0) {\n k = calculateSHA256(e, 0, e.length);\n } else if (remainder === 1) {\n k = calculateSHA384(e, 0, e.length);\n } else if (remainder === 2) {\n k = calculateSHA512(e, 0, e.length);\n }\n i++;\n }\n return k.subarray(0, 32);\n }\n function PDF20() {}\n function compareByteArrays(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n PDF20.prototype = {\n hash: function PDF20_hash(password, concatBytes, userBytes) {\n return calculatePDF20Hash(password, concatBytes, userBytes);\n },\n checkOwnerPassword: function PDF20_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n var result = calculatePDF20Hash(password, hashData, userBytes);\n return compareByteArrays(result, ownerPassword);\n },\n checkUserPassword: function PDF20_checkUserPassword(password, userValidationSalt, userPassword) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n var result = calculatePDF20Hash(password, hashData, []);\n return compareByteArrays(result, userPassword);\n },\n getOwnerKey: function PDF20_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n var hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n var key = calculatePDF20Hash(password, hashData, userBytes);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n },\n getUserKey: function PDF20_getUserKey(password, userKeySalt, userEncryption) {\n var hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n var key = calculatePDF20Hash(password, hashData, []);\n var cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n };\n return PDF20;\n}();\nvar CipherTransform = function CipherTransformClosure() {\n function CipherTransform(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n CipherTransform.prototype = {\n createStream: function CipherTransform_createStream(stream, length) {\n var cipher = new this.StreamCipherConstructor();\n return new _stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n });\n },\n decryptString: function CipherTransform_decryptString(s) {\n var cipher = new this.StringCipherConstructor();\n var data = (0, _util.stringToBytes)(s);\n data = cipher.decryptBlock(data, true);\n return (0, _util.bytesToString)(data);\n }\n };\n return CipherTransform;\n}();\nvar CipherTransformFactory = function CipherTransformFactoryClosure() {\n var defaultPasswordBytes = new Uint8Array([0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]);\n function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) {\n if (password) {\n var passwordLength = Math.min(127, password.length);\n password = password.subarray(0, passwordLength);\n } else {\n password = [];\n }\n var pdfAlgorithm;\n if (revision === 6) {\n pdfAlgorithm = new PDF20();\n } else {\n pdfAlgorithm = new PDF17();\n }\n if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {\n return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) {\n return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);\n }\n return null;\n }\n function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) {\n var hashDataSize = 40 + ownerPassword.length + fileId.length;\n var hashData = new Uint8Array(hashDataSize),\n i = 0,\n j,\n n;\n if (password) {\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\n hashData[i++] = flags & 0xFF;\n hashData[i++] = flags >> 8 & 0xFF;\n hashData[i++] = flags >> 16 & 0xFF;\n hashData[i++] = flags >>> 24 & 0xFF;\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xFF;\n hashData[i++] = 0xFF;\n hashData[i++] = 0xFF;\n hashData[i++] = 0xFF;\n }\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\n }\n var encryptionKey = hash.subarray(0, keyLengthInBytes);\n var cipher, checkData;\n if (revision >= 3) {\n for (i = 0; i < 32; ++i) {\n hashData[i] = defaultPasswordBytes[i];\n }\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n n = encryptionKey.length;\n var derivedKey = new Uint8Array(n),\n k;\n for (j = 1; j <= 19; ++j) {\n for (k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n } else {\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(defaultPasswordBytes);\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n }\n return encryptionKey;\n }\n function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n var hashData = new Uint8Array(32),\n i = 0,\n j,\n n;\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n var hash = calculateMD5(hashData, 0, i);\n var keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, hash.length);\n }\n }\n var cipher, userPassword;\n if (revision >= 3) {\n userPassword = ownerPassword;\n var derivedKey = new Uint8Array(keyLengthInBytes),\n k;\n for (j = 19; j >= 0; j--) {\n for (k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n userPassword = cipher.encryptBlock(userPassword);\n }\n } else {\n cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n userPassword = cipher.encryptBlock(ownerPassword);\n }\n return userPassword;\n }\n var identityName = _primitives.Name.get('Identity');\n function CipherTransformFactory(dict, fileId, password) {\n var filter = dict.get('Filter');\n if (!(0, _primitives.isName)(filter, 'Standard')) {\n throw new _util.FormatError('unknown encryption method');\n }\n this.dict = dict;\n var algorithm = dict.get('V');\n if (!(0, _util.isInt)(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n throw new _util.FormatError('unsupported encryption algorithm');\n }\n this.algorithm = algorithm;\n var keyLength = dict.get('Length');\n if (!keyLength) {\n if (algorithm <= 3) {\n keyLength = 40;\n } else {\n var cfDict = dict.get('CF');\n var streamCryptoName = dict.get('StmF');\n if ((0, _primitives.isDict)(cfDict) && (0, _primitives.isName)(streamCryptoName)) {\n cfDict.suppressEncryption = true;\n var handlerDict = cfDict.get(streamCryptoName.name);\n keyLength = handlerDict && handlerDict.get('Length') || 128;\n if (keyLength < 40) {\n keyLength <<= 3;\n }\n }\n }\n }\n if (!(0, _util.isInt)(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n throw new _util.FormatError('invalid key length');\n }\n var ownerPassword = (0, _util.stringToBytes)(dict.get('O')).subarray(0, 32);\n var userPassword = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 32);\n var flags = dict.get('P');\n var revision = dict.get('R');\n var encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get('EncryptMetadata') !== false;\n this.encryptMetadata = encryptMetadata;\n var fileIdBytes = (0, _util.stringToBytes)(fileId);\n var passwordBytes;\n if (password) {\n if (revision === 6) {\n try {\n password = (0, _util.utf8StringToString)(password);\n } catch (ex) {\n (0, _util.warn)('CipherTransformFactory: ' + 'Unable to convert UTF8 encoded password.');\n }\n }\n passwordBytes = (0, _util.stringToBytes)(password);\n }\n var encryptionKey;\n if (algorithm !== 5) {\n encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n } else {\n var ownerValidationSalt = (0, _util.stringToBytes)(dict.get('O')).subarray(32, 40);\n var ownerKeySalt = (0, _util.stringToBytes)(dict.get('O')).subarray(40, 48);\n var uBytes = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 48);\n var userValidationSalt = (0, _util.stringToBytes)(dict.get('U')).subarray(32, 40);\n var userKeySalt = (0, _util.stringToBytes)(dict.get('U')).subarray(40, 48);\n var ownerEncryption = (0, _util.stringToBytes)(dict.get('OE'));\n var userEncryption = (0, _util.stringToBytes)(dict.get('UE'));\n var perms = (0, _util.stringToBytes)(dict.get('Perms'));\n encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms);\n }\n if (!encryptionKey && !password) {\n throw new _util.PasswordException('No password given', _util.PasswordResponses.NEED_PASSWORD);\n } else if (!encryptionKey && password) {\n var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength);\n encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n }\n if (!encryptionKey) {\n throw new _util.PasswordException('Incorrect Password', _util.PasswordResponses.INCORRECT_PASSWORD);\n }\n this.encryptionKey = encryptionKey;\n if (algorithm >= 4) {\n var cf = dict.get('CF');\n if ((0, _primitives.isDict)(cf)) {\n cf.suppressEncryption = true;\n }\n this.cf = cf;\n this.stmf = dict.get('StmF') || identityName;\n this.strf = dict.get('StrF') || identityName;\n this.eff = dict.get('EFF') || this.stmf;\n }\n }\n function buildObjectKey(num, gen, encryptionKey, isAes) {\n var key = new Uint8Array(encryptionKey.length + 9),\n i,\n n;\n for (i = 0, n = encryptionKey.length; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\n key[i++] = num & 0xFF;\n key[i++] = num >> 8 & 0xFF;\n key[i++] = num >> 16 & 0xFF;\n key[i++] = gen & 0xFF;\n key[i++] = gen >> 8 & 0xFF;\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6C;\n key[i++] = 0x54;\n }\n var hash = calculateMD5(key, 0, i);\n return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n }\n function buildCipherConstructor(cf, name, num, gen, key) {\n if (!(0, _primitives.isName)(name)) {\n throw new _util.FormatError('Invalid crypt filter name.');\n }\n var cryptFilter = cf.get(name.name);\n var cfm;\n if (cryptFilter !== null && cryptFilter !== undefined) {\n cfm = cryptFilter.get('CFM');\n }\n if (!cfm || cfm.name === 'None') {\n return function cipherTransformFactoryBuildCipherConstructorNone() {\n return new NullCipher();\n };\n }\n if (cfm.name === 'V2') {\n return function cipherTransformFactoryBuildCipherConstructorV2() {\n return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n };\n }\n if (cfm.name === 'AESV2') {\n return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n return new AES128Cipher(buildObjectKey(num, gen, key, true));\n };\n }\n if (cfm.name === 'AESV3') {\n return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n return new AES256Cipher(key);\n };\n }\n throw new _util.FormatError('Unknown crypto method');\n }\n CipherTransformFactory.prototype = {\n createCipherTransform: function CipherTransformFactory_createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey));\n }\n var key = buildObjectKey(num, gen, this.encryptionKey, false);\n var cipherConstructor = function buildCipherCipherConstructor() {\n return new ARCFourCipher(key);\n };\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n };\n return CipherTransformFactory;\n}();\nexports.AES128Cipher = AES128Cipher;\nexports.AES256Cipher = AES256Cipher;\nexports.ARCFourCipher = ARCFourCipher;\nexports.CipherTransformFactory = CipherTransformFactory;\nexports.PDF17 = PDF17;\nexports.PDF20 = PDF20;\nexports.calculateMD5 = calculateMD5;\nexports.calculateSHA256 = calculateSHA256;\nexports.calculateSHA384 = calculateSHA384;\nexports.calculateSHA512 = calculateSHA512;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PartialEvaluator = exports.OperatorList = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _cmap = __w_pdfjs_require__(90);\n\nvar _stream = __w_pdfjs_require__(3);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _fonts = __w_pdfjs_require__(93);\n\nvar _encodings = __w_pdfjs_require__(16);\n\nvar _unicode = __w_pdfjs_require__(60);\n\nvar _standard_fonts = __w_pdfjs_require__(59);\n\nvar _pattern = __w_pdfjs_require__(99);\n\nvar _function = __w_pdfjs_require__(32);\n\nvar _parser = __w_pdfjs_require__(23);\n\nvar _bidi = __w_pdfjs_require__(88);\n\nvar _colorspace = __w_pdfjs_require__(15);\n\nvar _glyphlist = __w_pdfjs_require__(33);\n\nvar _metrics = __w_pdfjs_require__(97);\n\nvar _murmurhash = __w_pdfjs_require__(98);\n\nvar _image = __w_pdfjs_require__(94);\n\nvar PartialEvaluator = function PartialEvaluatorClosure() {\n var DefaultPartialEvaluatorOptions = {\n forceDataSchema: false,\n maxImageSize: -1,\n disableFontFace: false,\n nativeImageDecoderSupport: _util.NativeImageDecoding.DECODE,\n ignoreErrors: false\n };\n function NativeImageDecoder(xref, resources, handler, forceDataSchema) {\n this.xref = xref;\n this.resources = resources;\n this.handler = handler;\n this.forceDataSchema = forceDataSchema;\n }\n NativeImageDecoder.prototype = {\n canDecode: function canDecode(image) {\n return image instanceof _stream.JpegStream && NativeImageDecoder.isDecodable(image, this.xref, this.resources);\n },\n decode: function decode(image) {\n var dict = image.dict;\n var colorSpace = dict.get('ColorSpace', 'CS');\n colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, this.resources);\n var numComps = colorSpace.numComps;\n var decodePromise = this.handler.sendWithPromise('JpegDecode', [image.getIR(this.forceDataSchema), numComps]);\n return decodePromise.then(function (message) {\n var data = message.data;\n return new _stream.Stream(data, 0, data.length, image.dict);\n });\n }\n };\n NativeImageDecoder.isSupported = function NativeImageDecoder_isSupported(image, xref, res) {\n var dict = image.dict;\n if (dict.has('DecodeParms') || dict.has('DP')) {\n return false;\n }\n var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res);\n return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && cs.isDefaultDecode(dict.getArray('Decode', 'D'));\n };\n NativeImageDecoder.isDecodable = function NativeImageDecoder_isDecodable(image, xref, res) {\n var dict = image.dict;\n if (dict.has('DecodeParms') || dict.has('DP')) {\n return false;\n }\n var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res);\n return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray('Decode', 'D'));\n };\n function PartialEvaluator(_ref) {\n var _this = this;\n\n var pdfManager = _ref.pdfManager,\n xref = _ref.xref,\n handler = _ref.handler,\n pageIndex = _ref.pageIndex,\n idFactory = _ref.idFactory,\n fontCache = _ref.fontCache,\n builtInCMapCache = _ref.builtInCMapCache,\n _ref$options = _ref.options,\n options = _ref$options === undefined ? null : _ref$options;\n\n this.pdfManager = pdfManager;\n this.xref = xref;\n this.handler = handler;\n this.pageIndex = pageIndex;\n this.idFactory = idFactory;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.options = options || DefaultPartialEvaluatorOptions;\n this.fetchBuiltInCMap = function (name) {\n var cachedCMap = _this.builtInCMapCache[name];\n if (cachedCMap) {\n return Promise.resolve(cachedCMap);\n }\n return _this.handler.sendWithPromise('FetchBuiltInCMap', { name: name }).then(function (data) {\n if (data.compressionType !== _util.CMapCompressionType.NONE) {\n _this.builtInCMapCache[name] = data;\n }\n return data;\n });\n };\n }\n var TIME_SLOT_DURATION_MS = 20;\n var CHECK_TIME_EVERY = 100;\n function TimeSlotManager() {\n this.reset();\n }\n TimeSlotManager.prototype = {\n check: function TimeSlotManager_check() {\n if (++this.checked < CHECK_TIME_EVERY) {\n return false;\n }\n this.checked = 0;\n return this.endTime <= Date.now();\n },\n reset: function TimeSlotManager_reset() {\n this.endTime = Date.now() + TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n };\n function normalizeBlendMode(value) {\n if (!(0, _primitives.isName)(value)) {\n return 'source-over';\n }\n switch (value.name) {\n case 'Normal':\n case 'Compatible':\n return 'source-over';\n case 'Multiply':\n return 'multiply';\n case 'Screen':\n return 'screen';\n case 'Overlay':\n return 'overlay';\n case 'Darken':\n return 'darken';\n case 'Lighten':\n return 'lighten';\n case 'ColorDodge':\n return 'color-dodge';\n case 'ColorBurn':\n return 'color-burn';\n case 'HardLight':\n return 'hard-light';\n case 'SoftLight':\n return 'soft-light';\n case 'Difference':\n return 'difference';\n case 'Exclusion':\n return 'exclusion';\n case 'Hue':\n return 'hue';\n case 'Saturation':\n return 'saturation';\n case 'Color':\n return 'color';\n case 'Luminosity':\n return 'luminosity';\n }\n (0, _util.warn)('Unsupported blend mode: ' + value.name);\n return 'source-over';\n }\n var deferred = Promise.resolve();\n var TILING_PATTERN = 1,\n SHADING_PATTERN = 2;\n PartialEvaluator.prototype = {\n clone: function clone() {\n var newOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DefaultPartialEvaluatorOptions;\n\n var newEvaluator = Object.create(this);\n newEvaluator.options = newOptions;\n return newEvaluator;\n },\n\n hasBlendModes: function PartialEvaluator_hasBlendModes(resources) {\n if (!(0, _primitives.isDict)(resources)) {\n return false;\n }\n var processed = Object.create(null);\n if (resources.objId) {\n processed[resources.objId] = true;\n }\n var nodes = [resources],\n xref = this.xref;\n while (nodes.length) {\n var key, i, ii;\n var node = nodes.shift();\n var graphicStates = node.get('ExtGState');\n if ((0, _primitives.isDict)(graphicStates)) {\n var graphicStatesKeys = graphicStates.getKeys();\n for (i = 0, ii = graphicStatesKeys.length; i < ii; i++) {\n key = graphicStatesKeys[i];\n var graphicState = graphicStates.get(key);\n var bm = graphicState.get('BM');\n if ((0, _primitives.isName)(bm) && bm.name !== 'Normal') {\n return true;\n }\n }\n }\n var xObjects = node.get('XObject');\n if (!(0, _primitives.isDict)(xObjects)) {\n continue;\n }\n var xObjectsKeys = xObjects.getKeys();\n for (i = 0, ii = xObjectsKeys.length; i < ii; i++) {\n key = xObjectsKeys[i];\n var xObject = xObjects.getRaw(key);\n if ((0, _primitives.isRef)(xObject)) {\n if (processed[xObject.toString()]) {\n continue;\n }\n xObject = xref.fetch(xObject);\n }\n if (!(0, _primitives.isStream)(xObject)) {\n continue;\n }\n if (xObject.dict.objId) {\n if (processed[xObject.dict.objId]) {\n continue;\n }\n processed[xObject.dict.objId] = true;\n }\n var xResources = xObject.dict.get('Resources');\n if ((0, _primitives.isDict)(xResources) && (!xResources.objId || !processed[xResources.objId])) {\n nodes.push(xResources);\n if (xResources.objId) {\n processed[xResources.objId] = true;\n }\n }\n }\n }\n return false;\n },\n buildFormXObject: function PartialEvaluator_buildFormXObject(resources, xobj, smask, operatorList, task, initialState) {\n var dict = xobj.dict;\n var matrix = dict.getArray('Matrix');\n var bbox = dict.getArray('BBox');\n var group = dict.get('Group');\n if (group) {\n var groupOptions = {\n matrix: matrix,\n bbox: bbox,\n smask: smask,\n isolated: false,\n knockout: false\n };\n var groupSubtype = group.get('S');\n var colorSpace;\n if ((0, _primitives.isName)(groupSubtype, 'Transparency')) {\n groupOptions.isolated = group.get('I') || false;\n groupOptions.knockout = group.get('K') || false;\n colorSpace = group.has('CS') ? _colorspace.ColorSpace.parse(group.get('CS'), this.xref, resources) : null;\n }\n if (smask && smask.backdrop) {\n colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n operatorList.addOp(_util.OPS.beginGroup, [groupOptions]);\n }\n operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]);\n return this.getOperatorList({\n stream: xobj,\n task: task,\n resources: dict.get('Resources') || resources,\n operatorList: operatorList,\n initialState: initialState\n }).then(function () {\n operatorList.addOp(_util.OPS.paintFormXObjectEnd, []);\n if (group) {\n operatorList.addOp(_util.OPS.endGroup, [groupOptions]);\n }\n });\n },\n buildPaintImageXObject: function PartialEvaluator_buildPaintImageXObject(resources, image, inline, operatorList, cacheKey, imageCache) {\n var _this2 = this;\n\n var dict = image.dict;\n var w = dict.get('Width', 'W');\n var h = dict.get('Height', 'H');\n if (!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h))) {\n (0, _util.warn)('Image dimensions are missing, or not numbers.');\n return;\n }\n var maxImageSize = this.options.maxImageSize;\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n (0, _util.warn)('Image exceeded maximum allowed size and was removed.');\n return;\n }\n var imageMask = dict.get('ImageMask', 'IM') || false;\n var imgData, args;\n if (imageMask) {\n var width = dict.get('Width', 'W');\n var height = dict.get('Height', 'H');\n var bitStrideLength = width + 7 >> 3;\n var imgArray = image.getBytes(bitStrideLength * height);\n var decode = dict.getArray('Decode', 'D');\n var inverseDecode = !!decode && decode[0] > 0;\n imgData = _image.PDFImage.createMask(imgArray, width, height, image instanceof _stream.DecodeStream, inverseDecode);\n imgData.cached = true;\n args = [imgData];\n operatorList.addOp(_util.OPS.paintImageMaskXObject, args);\n if (cacheKey) {\n imageCache[cacheKey] = {\n fn: _util.OPS.paintImageMaskXObject,\n args: args\n };\n }\n return;\n }\n var softMask = dict.get('SMask', 'SM') || false;\n var mask = dict.get('Mask') || false;\n var SMALL_IMAGE_DIMENSIONS = 200;\n if (inline && !softMask && !mask && !(image instanceof _stream.JpegStream) && w + h < SMALL_IMAGE_DIMENSIONS) {\n var imageObj = new _image.PDFImage(this.xref, resources, image, inline, null, null);\n imgData = imageObj.createImageData(true);\n operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]);\n return;\n }\n var nativeImageDecoderSupport = this.options.nativeImageDecoderSupport;\n var objId = 'img_' + this.idFactory.createObjId();\n operatorList.addDependency(objId);\n args = [objId, w, h];\n if (nativeImageDecoderSupport !== _util.NativeImageDecoding.NONE && !softMask && !mask && image instanceof _stream.JpegStream && NativeImageDecoder.isSupported(image, this.xref, resources)) {\n operatorList.addOp(_util.OPS.paintJpegXObject, args);\n this.handler.send('obj', [objId, this.pageIndex, 'JpegStream', image.getIR(this.options.forceDataSchema)]);\n if (cacheKey) {\n imageCache[cacheKey] = {\n fn: _util.OPS.paintJpegXObject,\n args: args\n };\n }\n return;\n }\n var nativeImageDecoder = null;\n if (nativeImageDecoderSupport === _util.NativeImageDecoding.DECODE && (image instanceof _stream.JpegStream || mask instanceof _stream.JpegStream || softMask instanceof _stream.JpegStream)) {\n nativeImageDecoder = new NativeImageDecoder(this.xref, resources, this.handler, this.options.forceDataSchema);\n }\n _image.PDFImage.buildImage(this.handler, this.xref, resources, image, inline, nativeImageDecoder).then(function (imageObj) {\n var imgData = imageObj.createImageData(false);\n _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]);\n }).catch(function (reason) {\n (0, _util.warn)('Unable to decode image: ' + reason);\n _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]);\n });\n operatorList.addOp(_util.OPS.paintImageXObject, args);\n if (cacheKey) {\n imageCache[cacheKey] = {\n fn: _util.OPS.paintImageXObject,\n args: args\n };\n }\n },\n handleSMask: function PartialEvaluator_handleSmask(smask, resources, operatorList, task, stateManager) {\n var smaskContent = smask.get('G');\n var smaskOptions = {\n subtype: smask.get('S').name,\n backdrop: smask.get('BC')\n };\n var transferObj = smask.get('TR');\n if ((0, _function.isPDFFunction)(transferObj)) {\n var transferFn = _function.PDFFunction.parse(this.xref, transferObj);\n var transferMap = new Uint8Array(256);\n var tmp = new Float32Array(1);\n for (var i = 0; i < 256; i++) {\n tmp[0] = i / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[i] = tmp[0] * 255 | 0;\n }\n smaskOptions.transferMap = transferMap;\n }\n return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone());\n },\n handleTilingType: function handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) {\n var _this3 = this;\n\n var tilingOpList = new OperatorList();\n var resourcesArray = [patternDict.get('Resources'), resources];\n var patternResources = _primitives.Dict.merge(this.xref, resourcesArray);\n return this.getOperatorList({\n stream: pattern,\n task: task,\n resources: patternResources,\n operatorList: tilingOpList\n }).then(function () {\n return (0, _pattern.getTilingPatternIR)({\n fnArray: tilingOpList.fnArray,\n argsArray: tilingOpList.argsArray\n }, patternDict, args);\n }).then(function (tilingPatternIR) {\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n }, function (reason) {\n if (_this3.options.ignoreErrors) {\n _this3.handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.unknown });\n (0, _util.warn)('handleTilingType - ignoring pattern: \"' + reason + '\".');\n return;\n }\n throw reason;\n });\n },\n\n handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {\n var _this4 = this;\n\n var fontName;\n if (fontArgs) {\n fontArgs = fontArgs.slice();\n fontName = fontArgs[0].name;\n }\n return this.loadFont(fontName, fontRef, resources).then(function (translated) {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated.loadType3Data(_this4, resources, operatorList, task).then(function () {\n return translated;\n }).catch(function (reason) {\n _this4.handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.font });\n return new TranslatedFont('g_font_error', new _fonts.ErrorFont('Type3 font load error: ' + reason), translated.font);\n });\n }).then(function (translated) {\n state.font = translated.font;\n translated.send(_this4.handler);\n return translated.loadedName;\n });\n },\n handleText: function PartialEvaluator_handleText(chars, state) {\n var _this5 = this;\n\n var font = state.font;\n var glyphs = font.charsToGlyphs(chars);\n var isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n if (font.data && (isAddToPathSet || this.options.disableFontFace)) {\n var buildPath = function buildPath(fontChar) {\n if (!font.renderer.hasBuiltPath(fontChar)) {\n var path = font.renderer.getPathJs(fontChar);\n _this5.handler.send('commonobj', [font.loadedName + '_path_' + fontChar, 'FontPath', path]);\n }\n };\n for (var i = 0, ii = glyphs.length; i < ii; i++) {\n var glyph = glyphs[i];\n buildPath(glyph.fontChar);\n var accent = glyph.accent;\n if (accent && accent.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n }\n return glyphs;\n },\n setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) {\n var _this6 = this;\n\n var gStateObj = [];\n var gStateKeys = gState.getKeys();\n var promise = Promise.resolve();\n\n var _loop = function _loop() {\n var key = gStateKeys[i];\n var value = gState.get(key);\n switch (key) {\n case 'Type':\n break;\n case 'LW':\n case 'LC':\n case 'LJ':\n case 'ML':\n case 'D':\n case 'RI':\n case 'FL':\n case 'CA':\n case 'ca':\n gStateObj.push([key, value]);\n break;\n case 'Font':\n promise = promise.then(function () {\n return _this6.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n gStateObj.push([key, [loadedName, value[1]]]);\n });\n });\n break;\n case 'BM':\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n case 'SMask':\n if ((0, _primitives.isName)(value, 'None')) {\n gStateObj.push([key, false]);\n break;\n }\n if ((0, _primitives.isDict)(value)) {\n promise = promise.then(function () {\n return _this6.handleSMask(value, resources, operatorList, task, stateManager);\n });\n gStateObj.push([key, true]);\n } else {\n (0, _util.warn)('Unsupported SMask type');\n }\n break;\n case 'OP':\n case 'op':\n case 'OPM':\n case 'BG':\n case 'BG2':\n case 'UCR':\n case 'UCR2':\n case 'TR':\n case 'TR2':\n case 'HT':\n case 'SM':\n case 'SA':\n case 'AIS':\n case 'TK':\n (0, _util.info)('graphic state operator ' + key);\n break;\n default:\n (0, _util.info)('Unknown graphic state operator ' + key);\n break;\n }\n };\n\n for (var i = 0, ii = gStateKeys.length; i < ii; i++) {\n _loop();\n }\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(_util.OPS.setGState, [gStateObj]);\n }\n });\n },\n loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {\n var _this7 = this;\n\n function errorFont() {\n return Promise.resolve(new TranslatedFont('g_font_error', new _fonts.ErrorFont('Font ' + fontName + ' is not available'), font));\n }\n var fontRef,\n xref = this.xref;\n if (font) {\n if (!(0, _primitives.isRef)(font)) {\n throw new Error('The \"font\" object should be a reference.');\n }\n fontRef = font;\n } else {\n var fontRes = resources.get('Font');\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n } else {\n (0, _util.warn)('fontRes not available');\n return errorFont();\n }\n }\n if (!fontRef) {\n (0, _util.warn)('fontRef not available');\n return errorFont();\n }\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n font = xref.fetchIfRef(fontRef);\n if (!(0, _primitives.isDict)(font)) {\n return errorFont();\n }\n if (font.translated) {\n return font.translated;\n }\n var fontCapability = (0, _util.createPromiseCapability)();\n var preEvaluatedFont = this.preEvaluateFont(font);\n var descriptor = preEvaluatedFont.descriptor;\n var fontRefIsRef = (0, _primitives.isRef)(fontRef),\n fontID;\n if (fontRefIsRef) {\n fontID = fontRef.toString();\n }\n if ((0, _primitives.isDict)(descriptor)) {\n if (!descriptor.fontAliases) {\n descriptor.fontAliases = Object.create(null);\n }\n var fontAliases = descriptor.fontAliases;\n var hash = preEvaluatedFont.hash;\n if (fontAliases[hash]) {\n var aliasFontRef = fontAliases[hash].aliasRef;\n if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n this.fontCache.putAlias(fontRef, aliasFontRef);\n return this.fontCache.get(fontRef);\n }\n } else {\n fontAliases[hash] = { fontID: _fonts.Font.getFontID() };\n }\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n fontID = fontAliases[hash].fontID;\n }\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n if (!fontID) {\n fontID = this.idFactory.createObjId();\n }\n this.fontCache.put('id_' + fontID, fontCapability.promise);\n }\n (0, _util.assert)(fontID, 'The \"fontID\" must be defined.');\n font.loadedName = 'g_' + this.pdfManager.docId + '_f' + fontID;\n font.translated = fontCapability.promise;\n var translatedPromise;\n try {\n translatedPromise = this.translateFont(preEvaluatedFont);\n } catch (e) {\n translatedPromise = Promise.reject(e);\n }\n translatedPromise.then(function (translatedFont) {\n if (translatedFont.fontType !== undefined) {\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[translatedFont.fontType] = true;\n }\n fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font));\n }).catch(function (reason) {\n _this7.handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.font });\n try {\n var descriptor = preEvaluatedFont.descriptor;\n var fontFile3 = descriptor && descriptor.get('FontFile3');\n var subtype = fontFile3 && fontFile3.get('Subtype');\n var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name);\n var xrefFontStats = xref.stats.fontTypes;\n xrefFontStats[fontType] = true;\n } catch (ex) {}\n fontCapability.resolve(new TranslatedFont(font.loadedName, new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason), font));\n });\n return fontCapability.promise;\n },\n buildPath: function PartialEvaluator_buildPath(operatorList, fn, args) {\n var lastIndex = operatorList.length - 1;\n if (!args) {\n args = [];\n }\n if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {\n operatorList.addOp(_util.OPS.constructPath, [[fn], args]);\n } else {\n var opArgs = operatorList.argsArray[lastIndex];\n opArgs[0].push(fn);\n Array.prototype.push.apply(opArgs[1], args);\n }\n },\n handleColorN: function PartialEvaluator_handleColorN(operatorList, fn, args, cs, patterns, resources, task) {\n var patternName = args[args.length - 1];\n var pattern;\n if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) {\n var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;\n var typeNum = dict.get('PatternType');\n if (typeNum === TILING_PATTERN) {\n var color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task);\n } else if (typeNum === SHADING_PATTERN) {\n var shading = dict.get('Shading');\n var matrix = dict.getArray('Matrix');\n pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler);\n operatorList.addOp(fn, pattern.getIR());\n return Promise.resolve();\n }\n return Promise.reject(new Error('Unknown PatternType: ' + typeNum));\n }\n operatorList.addOp(fn, args);\n return Promise.resolve();\n },\n getOperatorList: function getOperatorList(_ref2) {\n var _this8 = this;\n\n var stream = _ref2.stream,\n task = _ref2.task,\n resources = _ref2.resources,\n operatorList = _ref2.operatorList,\n _ref2$initialState = _ref2.initialState,\n initialState = _ref2$initialState === undefined ? null : _ref2$initialState;\n\n resources = resources || _primitives.Dict.empty;\n initialState = initialState || new EvalState();\n if (!operatorList) {\n throw new Error('getOperatorList: missing \"operatorList\" parameter');\n }\n var self = this;\n var xref = this.xref;\n var imageCache = Object.create(null);\n var xobjs = resources.get('XObject') || _primitives.Dict.empty;\n var patterns = resources.get('Pattern') || _primitives.Dict.empty;\n var stateManager = new StateManager(initialState);\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var timeSlotManager = new TimeSlotManager();\n function closePendingRestoreOPS(argument) {\n for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n operatorList.addOp(_util.OPS.restore, []);\n }\n }\n return new Promise(function promiseBody(resolve, reject) {\n var next = function next(promise) {\n promise.then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n i,\n ii,\n cs;\n while (!(stop = timeSlotManager.check())) {\n operation.args = null;\n if (!preprocessor.read(operation)) {\n break;\n }\n var args = operation.args;\n var fn = operation.fn;\n switch (fn | 0) {\n case _util.OPS.paintXObject:\n var name = args[0].name;\n if (!name) {\n (0, _util.warn)('XObject must be referred to by name.');\n continue;\n }\n if (imageCache[name] !== undefined) {\n operatorList.addOp(imageCache[name].fn, imageCache[name].args);\n args = null;\n continue;\n }\n var xobj = xobjs.get(name);\n if (xobj) {\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError('XObject should be a stream');\n }\n var type = xobj.dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('XObject should have a Name subtype');\n }\n if (type.name === 'Form') {\n stateManager.save();\n next(self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone()).then(function () {\n stateManager.restore();\n }));\n return;\n } else if (type.name === 'Image') {\n self.buildPaintImageXObject(resources, xobj, false, operatorList, name, imageCache);\n args = null;\n continue;\n } else if (type.name === 'PS') {\n (0, _util.info)('Ignored XObject subtype PS');\n continue;\n } else {\n throw new _util.FormatError('Unhandled XObject subtype ' + type.name);\n }\n }\n break;\n case _util.OPS.setFont:\n var fontSize = args[1];\n next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]);\n }));\n return;\n case _util.OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n if (cacheKey) {\n var cacheEntry = imageCache[cacheKey];\n if (cacheEntry !== undefined) {\n operatorList.addOp(cacheEntry.fn, cacheEntry.args);\n args = null;\n continue;\n }\n }\n self.buildPaintImageXObject(resources, args[0], true, operatorList, cacheKey, imageCache);\n args = null;\n continue;\n case _util.OPS.showText:\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n case _util.OPS.showSpacedText:\n var arr = args[0];\n var combinedGlyphs = [];\n var arrLength = arr.length;\n var state = stateManager.state;\n for (i = 0; i < arrLength; ++i) {\n var arrItem = arr[i];\n if ((0, _util.isString)(arrItem)) {\n Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state));\n } else if ((0, _util.isNum)(arrItem)) {\n combinedGlyphs.push(arrItem);\n }\n }\n args[0] = combinedGlyphs;\n fn = _util.OPS.showText;\n break;\n case _util.OPS.nextLineShowText:\n operatorList.addOp(_util.OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n case _util.OPS.nextLineSetSpacingShowText:\n operatorList.addOp(_util.OPS.nextLine);\n operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]);\n operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = _util.OPS.showText;\n break;\n case _util.OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n case _util.OPS.setFillColorSpace:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources);\n continue;\n case _util.OPS.setStrokeColorSpace:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources);\n continue;\n case _util.OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n case _util.OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n case _util.OPS.setFillGray:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n case _util.OPS.setStrokeGray:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n case _util.OPS.setFillCMYKColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n case _util.OPS.setStrokeCMYKColor:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n case _util.OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case _util.OPS.setStrokeRGBColor:\n stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb;\n args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case _util.OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n if (cs.name === 'Pattern') {\n next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task));\n return;\n }\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setFillRGBColor;\n break;\n case _util.OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n if (cs.name === 'Pattern') {\n next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task));\n return;\n }\n args = cs.getRgb(args, 0);\n fn = _util.OPS.setStrokeRGBColor;\n break;\n case _util.OPS.shadingFill:\n var shadingRes = resources.get('Shading');\n if (!shadingRes) {\n throw new _util.FormatError('No shading resource found');\n }\n var shading = shadingRes.get(args[0].name);\n if (!shading) {\n throw new _util.FormatError('No shading object found');\n }\n var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler);\n var patternIR = shadingFill.getIR();\n args = [patternIR];\n fn = _util.OPS.shadingFill;\n break;\n case _util.OPS.setGState:\n var dictName = args[0];\n var extGState = resources.get('ExtGState');\n if (!(0, _primitives.isDict)(extGState) || !extGState.has(dictName.name)) {\n break;\n }\n var gState = extGState.get(dictName.name);\n next(self.setGState(resources, gState, operatorList, task, stateManager));\n return;\n case _util.OPS.moveTo:\n case _util.OPS.lineTo:\n case _util.OPS.curveTo:\n case _util.OPS.curveTo2:\n case _util.OPS.curveTo3:\n case _util.OPS.closePath:\n self.buildPath(operatorList, fn, args);\n continue;\n case _util.OPS.rectangle:\n self.buildPath(operatorList, fn, args);\n continue;\n case _util.OPS.markPoint:\n case _util.OPS.markPointProps:\n case _util.OPS.beginMarkedContent:\n case _util.OPS.beginMarkedContentProps:\n case _util.OPS.endMarkedContent:\n case _util.OPS.beginCompat:\n case _util.OPS.endCompat:\n continue;\n default:\n if (args !== null) {\n for (i = 0, ii = args.length; i < ii; i++) {\n if (args[i] instanceof _primitives.Dict) {\n break;\n }\n }\n if (i < ii) {\n (0, _util.warn)('getOperatorList - ignoring operator: ' + fn);\n continue;\n }\n }\n }\n operatorList.addOp(fn, args);\n }\n if (stop) {\n next(deferred);\n return;\n }\n closePendingRestoreOPS();\n resolve();\n }).catch(function (reason) {\n if (_this8.options.ignoreErrors) {\n _this8.handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.unknown });\n (0, _util.warn)('getOperatorList - ignoring errors during task: ' + task.name);\n closePendingRestoreOPS();\n return;\n }\n throw reason;\n });\n },\n getTextContent: function getTextContent(_ref3) {\n var _this9 = this;\n\n var stream = _ref3.stream,\n task = _ref3.task,\n resources = _ref3.resources,\n _ref3$stateManager = _ref3.stateManager,\n stateManager = _ref3$stateManager === undefined ? null : _ref3$stateManager,\n _ref3$normalizeWhites = _ref3.normalizeWhitespace,\n normalizeWhitespace = _ref3$normalizeWhites === undefined ? false : _ref3$normalizeWhites,\n _ref3$combineTextItem = _ref3.combineTextItems,\n combineTextItems = _ref3$combineTextItem === undefined ? false : _ref3$combineTextItem,\n sink = _ref3.sink,\n _ref3$seenStyles = _ref3.seenStyles,\n seenStyles = _ref3$seenStyles === undefined ? Object.create(null) : _ref3$seenStyles;\n\n resources = resources || _primitives.Dict.empty;\n stateManager = stateManager || new StateManager(new TextState());\n var WhitespaceRegexp = /\\s/g;\n var textContent = {\n items: [],\n styles: Object.create(null)\n };\n var textContentItem = {\n initialized: false,\n str: [],\n width: 0,\n height: 0,\n vertical: false,\n lastAdvanceWidth: 0,\n lastAdvanceHeight: 0,\n textAdvanceScale: 0,\n spaceWidth: 0,\n fakeSpaceMin: Infinity,\n fakeMultiSpaceMin: Infinity,\n fakeMultiSpaceMax: -0,\n textRunBreakAllowed: false,\n transform: null,\n fontName: null\n };\n var SPACE_FACTOR = 0.3;\n var MULTI_SPACE_FACTOR = 1.5;\n var MULTI_SPACE_FACTOR_MAX = 4;\n var self = this;\n var xref = this.xref;\n var xobjs = null;\n var skipEmptyXObjs = Object.create(null);\n var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n var textState;\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n var font = textState.font;\n if (!(font.loadedName in seenStyles)) {\n seenStyles[font.loadedName] = true;\n textContent.styles[font.loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical\n };\n }\n textContentItem.fontName = font.loadedName;\n var tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n if (font.isType3Font && textState.fontMatrix !== _util.FONT_IDENTITY_MATRIX && textState.fontSize === 1) {\n var glyphHeight = font.bbox[3] - font.bbox[1];\n if (glyphHeight > 0) {\n glyphHeight = glyphHeight * textState.fontMatrix[3];\n tsm[3] *= glyphHeight;\n }\n }\n var trm = _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm));\n textContentItem.transform = trm;\n if (!font.vertical) {\n textContentItem.width = 0;\n textContentItem.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]);\n textContentItem.vertical = false;\n } else {\n textContentItem.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]);\n textContentItem.height = 0;\n textContentItem.vertical = true;\n }\n var a = textState.textLineMatrix[0];\n var b = textState.textLineMatrix[1];\n var scaleLineX = Math.sqrt(a * a + b * b);\n a = textState.ctm[0];\n b = textState.ctm[1];\n var scaleCtmX = Math.sqrt(a * a + b * b);\n textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n textContentItem.lastAdvanceWidth = 0;\n textContentItem.lastAdvanceHeight = 0;\n var spaceWidth = font.spaceWidth / 1000 * textState.fontSize;\n if (spaceWidth) {\n textContentItem.spaceWidth = spaceWidth;\n textContentItem.fakeSpaceMin = spaceWidth * SPACE_FACTOR;\n textContentItem.fakeMultiSpaceMin = spaceWidth * MULTI_SPACE_FACTOR;\n textContentItem.fakeMultiSpaceMax = spaceWidth * MULTI_SPACE_FACTOR_MAX;\n textContentItem.textRunBreakAllowed = !font.isMonospace;\n } else {\n textContentItem.spaceWidth = 0;\n textContentItem.fakeSpaceMin = Infinity;\n textContentItem.fakeMultiSpaceMin = Infinity;\n textContentItem.fakeMultiSpaceMax = 0;\n textContentItem.textRunBreakAllowed = false;\n }\n textContentItem.initialized = true;\n return textContentItem;\n }\n function replaceWhitespace(str) {\n var i = 0,\n ii = str.length,\n code;\n while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7F) {\n i++;\n }\n return i < ii ? str.replace(WhitespaceRegexp, ' ') : str;\n }\n function runBidiTransform(textChunk) {\n var str = textChunk.str.join('');\n var bidiResult = (0, _bidi.bidi)(str, -1, textChunk.vertical);\n return {\n str: normalizeWhitespace ? replaceWhitespace(bidiResult.str) : bidiResult.str,\n dir: bidiResult.dir,\n width: textChunk.width,\n height: textChunk.height,\n transform: textChunk.transform,\n fontName: textChunk.fontName\n };\n }\n function handleSetFont(fontName, fontRef) {\n return self.loadFont(fontName, fontRef, resources).then(function (translated) {\n textState.font = translated.font;\n textState.fontMatrix = translated.font.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n });\n }\n function buildTextContentItem(chars) {\n var font = textState.font;\n var textChunk = ensureTextContentItem();\n var width = 0;\n var height = 0;\n var glyphs = font.charsToGlyphs(chars);\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n var glyphWidth = null;\n if (font.vertical && glyph.vmetric) {\n glyphWidth = glyph.vmetric[0];\n } else {\n glyphWidth = glyph.width;\n }\n var glyphUnicode = glyph.unicode;\n var NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();\n if (NormalizedUnicodes[glyphUnicode] !== undefined) {\n glyphUnicode = NormalizedUnicodes[glyphUnicode];\n }\n glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode);\n var charSpacing = textState.charSpacing;\n if (glyph.isSpace) {\n var wordSpacing = textState.wordSpacing;\n charSpacing += wordSpacing;\n if (wordSpacing > 0) {\n addFakeSpaces(wordSpacing, textChunk.str);\n }\n }\n var tx = 0;\n var ty = 0;\n if (!font.vertical) {\n var w0 = glyphWidth * textState.fontMatrix[0];\n tx = (w0 * textState.fontSize + charSpacing) * textState.textHScale;\n width += tx;\n } else {\n var w1 = glyphWidth * textState.fontMatrix[0];\n ty = w1 * textState.fontSize + charSpacing;\n height += ty;\n }\n textState.translateTextMatrix(tx, ty);\n textChunk.str.push(glyphUnicode);\n }\n if (!font.vertical) {\n textChunk.lastAdvanceWidth = width;\n textChunk.width += width;\n } else {\n textChunk.lastAdvanceHeight = height;\n textChunk.height += Math.abs(height);\n }\n return textChunk;\n }\n function addFakeSpaces(width, strBuf) {\n if (width < textContentItem.fakeSpaceMin) {\n return;\n }\n if (width < textContentItem.fakeMultiSpaceMin) {\n strBuf.push(' ');\n return;\n }\n var fakeSpaces = Math.round(width / textContentItem.spaceWidth);\n while (fakeSpaces-- > 0) {\n strBuf.push(' ');\n }\n }\n function flushTextContentItem() {\n if (!textContentItem.initialized) {\n return;\n }\n textContentItem.width *= textContentItem.textAdvanceScale;\n textContentItem.height *= textContentItem.textAdvanceScale;\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n function enqueueChunk() {\n var length = textContent.items.length;\n if (length > 0) {\n sink.enqueue(textContent, length);\n textContent.items = [];\n textContent.styles = Object.create(null);\n }\n }\n var timeSlotManager = new TimeSlotManager();\n return new Promise(function promiseBody(resolve, reject) {\n var next = function next(promise) {\n enqueueChunk();\n Promise.all([promise, sink.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n var stop,\n operation = {},\n args = [];\n while (!(stop = timeSlotManager.check())) {\n args.length = 0;\n operation.args = args;\n if (!preprocessor.read(operation)) {\n break;\n }\n textState = stateManager.state;\n var fn = operation.fn;\n args = operation.args;\n var advance, diff;\n var fontNameArg, fontSizeArg;\n var isSameTextLine;\n var items;\n var offset;\n var j, jj;\n var breakTextRun;\n var name;\n var xobj;\n var type;\n var currentState;\n var xObjStateManager;\n var matrix;\n var dictName;\n var extGState;\n var gState;\n var gStateFont;\n\n var _ret2 = function () {\n switch (fn | 0) {\n case _util.OPS.setFont:\n fontNameArg = args[0].name;\n fontSizeArg = args[1];\n\n if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n break;\n }\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return {\n v: void 0\n };\n case _util.OPS.setTextRise:\n flushTextContentItem();\n textState.textRise = args[0];\n break;\n case _util.OPS.setHScale:\n flushTextContentItem();\n textState.textHScale = args[0] / 100;\n break;\n case _util.OPS.setLeading:\n flushTextContentItem();\n textState.leading = args[0];\n break;\n case _util.OPS.moveText:\n isSameTextLine = !textState.font ? false : (textState.font.vertical ? args[0] : args[1]) === 0;\n\n advance = args[0] - args[1];\n if (combineTextItems && isSameTextLine && textContentItem.initialized && advance > 0 && advance <= textContentItem.fakeMultiSpaceMax) {\n textState.translateTextLineMatrix(args[0], args[1]);\n textContentItem.width += args[0] - textContentItem.lastAdvanceWidth;\n textContentItem.height += args[1] - textContentItem.lastAdvanceHeight;\n diff = args[0] - textContentItem.lastAdvanceWidth - (args[1] - textContentItem.lastAdvanceHeight);\n addFakeSpaces(diff, textContentItem.str);\n break;\n }\n flushTextContentItem();\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case _util.OPS.setLeadingMoveText:\n flushTextContentItem();\n textState.leading = -args[1];\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case _util.OPS.nextLine:\n flushTextContentItem();\n textState.carriageReturn();\n break;\n case _util.OPS.setTextMatrix:\n advance = textState.calcTextLineMatrixAdvance(args[0], args[1], args[2], args[3], args[4], args[5]);\n if (combineTextItems && advance !== null && textContentItem.initialized && advance.value > 0 && advance.value <= textContentItem.fakeMultiSpaceMax) {\n textState.translateTextLineMatrix(advance.width, advance.height);\n textContentItem.width += advance.width - textContentItem.lastAdvanceWidth;\n textContentItem.height += advance.height - textContentItem.lastAdvanceHeight;\n diff = advance.width - textContentItem.lastAdvanceWidth - (advance.height - textContentItem.lastAdvanceHeight);\n addFakeSpaces(diff, textContentItem.str);\n break;\n }\n flushTextContentItem();\n textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n case _util.OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n case _util.OPS.beginText:\n flushTextContentItem();\n textState.textMatrix = _util.IDENTITY_MATRIX.slice();\n textState.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n break;\n case _util.OPS.showSpacedText:\n items = args[0];\n\n for (j = 0, jj = items.length; j < jj; j++) {\n if (typeof items[j] === 'string') {\n buildTextContentItem(items[j]);\n } else if ((0, _util.isNum)(items[j])) {\n ensureTextContentItem();\n advance = items[j] * textState.fontSize / 1000;\n breakTextRun = false;\n\n if (textState.font.vertical) {\n offset = advance;\n textState.translateTextMatrix(0, offset);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n if (!breakTextRun) {\n textContentItem.height += offset;\n }\n } else {\n advance = -advance;\n offset = advance * textState.textHScale;\n textState.translateTextMatrix(offset, 0);\n breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n if (!breakTextRun) {\n textContentItem.width += offset;\n }\n }\n if (breakTextRun) {\n flushTextContentItem();\n } else if (advance > 0) {\n addFakeSpaces(advance, textContentItem.str);\n }\n }\n }\n break;\n case _util.OPS.showText:\n buildTextContentItem(args[0]);\n break;\n case _util.OPS.nextLineShowText:\n flushTextContentItem();\n textState.carriageReturn();\n buildTextContentItem(args[0]);\n break;\n case _util.OPS.nextLineSetSpacingShowText:\n flushTextContentItem();\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem(args[2]);\n break;\n case _util.OPS.paintXObject:\n flushTextContentItem();\n if (!xobjs) {\n xobjs = resources.get('XObject') || _primitives.Dict.empty;\n }\n name = args[0].name;\n\n if (name in skipEmptyXObjs) {\n break;\n }\n xobj = xobjs.get(name);\n\n if (!xobj) {\n break;\n }\n if (!(0, _primitives.isStream)(xobj)) {\n throw new _util.FormatError('XObject should be a stream');\n }\n type = xobj.dict.get('Subtype');\n\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('XObject should have a Name subtype');\n }\n if (type.name !== 'Form') {\n skipEmptyXObjs[name] = true;\n break;\n }\n currentState = stateManager.state.clone();\n xObjStateManager = new StateManager(currentState);\n matrix = xobj.dict.getArray('Matrix');\n\n if ((0, _util.isArray)(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n enqueueChunk();\n var sinkWrapper = {\n enqueueInvoked: false,\n enqueue: function enqueue(chunk, size) {\n this.enqueueInvoked = true;\n sink.enqueue(chunk, size);\n },\n\n get desiredSize() {\n return sink.desiredSize;\n },\n get ready() {\n return sink.ready;\n }\n };\n next(self.getTextContent({\n stream: xobj,\n task: task,\n resources: xobj.dict.get('Resources') || resources,\n stateManager: xObjStateManager,\n normalizeWhitespace: normalizeWhitespace,\n combineTextItems: combineTextItems,\n sink: sinkWrapper,\n seenStyles: seenStyles\n }).then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n skipEmptyXObjs[name] = true;\n }\n }));\n return {\n v: void 0\n };\n case _util.OPS.setGState:\n flushTextContentItem();\n dictName = args[0];\n extGState = resources.get('ExtGState');\n\n if (!(0, _primitives.isDict)(extGState) || !(0, _primitives.isName)(dictName)) {\n break;\n }\n gState = extGState.get(dictName.name);\n\n if (!(0, _primitives.isDict)(gState)) {\n break;\n }\n gStateFont = gState.get('Font');\n\n if (gStateFont) {\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n next(handleSetFont(null, gStateFont[0]));\n return {\n v: void 0\n };\n }\n break;\n }\n }();\n\n if ((typeof _ret2 === 'undefined' ? 'undefined' : _typeof(_ret2)) === \"object\") return _ret2.v;\n if (textContent.items.length >= sink.desiredSize) {\n stop = true;\n break;\n }\n }\n if (stop) {\n next(deferred);\n return;\n }\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(function (reason) {\n if (reason instanceof _util.AbortException) {\n return;\n }\n if (_this9.options.ignoreErrors) {\n (0, _util.warn)('getTextContent - ignoring errors during task: ' + task.name);\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n throw reason;\n });\n },\n\n extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {\n var _this10 = this;\n\n var xref = this.xref;\n var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');\n var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);\n if (properties.composite) {\n var cidSystemInfo = dict.get('CIDSystemInfo');\n if ((0, _primitives.isDict)(cidSystemInfo)) {\n properties.cidSystemInfo = {\n registry: cidSystemInfo.get('Registry'),\n ordering: cidSystemInfo.get('Ordering'),\n supplement: cidSystemInfo.get('Supplement')\n };\n }\n var cidToGidMap = dict.get('CIDToGIDMap');\n if ((0, _primitives.isStream)(cidToGidMap)) {\n properties.cidToGidMap = this.readCidToGidMap(cidToGidMap);\n }\n }\n var differences = [];\n var baseEncodingName = null;\n var encoding;\n if (dict.has('Encoding')) {\n encoding = dict.get('Encoding');\n if ((0, _primitives.isDict)(encoding)) {\n baseEncodingName = encoding.get('BaseEncoding');\n baseEncodingName = (0, _primitives.isName)(baseEncodingName) ? baseEncodingName.name : null;\n if (encoding.has('Differences')) {\n var diffEncoding = encoding.get('Differences');\n var index = 0;\n for (var j = 0, jj = diffEncoding.length; j < jj; j++) {\n var data = xref.fetchIfRef(diffEncoding[j]);\n if ((0, _util.isNum)(data)) {\n index = data;\n } else if ((0, _primitives.isName)(data)) {\n differences[index++] = data.name;\n } else {\n throw new _util.FormatError('Invalid entry in \\'Differences\\' array: ' + data);\n }\n }\n }\n } else if ((0, _primitives.isName)(encoding)) {\n baseEncodingName = encoding.name;\n } else {\n throw new _util.FormatError('Encoding is not a Name nor a Dict');\n }\n if (baseEncodingName !== 'MacRomanEncoding' && baseEncodingName !== 'MacExpertEncoding' && baseEncodingName !== 'WinAnsiEncoding') {\n baseEncodingName = null;\n }\n }\n if (baseEncodingName) {\n properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName).slice();\n } else {\n var isSymbolicFont = !!(properties.flags & _fonts.FontFlags.Symbolic);\n var isNonsymbolicFont = !!(properties.flags & _fonts.FontFlags.Nonsymbolic);\n encoding = _encodings.StandardEncoding;\n if (properties.type === 'TrueType' && !isNonsymbolicFont) {\n encoding = _encodings.WinAnsiEncoding;\n }\n if (isSymbolicFont) {\n encoding = _encodings.MacRomanEncoding;\n if (!properties.file) {\n if (/Symbol/i.test(properties.name)) {\n encoding = _encodings.SymbolSetEncoding;\n } else if (/Dingbats/i.test(properties.name)) {\n encoding = _encodings.ZapfDingbatsEncoding;\n }\n }\n }\n properties.defaultEncoding = encoding;\n }\n properties.differences = differences;\n properties.baseEncodingName = baseEncodingName;\n properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n properties.dict = dict;\n return toUnicodePromise.then(function (toUnicode) {\n properties.toUnicode = toUnicode;\n return _this10.buildToUnicode(properties);\n }).then(function (toUnicode) {\n properties.toUnicode = toUnicode;\n return properties;\n });\n },\n buildToUnicode: function PartialEvaluator_buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0;\n if (properties.hasIncludedToUnicodeMap) {\n return Promise.resolve(properties.toUnicode);\n }\n var toUnicode, charcode, glyphName;\n if (!properties.composite) {\n toUnicode = [];\n var encoding = properties.defaultEncoding.slice();\n var baseEncodingName = properties.baseEncodingName;\n var differences = properties.differences;\n for (charcode in differences) {\n glyphName = differences[charcode];\n if (glyphName === '.notdef') {\n continue;\n }\n encoding[charcode] = glyphName;\n }\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n for (charcode in encoding) {\n glyphName = encoding[charcode];\n if (glyphName === '') {\n continue;\n } else if (glyphsUnicodeMap[glyphName] === undefined) {\n var code = 0;\n switch (glyphName[0]) {\n case 'G':\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substr(1), 16);\n }\n break;\n case 'g':\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substr(1), 16);\n }\n break;\n case 'C':\n case 'c':\n if (glyphName.length >= 3) {\n code = +glyphName.substr(1);\n }\n break;\n default:\n var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n code = unicode;\n }\n }\n if (code) {\n if (baseEncodingName && code === +charcode) {\n var baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n continue;\n }\n }\n toUnicode[charcode] = String.fromCharCode(code);\n }\n continue;\n }\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n }\n return Promise.resolve(new _fonts.ToUnicodeMap(toUnicode));\n }\n if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === 'Adobe' && (properties.cidSystemInfo.ordering === 'GB1' || properties.cidSystemInfo.ordering === 'CNS1' || properties.cidSystemInfo.ordering === 'Japan1' || properties.cidSystemInfo.ordering === 'Korea1'))) {\n var registry = properties.cidSystemInfo.registry;\n var ordering = properties.cidSystemInfo.ordering;\n var ucs2CMapName = _primitives.Name.get(registry + '-' + ordering + '-UCS2');\n return _cmap.CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (ucs2CMap) {\n var cMap = properties.cMap;\n toUnicode = [];\n cMap.forEach(function (charcode, cid) {\n if (cid > 0xffff) {\n throw new _util.FormatError('Max size of CID is 65,535');\n }\n var ucs2 = ucs2CMap.lookup(cid);\n if (ucs2) {\n toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1));\n }\n });\n return new _fonts.ToUnicodeMap(toUnicode);\n });\n }\n return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar));\n },\n readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {\n var cmapObj = toUnicode;\n if ((0, _primitives.isName)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xFFFF);\n }\n return new _fonts.ToUnicodeMap(cmap.getMap());\n });\n } else if ((0, _primitives.isStream)(cmapObj)) {\n return _cmap.CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cmap) {\n if (cmap instanceof _cmap.IdentityCMap) {\n return new _fonts.IdentityToUnicodeMap(0, 0xFFFF);\n }\n var map = new Array(cmap.length);\n cmap.forEach(function (charCode, token) {\n var str = [];\n for (var k = 0; k < token.length; k += 2) {\n var w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n if ((w1 & 0xF800) !== 0xD800) {\n str.push(w1);\n continue;\n }\n k += 2;\n var w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n }\n map[charCode] = String.fromCharCode.apply(String, str);\n });\n return new _fonts.ToUnicodeMap(map);\n });\n }\n return Promise.resolve(null);\n },\n readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) {\n var glyphsData = cidToGidStream.getBytes();\n var result = [];\n for (var j = 0, jj = glyphsData.length; j < jj; j++) {\n var glyphID = glyphsData[j++] << 8 | glyphsData[j];\n if (glyphID === 0) {\n continue;\n }\n var code = j >> 1;\n result[code] = glyphID;\n }\n return result;\n },\n extractWidths: function PartialEvaluator_extractWidths(dict, descriptor, properties) {\n var xref = this.xref;\n var glyphsWidths = [];\n var defaultWidth = 0;\n var glyphsVMetrics = [];\n var defaultVMetrics;\n var i, ii, j, jj, start, code, widths;\n if (properties.composite) {\n defaultWidth = dict.get('DW') || 1000;\n widths = dict.get('W');\n if (widths) {\n for (i = 0, ii = widths.length; i < ii; i++) {\n start = xref.fetchIfRef(widths[i++]);\n code = xref.fetchIfRef(widths[i]);\n if ((0, _util.isArray)(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n }\n } else {\n var width = xref.fetchIfRef(widths[++i]);\n for (j = start; j <= code; j++) {\n glyphsWidths[j] = width;\n }\n }\n }\n }\n if (properties.vertical) {\n var vmetrics = dict.getArray('DW2') || [880, -1000];\n defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n vmetrics = dict.get('W2');\n if (vmetrics) {\n for (i = 0, ii = vmetrics.length; i < ii; i++) {\n start = xref.fetchIfRef(vmetrics[i++]);\n code = xref.fetchIfRef(vmetrics[i]);\n if ((0, _util.isArray)(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])];\n }\n } else {\n var vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])];\n for (j = start; j <= code; j++) {\n glyphsVMetrics[j] = vmetric;\n }\n }\n }\n }\n }\n } else {\n var firstChar = properties.firstChar;\n widths = dict.get('Widths');\n if (widths) {\n j = firstChar;\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0;\n } else {\n var baseFontName = dict.get('BaseFont');\n if ((0, _primitives.isName)(baseFontName)) {\n var metrics = this.getBaseFontMetrics(baseFontName.name);\n glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n defaultWidth = metrics.defaultWidth;\n }\n }\n }\n var isMonospace = true;\n var firstWidth = defaultWidth;\n for (var glyph in glyphsWidths) {\n var glyphWidth = glyphsWidths[glyph];\n if (!glyphWidth) {\n continue;\n }\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n if (isMonospace) {\n properties.flags |= _fonts.FontFlags.FixedPitch;\n }\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n },\n isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) {\n var fontNameWoStyle = baseFontName.split('-')[0];\n return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n },\n getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) {\n var defaultWidth = 0;\n var widths = [];\n var monospace = false;\n var stdFontMap = (0, _standard_fonts.getStdFontMap)();\n var lookupName = stdFontMap[name] || name;\n var Metrics = (0, _metrics.getMetrics)();\n if (!(lookupName in Metrics)) {\n if (this.isSerifFont(name)) {\n lookupName = 'Times-Roman';\n } else {\n lookupName = 'Helvetica';\n }\n }\n var glyphWidths = Metrics[lookupName];\n if ((0, _util.isNum)(glyphWidths)) {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths();\n }\n return {\n defaultWidth: defaultWidth,\n monospace: monospace,\n widths: widths\n };\n },\n buildCharCodeToWidth: function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName, properties) {\n var widths = Object.create(null);\n var differences = properties.differences;\n var encoding = properties.defaultEncoding;\n for (var charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n return widths;\n },\n preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict) {\n var baseDict = dict;\n var type = dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('invalid font Subtype');\n }\n var composite = false;\n var uint8array;\n if (type.name === 'Type0') {\n var df = dict.get('DescendantFonts');\n if (!df) {\n throw new _util.FormatError('Descendant fonts are not specified');\n }\n dict = (0, _util.isArray)(df) ? this.xref.fetchIfRef(df[0]) : df;\n type = dict.get('Subtype');\n if (!(0, _primitives.isName)(type)) {\n throw new _util.FormatError('invalid font Subtype');\n }\n composite = true;\n }\n var descriptor = dict.get('FontDescriptor');\n if (descriptor) {\n var hash = new _murmurhash.MurmurHash3_64();\n var encoding = baseDict.getRaw('Encoding');\n if ((0, _primitives.isName)(encoding)) {\n hash.update(encoding.name);\n } else if ((0, _primitives.isRef)(encoding)) {\n hash.update(encoding.toString());\n } else if ((0, _primitives.isDict)(encoding)) {\n var keys = encoding.getKeys();\n for (var i = 0, ii = keys.length; i < ii; i++) {\n var entry = encoding.getRaw(keys[i]);\n if ((0, _primitives.isName)(entry)) {\n hash.update(entry.name);\n } else if ((0, _primitives.isRef)(entry)) {\n hash.update(entry.toString());\n } else if ((0, _util.isArray)(entry)) {\n var diffLength = entry.length,\n diffBuf = new Array(diffLength);\n for (var j = 0; j < diffLength; j++) {\n var diffEntry = entry[j];\n if ((0, _primitives.isName)(diffEntry)) {\n diffBuf[j] = diffEntry.name;\n } else if ((0, _util.isNum)(diffEntry) || (0, _primitives.isRef)(diffEntry)) {\n diffBuf[j] = diffEntry.toString();\n }\n }\n hash.update(diffBuf.join());\n }\n }\n }\n var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');\n if ((0, _primitives.isStream)(toUnicode)) {\n var stream = toUnicode.str || toUnicode;\n uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start);\n hash.update(uint8array);\n } else if ((0, _primitives.isName)(toUnicode)) {\n hash.update(toUnicode.name);\n }\n var widths = dict.get('Widths') || baseDict.get('Widths');\n if (widths) {\n uint8array = new Uint8Array(new Uint32Array(widths).buffer);\n hash.update(uint8array);\n }\n }\n return {\n descriptor: descriptor,\n dict: dict,\n baseDict: baseDict,\n composite: composite,\n type: type.name,\n hash: hash ? hash.hexdigest() : ''\n };\n },\n translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {\n var _this11 = this;\n\n var baseDict = preEvaluatedFont.baseDict;\n var dict = preEvaluatedFont.dict;\n var composite = preEvaluatedFont.composite;\n var descriptor = preEvaluatedFont.descriptor;\n var type = preEvaluatedFont.type;\n var maxCharIndex = composite ? 0xFFFF : 0xFF;\n var properties;\n if (!descriptor) {\n if (type === 'Type3') {\n descriptor = new _primitives.Dict(null);\n descriptor.set('FontName', _primitives.Name.get(type));\n descriptor.set('FontBBox', dict.getArray('FontBBox'));\n } else {\n var baseFontName = dict.get('BaseFont');\n if (!(0, _primitives.isName)(baseFontName)) {\n throw new _util.FormatError('Base font is not specified');\n }\n baseFontName = baseFontName.name.replace(/[,_]/g, '-');\n var metrics = this.getBaseFontMetrics(baseFontName);\n var fontNameWoStyle = baseFontName.split('-')[0];\n var flags = (this.isSerifFont(fontNameWoStyle) ? _fonts.FontFlags.Serif : 0) | (metrics.monospace ? _fonts.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts.FontFlags.Symbolic : _fonts.FontFlags.Nonsymbolic);\n properties = {\n type: type,\n name: baseFontName,\n widths: metrics.widths,\n defaultWidth: metrics.defaultWidth,\n flags: flags,\n firstChar: 0,\n lastChar: maxCharIndex\n };\n return this.extractDataStructures(dict, dict, properties).then(function (properties) {\n properties.widths = _this11.buildCharCodeToWidth(metrics.widths, properties);\n return new _fonts.Font(baseFontName, null, properties);\n });\n }\n }\n var firstChar = dict.get('FirstChar') || 0;\n var lastChar = dict.get('LastChar') || maxCharIndex;\n var fontName = descriptor.get('FontName');\n var baseFont = dict.get('BaseFont');\n if ((0, _util.isString)(fontName)) {\n fontName = _primitives.Name.get(fontName);\n }\n if ((0, _util.isString)(baseFont)) {\n baseFont = _primitives.Name.get(baseFont);\n }\n if (type !== 'Type3') {\n var fontNameStr = fontName && fontName.name;\n var baseFontStr = baseFont && baseFont.name;\n if (fontNameStr !== baseFontStr) {\n (0, _util.info)('The FontDescriptor\\'s FontName is \"' + fontNameStr + '\" but should be the same as the Font\\'s BaseFont \"' + baseFontStr + '\"');\n if (fontNameStr && baseFontStr && baseFontStr.indexOf(fontNameStr) === 0) {\n fontName = baseFont;\n }\n }\n }\n fontName = fontName || baseFont;\n if (!(0, _primitives.isName)(fontName)) {\n throw new _util.FormatError('invalid font name');\n }\n var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3');\n if (fontFile) {\n if (fontFile.dict) {\n var subtype = fontFile.dict.get('Subtype');\n if (subtype) {\n subtype = subtype.name;\n }\n var length1 = fontFile.dict.get('Length1');\n var length2 = fontFile.dict.get('Length2');\n var length3 = fontFile.dict.get('Length3');\n }\n }\n properties = {\n type: type,\n name: fontName.name,\n subtype: subtype,\n file: fontFile,\n length1: length1,\n length2: length2,\n length3: length3,\n loadedName: baseDict.loadedName,\n composite: composite,\n wideChars: composite,\n fixedPitch: false,\n fontMatrix: dict.getArray('FontMatrix') || _util.FONT_IDENTITY_MATRIX,\n firstChar: firstChar || 0,\n lastChar: lastChar || maxCharIndex,\n bbox: descriptor.getArray('FontBBox'),\n ascent: descriptor.get('Ascent'),\n descent: descriptor.get('Descent'),\n xHeight: descriptor.get('XHeight'),\n capHeight: descriptor.get('CapHeight'),\n flags: descriptor.get('Flags'),\n italicAngle: descriptor.get('ItalicAngle'),\n isType3Font: false\n };\n var cMapPromise;\n if (composite) {\n var cidEncoding = baseDict.get('Encoding');\n if ((0, _primitives.isName)(cidEncoding)) {\n properties.cidEncoding = cidEncoding.name;\n }\n cMapPromise = _cmap.CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this.fetchBuiltInCMap,\n useCMap: null\n }).then(function (cMap) {\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n });\n } else {\n cMapPromise = Promise.resolve(undefined);\n }\n return cMapPromise.then(function () {\n return _this11.extractDataStructures(dict, baseDict, properties);\n }).then(function (properties) {\n _this11.extractWidths(dict, descriptor, properties);\n if (type === 'Type3') {\n properties.isType3Font = true;\n }\n return new _fonts.Font(fontName.name, fontFile, properties);\n });\n }\n };\n return PartialEvaluator;\n}();\nvar TranslatedFont = function TranslatedFontClosure() {\n function TranslatedFont(loadedName, font, dict) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this.type3Loaded = null;\n this.sent = false;\n }\n TranslatedFont.prototype = {\n send: function send(handler) {\n if (this.sent) {\n return;\n }\n var fontData = this.font.exportData();\n handler.send('commonobj', [this.loadedName, 'Font', fontData]);\n this.sent = true;\n },\n loadType3Data: function loadType3Data(evaluator, resources, parentOperatorList, task) {\n if (!this.font.isType3Font) {\n throw new Error('Must be a Type3 font.');\n }\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n var type3Options = Object.create(evaluator.options);\n type3Options.ignoreErrors = false;\n var type3Evaluator = evaluator.clone(type3Options);\n var translatedFont = this.font;\n var loadCharProcsPromise = Promise.resolve();\n var charProcs = this.dict.get('CharProcs');\n var fontResources = this.dict.get('Resources') || resources;\n var charProcKeys = charProcs.getKeys();\n var charProcOperatorList = Object.create(null);\n\n var _loop2 = function _loop2() {\n var key = charProcKeys[i];\n loadCharProcsPromise = loadCharProcsPromise.then(function () {\n var glyphStream = charProcs.get(key);\n var operatorList = new OperatorList();\n return type3Evaluator.getOperatorList({\n stream: glyphStream,\n task: task,\n resources: fontResources,\n operatorList: operatorList\n }).then(function () {\n charProcOperatorList[key] = operatorList.getIR();\n parentOperatorList.addDependencies(operatorList.dependencies);\n }).catch(function (reason) {\n (0, _util.warn)('Type3 font resource \"' + key + '\" is not available.');\n var operatorList = new OperatorList();\n charProcOperatorList[key] = operatorList.getIR();\n });\n });\n };\n\n for (var i = 0, n = charProcKeys.length; i < n; ++i) {\n _loop2();\n }\n this.type3Loaded = loadCharProcsPromise.then(function () {\n translatedFont.charProcOperatorList = charProcOperatorList;\n });\n return this.type3Loaded;\n }\n };\n return TranslatedFont;\n}();\nvar OperatorList = function OperatorListClosure() {\n var CHUNK_SIZE = 1000;\n var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;\n function getTransfers(queue) {\n var transfers = [];\n var fnArray = queue.fnArray,\n argsArray = queue.argsArray;\n for (var i = 0, ii = queue.length; i < ii; i++) {\n switch (fnArray[i]) {\n case _util.OPS.paintInlineImageXObject:\n case _util.OPS.paintInlineImageXObjectGroup:\n case _util.OPS.paintImageMaskXObject:\n var arg = argsArray[i][0];\n if (!arg.cached) {\n transfers.push(arg.data.buffer);\n }\n break;\n }\n }\n return transfers;\n }\n function OperatorList(intent, messageHandler, pageIndex) {\n this.messageHandler = messageHandler;\n this.fnArray = [];\n this.argsArray = [];\n this.dependencies = Object.create(null);\n this._totalLength = 0;\n this.pageIndex = pageIndex;\n this.intent = intent;\n }\n OperatorList.prototype = {\n get length() {\n return this.argsArray.length;\n },\n get totalLength() {\n return this._totalLength + this.length;\n },\n addOp: function addOp(fn, args) {\n this.fnArray.push(fn);\n this.argsArray.push(args);\n if (this.messageHandler) {\n if (this.fnArray.length >= CHUNK_SIZE) {\n this.flush();\n } else if (this.fnArray.length >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {\n this.flush();\n }\n }\n },\n addDependency: function addDependency(dependency) {\n if (dependency in this.dependencies) {\n return;\n }\n this.dependencies[dependency] = true;\n this.addOp(_util.OPS.dependency, [dependency]);\n },\n addDependencies: function addDependencies(dependencies) {\n for (var key in dependencies) {\n this.addDependency(key);\n }\n },\n addOpList: function addOpList(opList) {\n _util.Util.extendObj(this.dependencies, opList.dependencies);\n for (var i = 0, ii = opList.length; i < ii; i++) {\n this.addOp(opList.fnArray[i], opList.argsArray[i]);\n }\n },\n getIR: function getIR() {\n return {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n length: this.length\n };\n },\n flush: function flush(lastChunk) {\n if (this.intent !== 'oplist') {\n new QueueOptimizer().optimize(this);\n }\n var transfers = getTransfers(this);\n var length = this.length;\n this._totalLength += length;\n this.messageHandler.send('RenderPageChunk', {\n operatorList: {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk: lastChunk,\n length: length\n },\n pageIndex: this.pageIndex,\n intent: this.intent\n }, transfers);\n this.dependencies = Object.create(null);\n this.fnArray.length = 0;\n this.argsArray.length = 0;\n }\n };\n return OperatorList;\n}();\nvar StateManager = function StateManagerClosure() {\n function StateManager(initialState) {\n this.state = initialState;\n this.stateStack = [];\n }\n StateManager.prototype = {\n save: function save() {\n var old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n },\n restore: function restore() {\n var prev = this.stateStack.pop();\n if (prev) {\n this.state = prev;\n }\n },\n transform: function transform(args) {\n this.state.ctm = _util.Util.transform(this.state.ctm, args);\n }\n };\n return StateManager;\n}();\nvar TextState = function TextStateClosure() {\n function TextState() {\n this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n this.fontName = null;\n this.fontSize = 0;\n this.font = null;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.textMatrix = _util.IDENTITY_MATRIX.slice();\n this.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.leading = 0;\n this.textHScale = 1;\n this.textRise = 0;\n }\n TextState.prototype = {\n setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n var m = this.textMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n },\n setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n var m = this.textLineMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n },\n translateTextMatrix: function TextState_translateTextMatrix(x, y) {\n var m = this.textMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n },\n translateTextLineMatrix: function TextState_translateTextMatrix(x, y) {\n var m = this.textLineMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n },\n calcTextLineMatrixAdvance: function TextState_calcTextLineMatrixAdvance(a, b, c, d, e, f) {\n var font = this.font;\n if (!font) {\n return null;\n }\n var m = this.textLineMatrix;\n if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) {\n return null;\n }\n var txDiff = e - m[4],\n tyDiff = f - m[5];\n if (font.vertical && txDiff !== 0 || !font.vertical && tyDiff !== 0) {\n return null;\n }\n var tx,\n ty,\n denominator = a * d - b * c;\n if (font.vertical) {\n tx = -tyDiff * c / denominator;\n ty = tyDiff * a / denominator;\n } else {\n tx = txDiff * d / denominator;\n ty = -txDiff * b / denominator;\n }\n return {\n width: tx,\n height: ty,\n value: font.vertical ? ty : tx\n };\n },\n calcRenderMatrix: function TextState_calcRendeMatrix(ctm) {\n var tsm = [this.fontSize * this.textHScale, 0, 0, this.fontSize, 0, this.textRise];\n return _util.Util.transform(ctm, _util.Util.transform(this.textMatrix, tsm));\n },\n carriageReturn: function TextState_carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n },\n clone: function TextState_clone() {\n var clone = Object.create(this);\n clone.textMatrix = this.textMatrix.slice();\n clone.textLineMatrix = this.textLineMatrix.slice();\n clone.fontMatrix = this.fontMatrix.slice();\n return clone;\n }\n };\n return TextState;\n}();\nvar EvalState = function EvalStateClosure() {\n function EvalState() {\n this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n this.font = null;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n }\n EvalState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n }\n };\n return EvalState;\n}();\nvar EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {\n var getOPMap = (0, _util.getLookupTableFactory)(function (t) {\n t['w'] = {\n id: _util.OPS.setLineWidth,\n numArgs: 1,\n variableArgs: false\n };\n t['J'] = {\n id: _util.OPS.setLineCap,\n numArgs: 1,\n variableArgs: false\n };\n t['j'] = {\n id: _util.OPS.setLineJoin,\n numArgs: 1,\n variableArgs: false\n };\n t['M'] = {\n id: _util.OPS.setMiterLimit,\n numArgs: 1,\n variableArgs: false\n };\n t['d'] = {\n id: _util.OPS.setDash,\n numArgs: 2,\n variableArgs: false\n };\n t['ri'] = {\n id: _util.OPS.setRenderingIntent,\n numArgs: 1,\n variableArgs: false\n };\n t['i'] = {\n id: _util.OPS.setFlatness,\n numArgs: 1,\n variableArgs: false\n };\n t['gs'] = {\n id: _util.OPS.setGState,\n numArgs: 1,\n variableArgs: false\n };\n t['q'] = {\n id: _util.OPS.save,\n numArgs: 0,\n variableArgs: false\n };\n t['Q'] = {\n id: _util.OPS.restore,\n numArgs: 0,\n variableArgs: false\n };\n t['cm'] = {\n id: _util.OPS.transform,\n numArgs: 6,\n variableArgs: false\n };\n t['m'] = {\n id: _util.OPS.moveTo,\n numArgs: 2,\n variableArgs: false\n };\n t['l'] = {\n id: _util.OPS.lineTo,\n numArgs: 2,\n variableArgs: false\n };\n t['c'] = {\n id: _util.OPS.curveTo,\n numArgs: 6,\n variableArgs: false\n };\n t['v'] = {\n id: _util.OPS.curveTo2,\n numArgs: 4,\n variableArgs: false\n };\n t['y'] = {\n id: _util.OPS.curveTo3,\n numArgs: 4,\n variableArgs: false\n };\n t['h'] = {\n id: _util.OPS.closePath,\n numArgs: 0,\n variableArgs: false\n };\n t['re'] = {\n id: _util.OPS.rectangle,\n numArgs: 4,\n variableArgs: false\n };\n t['S'] = {\n id: _util.OPS.stroke,\n numArgs: 0,\n variableArgs: false\n };\n t['s'] = {\n id: _util.OPS.closeStroke,\n numArgs: 0,\n variableArgs: false\n };\n t['f'] = {\n id: _util.OPS.fill,\n numArgs: 0,\n variableArgs: false\n };\n t['F'] = {\n id: _util.OPS.fill,\n numArgs: 0,\n variableArgs: false\n };\n t['f*'] = {\n id: _util.OPS.eoFill,\n numArgs: 0,\n variableArgs: false\n };\n t['B'] = {\n id: _util.OPS.fillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t['B*'] = {\n id: _util.OPS.eoFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t['b'] = {\n id: _util.OPS.closeFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t['b*'] = {\n id: _util.OPS.closeEOFillStroke,\n numArgs: 0,\n variableArgs: false\n };\n t['n'] = {\n id: _util.OPS.endPath,\n numArgs: 0,\n variableArgs: false\n };\n t['W'] = {\n id: _util.OPS.clip,\n numArgs: 0,\n variableArgs: false\n };\n t['W*'] = {\n id: _util.OPS.eoClip,\n numArgs: 0,\n variableArgs: false\n };\n t['BT'] = {\n id: _util.OPS.beginText,\n numArgs: 0,\n variableArgs: false\n };\n t['ET'] = {\n id: _util.OPS.endText,\n numArgs: 0,\n variableArgs: false\n };\n t['Tc'] = {\n id: _util.OPS.setCharSpacing,\n numArgs: 1,\n variableArgs: false\n };\n t['Tw'] = {\n id: _util.OPS.setWordSpacing,\n numArgs: 1,\n variableArgs: false\n };\n t['Tz'] = {\n id: _util.OPS.setHScale,\n numArgs: 1,\n variableArgs: false\n };\n t['TL'] = {\n id: _util.OPS.setLeading,\n numArgs: 1,\n variableArgs: false\n };\n t['Tf'] = {\n id: _util.OPS.setFont,\n numArgs: 2,\n variableArgs: false\n };\n t['Tr'] = {\n id: _util.OPS.setTextRenderingMode,\n numArgs: 1,\n variableArgs: false\n };\n t['Ts'] = {\n id: _util.OPS.setTextRise,\n numArgs: 1,\n variableArgs: false\n };\n t['Td'] = {\n id: _util.OPS.moveText,\n numArgs: 2,\n variableArgs: false\n };\n t['TD'] = {\n id: _util.OPS.setLeadingMoveText,\n numArgs: 2,\n variableArgs: false\n };\n t['Tm'] = {\n id: _util.OPS.setTextMatrix,\n numArgs: 6,\n variableArgs: false\n };\n t['T*'] = {\n id: _util.OPS.nextLine,\n numArgs: 0,\n variableArgs: false\n };\n t['Tj'] = {\n id: _util.OPS.showText,\n numArgs: 1,\n variableArgs: false\n };\n t['TJ'] = {\n id: _util.OPS.showSpacedText,\n numArgs: 1,\n variableArgs: false\n };\n t['\\''] = {\n id: _util.OPS.nextLineShowText,\n numArgs: 1,\n variableArgs: false\n };\n t['\"'] = {\n id: _util.OPS.nextLineSetSpacingShowText,\n numArgs: 3,\n variableArgs: false\n };\n t['d0'] = {\n id: _util.OPS.setCharWidth,\n numArgs: 2,\n variableArgs: false\n };\n t['d1'] = {\n id: _util.OPS.setCharWidthAndBounds,\n numArgs: 6,\n variableArgs: false\n };\n t['CS'] = {\n id: _util.OPS.setStrokeColorSpace,\n numArgs: 1,\n variableArgs: false\n };\n t['cs'] = {\n id: _util.OPS.setFillColorSpace,\n numArgs: 1,\n variableArgs: false\n };\n t['SC'] = {\n id: _util.OPS.setStrokeColor,\n numArgs: 4,\n variableArgs: true\n };\n t['SCN'] = {\n id: _util.OPS.setStrokeColorN,\n numArgs: 33,\n variableArgs: true\n };\n t['sc'] = {\n id: _util.OPS.setFillColor,\n numArgs: 4,\n variableArgs: true\n };\n t['scn'] = {\n id: _util.OPS.setFillColorN,\n numArgs: 33,\n variableArgs: true\n };\n t['G'] = {\n id: _util.OPS.setStrokeGray,\n numArgs: 1,\n variableArgs: false\n };\n t['g'] = {\n id: _util.OPS.setFillGray,\n numArgs: 1,\n variableArgs: false\n };\n t['RG'] = {\n id: _util.OPS.setStrokeRGBColor,\n numArgs: 3,\n variableArgs: false\n };\n t['rg'] = {\n id: _util.OPS.setFillRGBColor,\n numArgs: 3,\n variableArgs: false\n };\n t['K'] = {\n id: _util.OPS.setStrokeCMYKColor,\n numArgs: 4,\n variableArgs: false\n };\n t['k'] = {\n id: _util.OPS.setFillCMYKColor,\n numArgs: 4,\n variableArgs: false\n };\n t['sh'] = {\n id: _util.OPS.shadingFill,\n numArgs: 1,\n variableArgs: false\n };\n t['BI'] = {\n id: _util.OPS.beginInlineImage,\n numArgs: 0,\n variableArgs: false\n };\n t['ID'] = {\n id: _util.OPS.beginImageData,\n numArgs: 0,\n variableArgs: false\n };\n t['EI'] = {\n id: _util.OPS.endInlineImage,\n numArgs: 1,\n variableArgs: false\n };\n t['Do'] = {\n id: _util.OPS.paintXObject,\n numArgs: 1,\n variableArgs: false\n };\n t['MP'] = {\n id: _util.OPS.markPoint,\n numArgs: 1,\n variableArgs: false\n };\n t['DP'] = {\n id: _util.OPS.markPointProps,\n numArgs: 2,\n variableArgs: false\n };\n t['BMC'] = {\n id: _util.OPS.beginMarkedContent,\n numArgs: 1,\n variableArgs: false\n };\n t['BDC'] = {\n id: _util.OPS.beginMarkedContentProps,\n numArgs: 2,\n variableArgs: false\n };\n t['EMC'] = {\n id: _util.OPS.endMarkedContent,\n numArgs: 0,\n variableArgs: false\n };\n t['BX'] = {\n id: _util.OPS.beginCompat,\n numArgs: 0,\n variableArgs: false\n };\n t['EX'] = {\n id: _util.OPS.endCompat,\n numArgs: 0,\n variableArgs: false\n };\n t['BM'] = null;\n t['BD'] = null;\n t['true'] = null;\n t['fa'] = null;\n t['fal'] = null;\n t['fals'] = null;\n t['false'] = null;\n t['nu'] = null;\n t['nul'] = null;\n t['null'] = null;\n });\n function EvaluatorPreprocessor(stream, xref, stateManager) {\n this.opMap = getOPMap();\n this.parser = new _parser.Parser(new _parser.Lexer(stream, this.opMap), false, xref);\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n }\n EvaluatorPreprocessor.prototype = {\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n },\n read: function EvaluatorPreprocessor_read(operation) {\n var args = operation.args;\n while (true) {\n var obj = this.parser.getObj();\n if ((0, _primitives.isCmd)(obj)) {\n var cmd = obj.cmd;\n var opSpec = this.opMap[cmd];\n if (!opSpec) {\n (0, _util.warn)('Unknown command \"' + cmd + '\"');\n continue;\n }\n var fn = opSpec.id;\n var numArgs = opSpec.numArgs;\n var argsLength = args !== null ? args.length : 0;\n if (!opSpec.variableArgs) {\n if (argsLength !== numArgs) {\n var nonProcessedArgs = this.nonProcessedArgs;\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n if (argsLength < numArgs) {\n (0, _util.warn)('Skipping command ' + fn + ': expected ' + numArgs + ' args, but received ' + argsLength + ' args.');\n if (args !== null) {\n args.length = 0;\n }\n continue;\n }\n } else if (argsLength > numArgs) {\n (0, _util.info)('Command ' + fn + ': expected [0,' + numArgs + '] args, but received ' + argsLength + ' args.');\n }\n this.preprocessCommand(fn, args);\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n if ((0, _primitives.isEOF)(obj)) {\n return false;\n }\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n args.push(obj);\n if (args.length > 33) {\n throw new _util.FormatError('Too many arguments');\n }\n }\n }\n },\n preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(fn, args) {\n switch (fn | 0) {\n case _util.OPS.save:\n this.stateManager.save();\n break;\n case _util.OPS.restore:\n this.stateManager.restore();\n break;\n case _util.OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n };\n return EvaluatorPreprocessor;\n}();\nvar QueueOptimizer = function QueueOptimizerClosure() {\n function addState(parentState, pattern, fn) {\n var state = parentState;\n for (var i = 0, ii = pattern.length - 1; i < ii; i++) {\n var item = pattern[i];\n state = state[item] || (state[item] = []);\n }\n state[pattern[pattern.length - 1]] = fn;\n }\n function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {\n var iFirstPIMXO = iFirstSave + 2;\n for (var i = 0; i < count; i++) {\n var arg = argsArray[iFirstPIMXO + 4 * i];\n var imageMask = arg.length === 1 && arg[0];\n if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) {\n fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask;\n continue;\n }\n break;\n }\n return count - i;\n }\n var InitialState = [];\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], function foundInlineImageGroup(context) {\n var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n var MAX_WIDTH = 1000;\n var IMAGE_PADDING = 1;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIIXO = curr - 1;\n var i = iFirstSave + 4;\n var ii = fnArray.length;\n while (i + 3 < ii) {\n if (fnArray[i] !== _util.OPS.save || fnArray[i + 1] !== _util.OPS.transform || fnArray[i + 2] !== _util.OPS.paintInlineImageXObject || fnArray[i + 3] !== _util.OPS.restore) {\n break;\n }\n i += 4;\n }\n var count = Math.min((i - iFirstSave) / 4, MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n return i;\n }\n var maxX = 0;\n var map = [],\n maxLineHeight = 0;\n var currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n var q;\n for (q = 0; q < count; q++) {\n var transform = argsArray[iFirstTransform + (q << 2)];\n var img = argsArray[iFirstPIIXO + (q << 2)][0];\n if (currentX + img.width > MAX_WIDTH) {\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\n map.push({\n transform: transform,\n x: currentX,\n y: currentY,\n w: img.width,\n h: img.height\n });\n currentX += img.width + 2 * IMAGE_PADDING;\n maxLineHeight = Math.max(maxLineHeight, img.height);\n }\n var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n var imgData = new Uint8Array(imgWidth * imgHeight * 4);\n var imgRowSize = imgWidth << 2;\n for (q = 0; q < count; q++) {\n var data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n var rowSize = map[q].w << 2;\n var dataOffset = 0;\n var offset = map[q].x + map[q].y * imgWidth << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n for (var k = 0, kk = map[q].h; k < kk; k++) {\n imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n dataOffset += rowSize;\n offset += imgRowSize;\n }\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n while (offset >= 0) {\n data[offset - 4] = data[offset];\n data[offset - 3] = data[offset + 1];\n data[offset - 2] = data[offset + 2];\n data[offset - 1] = data[offset + 3];\n data[offset + rowSize] = data[offset + rowSize - 4];\n data[offset + rowSize + 1] = data[offset + rowSize - 3];\n data[offset + rowSize + 2] = data[offset + rowSize - 2];\n data[offset + rowSize + 3] = data[offset + rowSize - 1];\n offset -= imgRowSize;\n }\n }\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [{\n width: imgWidth,\n height: imgHeight,\n kind: _util.ImageKind.RGBA_32BPP,\n data: imgData\n }, map]);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], function foundImageMaskGroup(context) {\n var MIN_IMAGES_IN_MASKS_BLOCK = 10;\n var MAX_IMAGES_IN_MASKS_BLOCK = 100;\n var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIMXO = curr - 1;\n var i = iFirstSave + 4;\n var ii = fnArray.length;\n while (i + 3 < ii) {\n if (fnArray[i] !== _util.OPS.save || fnArray[i + 1] !== _util.OPS.transform || fnArray[i + 2] !== _util.OPS.paintImageMaskXObject || fnArray[i + 3] !== _util.OPS.restore) {\n break;\n }\n i += 4;\n }\n var count = (i - iFirstSave) / 4;\n count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray);\n if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n return i;\n }\n var q;\n var isSameImage = false;\n var iTransform, transformArgs;\n var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {\n isSameImage = true;\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n iTransform = iFirstTransform + 4;\n var iPIMXO = iFirstPIMXO + 4;\n for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n break;\n }\n }\n }\n if (isSameImage) {\n count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n var positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n for (q = 0; q < count; q++, iTransform += 4) {\n transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n var images = [];\n for (q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n images.push({\n data: maskParams.data,\n width: maskParams.width,\n height: maskParams.height,\n transform: transformArgs\n });\n }\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {\n var MIN_IMAGES_IN_BLOCK = 3;\n var MAX_IMAGES_IN_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstSave = curr - 3;\n var iFirstTransform = curr - 2;\n var iFirstPIXO = curr - 1;\n var iFirstRestore = curr;\n if (argsArray[iFirstTransform][1] !== 0 || argsArray[iFirstTransform][2] !== 0) {\n return iFirstRestore + 1;\n }\n var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n var firstTransformArg0 = argsArray[iFirstTransform][0];\n var firstTransformArg3 = argsArray[iFirstTransform][3];\n var i = iFirstSave + 4;\n var ii = fnArray.length;\n while (i + 3 < ii) {\n if (fnArray[i] !== _util.OPS.save || fnArray[i + 1] !== _util.OPS.transform || fnArray[i + 2] !== _util.OPS.paintImageXObject || fnArray[i + 3] !== _util.OPS.restore) {\n break;\n }\n if (argsArray[i + 1][0] !== firstTransformArg0 || argsArray[i + 1][1] !== 0 || argsArray[i + 1][2] !== 0 || argsArray[i + 1][3] !== firstTransformArg3) {\n break;\n }\n if (argsArray[i + 2][0] !== firstPIXOArg0) {\n break;\n }\n i += 4;\n }\n var count = Math.min((i - iFirstSave) / 4, MAX_IMAGES_IN_BLOCK);\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i;\n }\n var positions = new Float32Array(count * 2);\n var iTransform = iFirstTransform;\n for (var q = 0; q < count; q++, iTransform += 4) {\n var transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n return iFirstSave + 1;\n });\n addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], function (context) {\n var MIN_CHARS_IN_BLOCK = 3;\n var MAX_CHARS_IN_BLOCK = 1000;\n var fnArray = context.fnArray,\n argsArray = context.argsArray;\n var curr = context.iCurr;\n var iFirstBeginText = curr - 4;\n var iFirstSetFont = curr - 3;\n var iFirstSetTextMatrix = curr - 2;\n var iFirstShowText = curr - 1;\n var iFirstEndText = curr;\n var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n var i = iFirstBeginText + 5;\n var ii = fnArray.length;\n while (i + 4 < ii) {\n if (fnArray[i] !== _util.OPS.beginText || fnArray[i + 1] !== _util.OPS.setFont || fnArray[i + 2] !== _util.OPS.setTextMatrix || fnArray[i + 3] !== _util.OPS.showText || fnArray[i + 4] !== _util.OPS.endText) {\n break;\n }\n if (argsArray[i + 1][0] !== firstSetFontArg0 || argsArray[i + 1][1] !== firstSetFontArg1) {\n break;\n }\n i += 5;\n }\n var count = Math.min((i - iFirstBeginText) / 5, MAX_CHARS_IN_BLOCK);\n if (count < MIN_CHARS_IN_BLOCK) {\n return i;\n }\n var iFirst = iFirstBeginText;\n if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {\n count++;\n iFirst -= 5;\n }\n var iEndText = iFirst + 4;\n for (var q = 1; q < count; q++) {\n fnArray.splice(iEndText, 3);\n argsArray.splice(iEndText, 3);\n iEndText += 2;\n }\n return iEndText + 1;\n });\n function QueueOptimizer() {}\n QueueOptimizer.prototype = {\n optimize: function QueueOptimizer_optimize(queue) {\n var fnArray = queue.fnArray,\n argsArray = queue.argsArray;\n var context = {\n iCurr: 0,\n fnArray: fnArray,\n argsArray: argsArray\n };\n var state;\n var i = 0,\n ii = fnArray.length;\n while (i < ii) {\n state = (state || InitialState)[fnArray[i]];\n if (typeof state === 'function') {\n context.iCurr = i;\n i = state(context);\n state = undefined;\n ii = context.fnArray.length;\n } else {\n i++;\n }\n }\n }\n };\n return QueueOptimizer;\n}();\nexports.OperatorList = OperatorList;\nexports.PartialEvaluator = PartialEvaluator;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpxImage = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(52);\n\nvar JpxError = function JpxErrorClosure() {\n function JpxError(msg) {\n this.message = 'JPX error: ' + msg;\n }\n JpxError.prototype = new Error();\n JpxError.prototype.name = 'JpxError';\n JpxError.constructor = JpxError;\n return JpxError;\n}();\nvar JpxImage = function JpxImageClosure() {\n var SubbandsGainLog2 = {\n 'LL': 0,\n 'LH': 1,\n 'HL': 1,\n 'HH': 2\n };\n function JpxImage() {\n this.failOnCorruptedImage = false;\n }\n JpxImage.prototype = {\n parse: function JpxImage_parse(data) {\n var head = (0, _util.readUint16)(data, 0);\n if (head === 0xFF4F) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n var position = 0,\n length = data.length;\n while (position < length) {\n var headerSize = 8;\n var lbox = (0, _util.readUint32)(data, position);\n var tbox = (0, _util.readUint32)(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n lbox = (0, _util.readUint32)(data, position) * 4294967296 + (0, _util.readUint32)(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError('Invalid box field size');\n }\n var dataLength = lbox - headerSize;\n var jumpDataLength = true;\n switch (tbox) {\n case 0x6A703268:\n jumpDataLength = false;\n break;\n case 0x636F6C72:\n var method = data[position];\n if (method === 1) {\n var colorspace = (0, _util.readUint32)(data, position + 3);\n switch (colorspace) {\n case 16:\n case 17:\n case 18:\n break;\n default:\n (0, _util.warn)('Unknown colorspace ' + colorspace);\n break;\n }\n } else if (method === 2) {\n (0, _util.info)('ICC profile not supported');\n }\n break;\n case 0x6A703263:\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6A502020:\n if ((0, _util.readUint32)(data, position) !== 0x0d0a870a) {\n (0, _util.warn)('Invalid JP2 signature');\n }\n break;\n case 0x6A501A1A:\n case 0x66747970:\n case 0x72726571:\n case 0x72657320:\n case 0x69686472:\n break;\n default:\n var headerType = String.fromCharCode(tbox >> 24 & 0xFF, tbox >> 16 & 0xFF, tbox >> 8 & 0xFF, tbox & 0xFF);\n (0, _util.warn)('Unsupported header type ' + tbox + ' (' + headerType + ')');\n break;\n }\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n },\n parseImageProperties: function JpxImage_parseImageProperties(stream) {\n var newByte = stream.getByte();\n while (newByte >= 0) {\n var oldByte = newByte;\n newByte = stream.getByte();\n var code = oldByte << 8 | newByte;\n if (code === 0xFF51) {\n stream.skip(4);\n var Xsiz = stream.getInt32() >>> 0;\n var Ysiz = stream.getInt32() >>> 0;\n var XOsiz = stream.getInt32() >>> 0;\n var YOsiz = stream.getInt32() >>> 0;\n stream.skip(16);\n var Csiz = stream.getUint16();\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n this.bitsPerComponent = 8;\n return;\n }\n }\n throw new JpxError('No size marker found in JPX stream');\n },\n parseCodestream: function JpxImage_parseCodestream(data, start, end) {\n var context = {};\n var doNotRecover = false;\n try {\n var position = start;\n while (position + 1 < end) {\n var code = (0, _util.readUint16)(data, position);\n position += 2;\n var length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n switch (code) {\n case 0xFF4F:\n context.mainHeader = true;\n break;\n case 0xFFD9:\n break;\n case 0xFF51:\n length = (0, _util.readUint16)(data, position);\n var siz = {};\n siz.Xsiz = (0, _util.readUint32)(data, position + 4);\n siz.Ysiz = (0, _util.readUint32)(data, position + 8);\n siz.XOsiz = (0, _util.readUint32)(data, position + 12);\n siz.YOsiz = (0, _util.readUint32)(data, position + 16);\n siz.XTsiz = (0, _util.readUint32)(data, position + 20);\n siz.YTsiz = (0, _util.readUint32)(data, position + 24);\n siz.XTOsiz = (0, _util.readUint32)(data, position + 28);\n siz.YTOsiz = (0, _util.readUint32)(data, position + 32);\n var componentsCount = (0, _util.readUint16)(data, position + 36);\n siz.Csiz = componentsCount;\n var components = [];\n j = position + 38;\n for (var i = 0; i < componentsCount; i++) {\n var component = {\n precision: (data[j] & 0x7F) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 1]\n };\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xFF5C:\n length = (0, _util.readUint16)(data, position);\n var qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1F) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error('Invalid SQcd value ' + sqcd);\n }\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n var spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xFF5D:\n length = (0, _util.readUint16)(data, position);\n var qcc = {};\n j = position + 2;\n var cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = (0, _util.readUint16)(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1F) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error('Invalid SQcd value ' + sqcd);\n }\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xFF52:\n length = (0, _util.readUint16)(data, position);\n var cod = {};\n j = position + 2;\n var scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = (0, _util.readUint16)(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xF) + 2;\n cod.ycb = (data[j++] & 0xF) + 2;\n var blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticalyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n if (cod.entropyCoderWithCustomPrecincts) {\n var precinctsSizes = [];\n while (j < length + position) {\n var precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xF,\n PPy: precinctsSize >> 4\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n var unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push('selectiveArithmeticCodingBypass');\n }\n if (cod.resetContextProbabilities) {\n unsupported.push('resetContextProbabilities');\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push('terminationOnEachCodingPass');\n }\n if (cod.verticalyStripe) {\n unsupported.push('verticalyStripe');\n }\n if (cod.predictableTermination) {\n unsupported.push('predictableTermination');\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')');\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xFF90:\n length = (0, _util.readUint16)(data, position);\n tile = {};\n tile.index = (0, _util.readUint16)(data, position + 2);\n tile.length = (0, _util.readUint32)(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n context.mainHeader = false;\n if (tile.partIndex === 0) {\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0);\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0);\n }\n context.currentTile = tile;\n break;\n case 0xFF93:\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xFF55:\n case 0xFF57:\n case 0xFF58:\n case 0xFF64:\n length = (0, _util.readUint16)(data, position);\n break;\n case 0xFF53:\n throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented');\n default:\n throw new Error('Unknown codestream code: ' + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n (0, _util.warn)('JPX: Trying to recover from: ' + e.message);\n }\n }\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n };\n function calculateComponentDimensions(component, siz) {\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n }\n function calculateTileGrids(context, components) {\n var siz = context.SIZ;\n var tile,\n tiles = [];\n var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n for (var q = 0; q < numYtiles; q++) {\n for (var p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n context.tiles = tiles;\n var componentsCount = siz.Csiz;\n for (var i = 0, ii = componentsCount; i < ii; i++) {\n var component = components[i];\n for (var j = 0, jj = tiles.length; j < jj; j++) {\n var tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n }\n function getBlocksDimensions(context, component, r) {\n var codOrCoc = component.codingStyleParameters;\n var result = {};\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n }\n function buildPrecincts(context, resolution, dimensions) {\n var precinctWidth = 1 << dimensions.PPx;\n var precinctHeight = 1 << dimensions.PPy;\n var isZeroRes = resolution.resLevel === 0;\n var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1);\n var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1);\n var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0;\n var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0;\n var numprecincts = numprecinctswide * numprecinctshigh;\n resolution.precinctParameters = {\n precinctWidth: precinctWidth,\n precinctHeight: precinctHeight,\n numprecinctswide: numprecinctswide,\n numprecinctshigh: numprecinctshigh,\n numprecincts: numprecincts,\n precinctWidthInSubband: precinctWidthInSubband,\n precinctHeightInSubband: precinctHeightInSubband\n };\n }\n function buildCodeblocks(context, subband, dimensions) {\n var xcb_ = dimensions.xcb_;\n var ycb_ = dimensions.ycb_;\n var codeblockWidth = 1 << xcb_;\n var codeblockHeight = 1 << ycb_;\n var cbx0 = subband.tbx0 >> xcb_;\n var cby0 = subband.tby0 >> ycb_;\n var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_;\n var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_;\n var precinctParameters = subband.resolution.precinctParameters;\n var codeblocks = [];\n var precincts = [];\n var i, j, codeblock, precinctNumber;\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1)\n };\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband);\n var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband);\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) {\n continue;\n }\n codeblocks.push(codeblock);\n var precinct = precincts[precinctNumber];\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j\n };\n }\n codeblock.precinct = precinct;\n }\n }\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n }\n function createPacket(resolution, precinctNumber, layerNumber) {\n var precinctCodeblocks = [];\n var subbands = resolution.subbands;\n for (var i = 0, ii = subbands.length; i < ii; i++) {\n var subband = subbands[i];\n var codeblocks = subband.codeblocks;\n for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n var codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber: layerNumber,\n codeblocks: precinctCodeblocks\n };\n }\n function LayerResolutionComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n var l = 0,\n r = 0,\n i = 0,\n k = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ResolutionLayerComponentPositionIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var maxDecompositionLevelsCount = 0;\n for (var q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n }\n var r = 0,\n l = 0,\n i = 0,\n k = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n var component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts;) {\n var packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ResolutionPositionComponentLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var l, r, c, p;\n var maxDecompositionLevelsCount = 0;\n for (c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount);\n }\n var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1);\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n var maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n var resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts);\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n var component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n var resolution = component.resolutions[r];\n var numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function PositionComponentResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var precinctsIterationSizes = precinctsSizes;\n var l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale = precinctsSizes.components[c].resolutions[r];\n var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n if (k === null) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function ComponentPositionResolutionLayerIterator(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var layersCount = tile.codingStyleDefaultParameters.layersCount;\n var componentsCount = siz.Csiz;\n var precinctsSizes = getPrecinctSizesInImageScale(tile);\n var l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n this.nextPacket = function JpxImage_nextPacket() {\n for (; c < componentsCount; ++c) {\n var component = tile.components[c];\n var precinctsIterationSizes = precinctsSizes.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n var resolution = component.resolutions[r];\n var sizeInImageScale = precinctsIterationSizes.resolutions[r];\n var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n if (k === null) {\n continue;\n }\n for (; l < layersCount;) {\n var packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError('Out of packets');\n };\n }\n function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n var posX = pxIndex * precinctIterationSizes.minWidth;\n var posY = pyIndex * precinctIterationSizes.minHeight;\n if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) {\n return null;\n }\n var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n }\n function getPrecinctSizesInImageScale(tile) {\n var componentsCount = tile.components.length;\n var minWidth = Number.MAX_VALUE;\n var minHeight = Number.MAX_VALUE;\n var maxNumWide = 0;\n var maxNumHigh = 0;\n var sizePerComponent = new Array(componentsCount);\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n var sizePerResolution = new Array(decompositionLevelsCount + 1);\n var minWidthCurrentComponent = Number.MAX_VALUE;\n var minHeightCurrentComponent = Number.MAX_VALUE;\n var maxNumWideCurrentComponent = 0;\n var maxNumHighCurrentComponent = 0;\n var scale = 1;\n for (var r = decompositionLevelsCount; r >= 0; --r) {\n var resolution = component.resolutions[r];\n var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth;\n var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution);\n minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution);\n maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide);\n maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh);\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution\n };\n scale <<= 1;\n }\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent\n };\n }\n return {\n components: sizePerComponent,\n minWidth: minWidth,\n minHeight: minHeight,\n maxNumWide: maxNumWide,\n maxNumHigh: maxNumHigh\n };\n }\n function buildPackets(context) {\n var siz = context.SIZ;\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var componentsCount = siz.Csiz;\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n var resolutions = [];\n var subbands = [];\n for (var r = 0; r <= decompositionLevelsCount; r++) {\n var blocksDimensions = getBlocksDimensions(context, component, r);\n var resolution = {};\n var scale = 1 << decompositionLevelsCount - r;\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n var subband;\n if (r === 0) {\n subband = {};\n subband.type = 'LL';\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n var bscale = 1 << decompositionLevelsCount - r + 1;\n var resolutionSubbands = [];\n subband = {};\n subband.type = 'HL';\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n subband = {};\n subband.type = 'LH';\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n subband = {};\n subband.type = 'HH';\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n resolution.subbands = resolutionSubbands;\n }\n }\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(context);\n break;\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context);\n break;\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context);\n break;\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(context);\n break;\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context);\n break;\n default:\n throw new JpxError('Unsupported progression order ' + progressionOrder);\n }\n }\n function parseTilePackets(context, data, offset, dataLength) {\n var position = 0;\n var buffer,\n bufferSize = 0,\n skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n var b = data[offset + position];\n position++;\n if (skipNextBit) {\n buffer = buffer << 7 | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = buffer << 8 | b;\n bufferSize += 8;\n }\n if (b === 0xFF) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return buffer >>> bufferSize & (1 << count) - 1;\n }\n function skipMarkerIfEqual(value) {\n if (data[offset + position - 1] === 0xFF && data[offset + position] === value) {\n skipBytes(1);\n return true;\n } else if (data[offset + position] === 0xFF && data[offset + position + 1] === value) {\n skipBytes(2);\n return true;\n }\n return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n var value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\n }\n var tileIndex = context.currentTile.index;\n var tile = context.tiles[tileIndex];\n var sopMarkerUsed = context.COD.sopMarkerUsed;\n var ephMarkerUsed = context.COD.ephMarkerUsed;\n var packetsIterator = tile.packetsIterator;\n while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n skipBytes(4);\n }\n var packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n var layerNumber = packet.layerNumber;\n var queue = [],\n codeblock;\n for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n var precinct = codeblock.precinct;\n var codeblockColumn = codeblock.cbx - precinct.cbxMin;\n var codeblockRow = codeblock.cby - precinct.cbyMin;\n var codeblockIncluded = false;\n var firstTimeInclusion = false;\n var valueReady;\n if (codeblock['included'] !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n precinct = codeblock.precinct;\n var inclusionTree, zeroBitPlanesTree;\n if (precinct['inclusionTree'] !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n var width = precinct.cbxMax - precinct.cbxMin + 1;\n var height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n }\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n var codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n var codingpassesLog2 = (0, _util.log2)(codingpasses);\n var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n var codedDataLength = readBits(bits);\n queue.push({\n codeblock: codeblock,\n codingpasses: codingpasses,\n dataLength: codedDataLength\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n var packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock['data'] === undefined) {\n codeblock.data = [];\n }\n codeblock.data.push({\n data: data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses\n });\n position += packetItem.dataLength;\n }\n }\n return position;\n }\n function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) {\n var x0 = subband.tbx0;\n var y0 = subband.tby0;\n var width = subband.tbx1 - subband.tbx0;\n var codeblocks = subband.codeblocks;\n var right = subband.type.charAt(0) === 'H' ? 1 : 0;\n var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0;\n for (var i = 0, ii = codeblocks.length; i < ii; ++i) {\n var codeblock = codeblocks[i];\n var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n var blockHeight = codeblock.tby1_ - codeblock.tby0_;\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock['data'] === undefined) {\n continue;\n }\n var bitModel, currentCodingpassType;\n bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb);\n currentCodingpassType = 2;\n var data = codeblock.data,\n totalLength = 0,\n codingpasses = 0;\n var j, jj, dataItem;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n var encodedData = new Uint8Array(totalLength);\n var position = 0;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n var decoder = new _arithmetic_decoder.ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n break;\n }\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n var sign = bitModel.coefficentsSign;\n var magnitude = bitModel.coefficentsMagnitude;\n var bitsDecoded = bitModel.bitsDecoded;\n var magnitudeCorrection = reversible ? 0 : 0.5;\n var k, n, nb;\n position = 0;\n var interleave = subband.type !== 'LL';\n for (j = 0; j < blockHeight; j++) {\n var row = offset / width | 0;\n var levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n var pos = interleave ? levelOffset + (offset << 1) : offset;\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << mb - nb);\n }\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\n }\n }\n }\n function transformTile(context, tile, c) {\n var component = tile.components[c];\n var codingStyleParameters = component.codingStyleParameters;\n var quantizationParameters = component.quantizationParameters;\n var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount;\n var spqcds = quantizationParameters.SPqcds;\n var scalarExpounded = quantizationParameters.scalarExpounded;\n var guardBits = quantizationParameters.guardBits;\n var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n var precision = context.components[c].precision;\n var reversible = codingStyleParameters.reversibleTransformation;\n var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform();\n var subbandCoefficients = [];\n var b = 0;\n for (var i = 0; i <= decompositionLevelsCount; i++) {\n var resolution = component.resolutions[i];\n var width = resolution.trx1 - resolution.trx0;\n var height = resolution.try1 - resolution.try0;\n var coefficients = new Float32Array(width * height);\n for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {\n var mu, epsilon;\n if (!scalarExpounded) {\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n var subband = resolution.subbands[j];\n var gainLog2 = SubbandsGainLog2[subband.type];\n var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048);\n var mb = guardBits + epsilon - 1;\n copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed);\n }\n subbandCoefficients.push({\n width: width,\n height: height,\n items: coefficients\n });\n }\n var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0);\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items\n };\n }\n function transformComponents(context) {\n var siz = context.SIZ;\n var components = context.components;\n var componentsCount = siz.Csiz;\n var resultImages = [];\n for (var i = 0, ii = context.tiles.length; i < ii; i++) {\n var tile = context.tiles[i];\n var transformedTiles = [];\n var c;\n for (c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n var tile0 = transformedTiles[0];\n var out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n var result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out\n };\n var shift, offset;\n var pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n var fourComponents = componentsCount === 4;\n var y0items = transformedTiles[0].items;\n var y1items = transformedTiles[1].items;\n var y2items = transformedTiles[2].items;\n var y3items = fourComponents ? transformedTiles[3].items : null;\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n var component0 = tile.components[0];\n var alpha01 = componentsCount - 3;\n jj = y0items.length;\n if (!component0.codingStyleParameters.reversibleTransformation) {\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = y0 + 1.402 * y2 >> shift;\n out[pos++] = y0 - 0.34413 * y1 - 0.71414 * y2 >> shift;\n out[pos++] = y0 + 1.772 * y1 >> shift;\n }\n } else {\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n var g = y0 - (y2 + y1 >> 2);\n out[pos++] = g + y2 >> shift;\n out[pos++] = g >> shift;\n out[pos++] = g + y1 >> shift;\n }\n }\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = y3items[j] + offset >> shift;\n }\n }\n } else {\n for (c = 0; c < componentsCount; c++) {\n var items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = items[j] + offset >> shift;\n pos += componentsCount;\n }\n }\n }\n resultImages.push(result);\n }\n return resultImages;\n }\n function initializeTile(context, tileIndex) {\n var siz = context.SIZ;\n var componentsCount = siz.Csiz;\n var tile = context.tiles[tileIndex];\n for (var c = 0; c < componentsCount; c++) {\n var component = tile.components[c];\n var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n }\n var TagTree = function TagTreeClosure() {\n function TagTree(width, height) {\n var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n for (var i = 0; i < levelsLength; i++) {\n var level = {\n width: width,\n height: height,\n items: []\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n TagTree.prototype = {\n reset: function TagTree_reset(i, j) {\n var currentLevel = 0,\n value = 0,\n level;\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n var index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n },\n incrementValue: function TagTree_incrementValue() {\n var level = this.levels[this.currentLevel];\n level.items[level.index]++;\n },\n nextLevel: function TagTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n currentLevel--;\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n };\n return TagTree;\n }();\n var InclusionTree = function InclusionTreeClosure() {\n function InclusionTree(width, height, defaultValue) {\n var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;\n this.levels = [];\n for (var i = 0; i < levelsLength; i++) {\n var items = new Uint8Array(width * height);\n for (var j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n var level = {\n width: width,\n height: height,\n items: items\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n InclusionTree.prototype = {\n reset: function InclusionTree_reset(i, j, stopValue) {\n var currentLevel = 0;\n while (currentLevel < this.levels.length) {\n var level = this.levels[currentLevel];\n var index = i + j * level.width;\n level.index = index;\n var value = level.items[index];\n if (value === 0xFF) {\n break;\n }\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n this.propagateValues();\n return false;\n }\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n this.currentLevel = currentLevel - 1;\n return true;\n },\n incrementValue: function InclusionTree_incrementValue(stopValue) {\n var level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n },\n propagateValues: function InclusionTree_propagateValues() {\n var levelIndex = this.currentLevel;\n var level = this.levels[levelIndex];\n var currentValue = level.items[level.index];\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n },\n nextLevel: function InclusionTree_nextLevel() {\n var currentLevel = this.currentLevel;\n var level = this.levels[currentLevel];\n var value = level.items[level.index];\n level.items[level.index] = 0xFF;\n currentLevel--;\n if (currentLevel < 0) {\n return false;\n }\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n };\n return InclusionTree;\n }();\n var BitModel = function BitModelClosure() {\n var UNIFORM_CONTEXT = 17;\n var RUNLENGTH_CONTEXT = 18;\n var LLAndLHContextsLabel = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]);\n var HLContextLabel = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]);\n var HHContextLabel = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]);\n function BitModel(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel;\n var coefficientCount = width * height;\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount);\n this.processingFlags = new Uint8Array(coefficientCount);\n var bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (var i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n this.reset();\n }\n BitModel.prototype = {\n setDecoder: function BitModel_setDecoder(decoder) {\n this.decoder = decoder;\n },\n reset: function BitModel_reset() {\n this.contexts = new Int8Array(19);\n this.contexts[0] = 4 << 1 | 0;\n this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0;\n this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0;\n },\n setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) {\n var neighborsSignificance = this.neighborsSignificance;\n var width = this.width,\n height = this.height;\n var left = column > 0;\n var right = column + 1 < width;\n var i;\n if (row > 0) {\n i = index - width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n neighborsSignificance[index] |= 0x80;\n },\n runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var neighborsSignificance = this.neighborsSignificance;\n var processingFlags = this.processingFlags;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processedInverseMask = ~1;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n for (var i0 = 0; i0 < height; i0 += 4) {\n for (var j = 0; j < width; j++) {\n var index = i0 * width + j;\n for (var i1 = 0; i1 < 4; i1++, index += width) {\n var i = i0 + i1;\n if (i >= height) {\n break;\n }\n processingFlags[index] &= processedInverseMask;\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n if (decision) {\n var sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n decodeSignBit: function BitModel_decodeSignBit(row, column, index) {\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contribution, sign0, sign1, significance1;\n var contextLabel, decoded;\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n var horizontalContribution = 3 * contribution;\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n return decoded;\n },\n runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var neighborsSignificance = this.neighborsSignificance;\n var contexts = this.contexts;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var length = width * height;\n var width4 = width * 4;\n for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n for (var j = 0; j < width; j++) {\n for (var index = index0 + j; index < indexNext; index += width) {\n if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n var contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n var significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n var bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n },\n runCleanupPass: function BitModel_runCleanupPass() {\n var decoder = this.decoder;\n var width = this.width,\n height = this.height;\n var neighborsSignificance = this.neighborsSignificance;\n var coefficentsMagnitude = this.coefficentsMagnitude;\n var coefficentsSign = this.coefficentsSign;\n var contexts = this.contexts;\n var labels = this.contextLabelTable;\n var bitsDecoded = this.bitsDecoded;\n var processingFlags = this.processingFlags;\n var processedMask = 1;\n var firstMagnitudeBitMask = 2;\n var oneRowDown = width;\n var twoRowsDown = width * 2;\n var threeRowsDown = width * 3;\n var iNext;\n for (var i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n var indexBase = i0 * width;\n var checkAllEmpty = i0 + 3 < height;\n for (var j = 0; j < width; j++) {\n var index0 = indexBase + j;\n var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0;\n var i1 = 0,\n index = index0;\n var i = i0,\n sign;\n if (allEmpty) {\n var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue;\n }\n i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n index = index0;\n for (var i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n continue;\n }\n var contextLabel = labels[neighborsSignificance[index]];\n var decision = decoder.readBit(contexts, contextLabel);\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n }\n }\n }\n },\n checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() {\n var decoder = this.decoder;\n var contexts = this.contexts;\n var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (symbol !== 0xA) {\n throw new JpxError('Invalid segmentation symbol');\n }\n }\n };\n return BitModel;\n }();\n var Transform = function TransformClosure() {\n function Transform() {}\n Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) {\n var ll = subbands[0];\n for (var i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n };\n Transform.prototype.extend = function extend(buffer, offset, size) {\n var i1 = offset - 1,\n j1 = offset + 1;\n var i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n };\n Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) {\n var llWidth = ll.width,\n llHeight = ll.height,\n llItems = ll.items;\n var width = hl_lh_hh.width;\n var height = hl_lh_hh.height;\n var items = hl_lh_hh.items;\n var i, j, k, l, u, v;\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n llItems = ll.items = null;\n var bufferPadding = 4;\n var rowBuffer = new Float32Array(width + 2 * bufferPadding);\n if (width === 1) {\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n var numBuffers = 16;\n var colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n var b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n if (height === 1) {\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n currentBuffer = numBuffers;\n }\n currentBuffer--;\n var buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n return {\n width: width,\n height: height,\n items: items\n };\n };\n return Transform;\n }();\n var IrreversibleTransform = function IrreversibleTransformClosure() {\n function IrreversibleTransform() {\n Transform.call(this);\n }\n IrreversibleTransform.prototype = Object.create(Transform.prototype);\n IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n, current, next;\n var alpha = -1.586134342059924;\n var beta = -0.052980118572961;\n var gamma = 0.882911075530934;\n var delta = 0.443506852043971;\n var K = 1.230174104914001;\n var K_ = 1 / K;\n j = offset - 3;\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n };\n return IrreversibleTransform;\n }();\n var ReversibleTransform = function ReversibleTransformClosure() {\n function ReversibleTransform() {\n Transform.call(this);\n }\n ReversibleTransform.prototype = Object.create(Transform.prototype);\n ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) {\n var len = length >> 1;\n offset = offset | 0;\n var j, n;\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= x[j - 1] + x[j + 1] + 2 >> 2;\n }\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += x[j - 1] + x[j + 1] >> 1;\n }\n };\n return ReversibleTransform;\n }();\n return JpxImage;\n}();\nexports.JpxImage = JpxImage;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _parser = __w_pdfjs_require__(23);\n\nvar _chunked_stream = __w_pdfjs_require__(54);\n\nvar _crypto = __w_pdfjs_require__(55);\n\nvar _colorspace = __w_pdfjs_require__(15);\n\nvar Catalog = function CatalogClosure() {\n function Catalog(pdfManager, xref, pageFactory) {\n this.pdfManager = pdfManager;\n this.xref = xref;\n this.catDict = xref.getCatalogObj();\n if (!(0, _primitives.isDict)(this.catDict)) {\n throw new _util.FormatError('catalog object is not a dictionary');\n }\n this.fontCache = new _primitives.RefSetCache();\n this.builtInCMapCache = Object.create(null);\n this.pageKidsCountCache = new _primitives.RefSetCache();\n this.pageFactory = pageFactory;\n this.pagePromises = [];\n }\n Catalog.prototype = {\n get metadata() {\n var streamRef = this.catDict.getRaw('Metadata');\n if (!(0, _primitives.isRef)(streamRef)) {\n return (0, _util.shadow)(this, 'metadata', null);\n }\n var encryptMetadata = !this.xref.encrypt ? false : this.xref.encrypt.encryptMetadata;\n var stream = this.xref.fetch(streamRef, !encryptMetadata);\n var metadata;\n if (stream && (0, _primitives.isDict)(stream.dict)) {\n var type = stream.dict.get('Type');\n var subtype = stream.dict.get('Subtype');\n if ((0, _primitives.isName)(type, 'Metadata') && (0, _primitives.isName)(subtype, 'XML')) {\n try {\n metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes()));\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n throw e;\n }\n (0, _util.info)('Skipping invalid metadata.');\n }\n }\n }\n return (0, _util.shadow)(this, 'metadata', metadata);\n },\n get toplevelPagesDict() {\n var pagesObj = this.catDict.get('Pages');\n if (!(0, _primitives.isDict)(pagesObj)) {\n throw new _util.FormatError('invalid top-level pages dictionary');\n }\n return (0, _util.shadow)(this, 'toplevelPagesDict', pagesObj);\n },\n get documentOutline() {\n var obj = null;\n try {\n obj = this.readDocumentOutline();\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Unable to read document outline');\n }\n return (0, _util.shadow)(this, 'documentOutline', obj);\n },\n readDocumentOutline: function Catalog_readDocumentOutline() {\n var obj = this.catDict.get('Outlines');\n if (!(0, _primitives.isDict)(obj)) {\n return null;\n }\n obj = obj.getRaw('First');\n if (!(0, _primitives.isRef)(obj)) {\n return null;\n }\n var root = { items: [] };\n var queue = [{\n obj: obj,\n parent: root\n }];\n var processed = new _primitives.RefSet();\n processed.put(obj);\n var xref = this.xref,\n blackColor = new Uint8Array(3);\n while (queue.length > 0) {\n var i = queue.shift();\n var outlineDict = xref.fetchIfRef(i.obj);\n if (outlineDict === null) {\n continue;\n }\n if (!outlineDict.has('Title')) {\n throw new _util.FormatError('Invalid outline item');\n }\n var data = {\n url: null,\n dest: null\n };\n Catalog.parseDestDictionary({\n destDict: outlineDict,\n resultObj: data,\n docBaseUrl: this.pdfManager.docBaseUrl\n });\n var title = outlineDict.get('Title');\n var flags = outlineDict.get('F') || 0;\n var color = outlineDict.getArray('C'),\n rgbColor = blackColor;\n if ((0, _util.isArray)(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {\n rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0);\n }\n var outlineItem = {\n dest: data.dest,\n url: data.url,\n unsafeUrl: data.unsafeUrl,\n newWindow: data.newWindow,\n title: (0, _util.stringToPDFString)(title),\n color: rgbColor,\n count: outlineDict.get('Count'),\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: []\n };\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw('First');\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj: obj,\n parent: outlineItem\n });\n processed.put(obj);\n }\n obj = outlineDict.getRaw('Next');\n if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n queue.push({\n obj: obj,\n parent: i.parent\n });\n processed.put(obj);\n }\n }\n return root.items.length > 0 ? root.items : null;\n },\n get numPages() {\n var obj = this.toplevelPagesDict.get('Count');\n if (!(0, _util.isInt)(obj)) {\n throw new _util.FormatError('page count in top level pages object is not an integer');\n }\n return (0, _util.shadow)(this, 'numPages', obj);\n },\n get destinations() {\n function fetchDestination(dest) {\n return (0, _primitives.isDict)(dest) ? dest.get('D') : dest;\n }\n var xref = this.xref;\n var dests = {},\n nameTreeRef,\n nameDictionaryRef;\n var obj = this.catDict.get('Names');\n if (obj && obj.has('Dests')) {\n nameTreeRef = obj.getRaw('Dests');\n } else if (this.catDict.has('Dests')) {\n nameDictionaryRef = this.catDict.get('Dests');\n }\n if (nameDictionaryRef) {\n obj = nameDictionaryRef;\n obj.forEach(function catalogForEach(key, value) {\n if (!value) {\n return;\n }\n dests[key] = fetchDestination(value);\n });\n }\n if (nameTreeRef) {\n var nameTree = new NameTree(nameTreeRef, xref);\n var names = nameTree.getAll();\n for (var name in names) {\n dests[name] = fetchDestination(names[name]);\n }\n }\n return (0, _util.shadow)(this, 'destinations', dests);\n },\n getDestination: function Catalog_getDestination(destinationId) {\n function fetchDestination(dest) {\n return (0, _primitives.isDict)(dest) ? dest.get('D') : dest;\n }\n var xref = this.xref;\n var dest = null,\n nameTreeRef,\n nameDictionaryRef;\n var obj = this.catDict.get('Names');\n if (obj && obj.has('Dests')) {\n nameTreeRef = obj.getRaw('Dests');\n } else if (this.catDict.has('Dests')) {\n nameDictionaryRef = this.catDict.get('Dests');\n }\n if (nameDictionaryRef) {\n var value = nameDictionaryRef.get(destinationId);\n if (value) {\n dest = fetchDestination(value);\n }\n }\n if (nameTreeRef) {\n var nameTree = new NameTree(nameTreeRef, xref);\n dest = fetchDestination(nameTree.get(destinationId));\n }\n return dest;\n },\n get pageLabels() {\n var obj = null;\n try {\n obj = this.readPageLabels();\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Unable to read page labels.');\n }\n return (0, _util.shadow)(this, 'pageLabels', obj);\n },\n readPageLabels: function Catalog_readPageLabels() {\n var obj = this.catDict.getRaw('PageLabels');\n if (!obj) {\n return null;\n }\n var pageLabels = new Array(this.numPages);\n var style = null;\n var prefix = '';\n var numberTree = new NumberTree(obj, this.xref);\n var nums = numberTree.getAll();\n var currentLabel = '',\n currentIndex = 1;\n for (var i = 0, ii = this.numPages; i < ii; i++) {\n if (i in nums) {\n var labelDict = nums[i];\n if (!(0, _primitives.isDict)(labelDict)) {\n throw new _util.FormatError('The PageLabel is not a dictionary.');\n }\n var type = labelDict.get('Type');\n if (type && !(0, _primitives.isName)(type, 'PageLabel')) {\n throw new _util.FormatError('Invalid type in PageLabel dictionary.');\n }\n var s = labelDict.get('S');\n if (s && !(0, _primitives.isName)(s)) {\n throw new _util.FormatError('Invalid style in PageLabel dictionary.');\n }\n style = s ? s.name : null;\n var p = labelDict.get('P');\n if (p && !(0, _util.isString)(p)) {\n throw new _util.FormatError('Invalid prefix in PageLabel dictionary.');\n }\n prefix = p ? (0, _util.stringToPDFString)(p) : '';\n var st = labelDict.get('St');\n if (st && !((0, _util.isInt)(st) && st >= 1)) {\n throw new _util.FormatError('Invalid start in PageLabel dictionary.');\n }\n currentIndex = st || 1;\n }\n switch (style) {\n case 'D':\n currentLabel = currentIndex;\n break;\n case 'R':\n case 'r':\n currentLabel = _util.Util.toRoman(currentIndex, style === 'r');\n break;\n case 'A':\n case 'a':\n var LIMIT = 26;\n var A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n var baseCharCode = style === 'a' ? A_LOWER_CASE : A_UPPER_CASE;\n var letterIndex = currentIndex - 1;\n var character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n var charBuf = [];\n for (var j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) {\n charBuf.push(character);\n }\n currentLabel = charBuf.join('');\n break;\n default:\n if (style) {\n throw new _util.FormatError('Invalid style \"' + style + '\" in PageLabel dictionary.');\n }\n }\n pageLabels[i] = prefix + currentLabel;\n currentLabel = '';\n currentIndex++;\n }\n return pageLabels;\n },\n get pageMode() {\n var obj = this.catDict.get('PageMode');\n var pageMode = 'UseNone';\n if ((0, _primitives.isName)(obj)) {\n switch (obj.name) {\n case 'UseNone':\n case 'UseOutlines':\n case 'UseThumbs':\n case 'FullScreen':\n case 'UseOC':\n case 'UseAttachments':\n pageMode = obj.name;\n }\n }\n return (0, _util.shadow)(this, 'pageMode', pageMode);\n },\n get attachments() {\n var xref = this.xref;\n var attachments = null,\n nameTreeRef;\n var obj = this.catDict.get('Names');\n if (obj) {\n nameTreeRef = obj.getRaw('EmbeddedFiles');\n }\n if (nameTreeRef) {\n var nameTree = new NameTree(nameTreeRef, xref);\n var names = nameTree.getAll();\n for (var name in names) {\n var fs = new FileSpec(names[name], xref);\n if (!attachments) {\n attachments = Object.create(null);\n }\n attachments[(0, _util.stringToPDFString)(name)] = fs.serializable;\n }\n }\n return (0, _util.shadow)(this, 'attachments', attachments);\n },\n get javaScript() {\n var xref = this.xref;\n var obj = this.catDict.get('Names');\n var javaScript = [];\n function appendIfJavaScriptDict(jsDict) {\n var type = jsDict.get('S');\n if (!(0, _primitives.isName)(type, 'JavaScript')) {\n return;\n }\n var js = jsDict.get('JS');\n if ((0, _primitives.isStream)(js)) {\n js = (0, _util.bytesToString)(js.getBytes());\n } else if (!(0, _util.isString)(js)) {\n return;\n }\n javaScript.push((0, _util.stringToPDFString)(js));\n }\n if (obj && obj.has('JavaScript')) {\n var nameTree = new NameTree(obj.getRaw('JavaScript'), xref);\n var names = nameTree.getAll();\n for (var name in names) {\n var jsDict = names[name];\n if ((0, _primitives.isDict)(jsDict)) {\n appendIfJavaScriptDict(jsDict);\n }\n }\n }\n var openactionDict = this.catDict.get('OpenAction');\n if ((0, _primitives.isDict)(openactionDict, 'Action')) {\n var actionType = openactionDict.get('S');\n if ((0, _primitives.isName)(actionType, 'Named')) {\n var action = openactionDict.get('N');\n if ((0, _primitives.isName)(action, 'Print')) {\n javaScript.push('print({});');\n }\n } else {\n appendIfJavaScriptDict(openactionDict);\n }\n }\n return (0, _util.shadow)(this, 'javaScript', javaScript);\n },\n cleanup: function Catalog_cleanup() {\n var _this = this;\n\n this.pageKidsCountCache.clear();\n var promises = [];\n this.fontCache.forEach(function (promise) {\n promises.push(promise);\n });\n return Promise.all(promises).then(function (translatedFonts) {\n for (var i = 0, ii = translatedFonts.length; i < ii; i++) {\n var font = translatedFonts[i].dict;\n delete font.translated;\n }\n _this.fontCache.clear();\n _this.builtInCMapCache = Object.create(null);\n });\n },\n getPage: function Catalog_getPage(pageIndex) {\n var _this2 = this;\n\n if (!(pageIndex in this.pagePromises)) {\n this.pagePromises[pageIndex] = this.getPageDict(pageIndex).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n dict = _ref2[0],\n ref = _ref2[1];\n\n return _this2.pageFactory.createPage(pageIndex, dict, ref, _this2.fontCache, _this2.builtInCMapCache);\n });\n }\n return this.pagePromises[pageIndex];\n },\n getPageDict: function Catalog_getPageDict(pageIndex) {\n var capability = (0, _util.createPromiseCapability)();\n var nodesToVisit = [this.catDict.getRaw('Pages')];\n var count,\n currentPageIndex = 0;\n var xref = this.xref,\n pageKidsCountCache = this.pageKidsCountCache;\n function next() {\n while (nodesToVisit.length) {\n var currentNode = nodesToVisit.pop();\n if ((0, _primitives.isRef)(currentNode)) {\n count = pageKidsCountCache.get(currentNode);\n if (count > 0 && currentPageIndex + count < pageIndex) {\n currentPageIndex += count;\n continue;\n }\n xref.fetchAsync(currentNode).then(function (obj) {\n if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Kids')) {\n if (pageIndex === currentPageIndex) {\n if (currentNode && !pageKidsCountCache.has(currentNode)) {\n pageKidsCountCache.put(currentNode, 1);\n }\n capability.resolve([obj, currentNode]);\n } else {\n currentPageIndex++;\n next();\n }\n return;\n }\n nodesToVisit.push(obj);\n next();\n }, capability.reject);\n return;\n }\n if (!(0, _primitives.isDict)(currentNode)) {\n capability.reject(new _util.FormatError('page dictionary kid reference points to wrong type of object'));\n return;\n }\n count = currentNode.get('Count');\n var objId = currentNode.objId;\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n var kids = currentNode.get('Kids');\n if (!(0, _util.isArray)(kids)) {\n capability.reject(new _util.FormatError('page dictionary kids object is not an array'));\n return;\n }\n for (var last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n }\n capability.reject(new Error('Page index ' + pageIndex + ' not found.'));\n }\n next();\n return capability.promise;\n },\n getPageIndex: function Catalog_getPageIndex(pageRef) {\n var xref = this.xref;\n function pagesBeforeRef(kidRef) {\n var total = 0;\n var parentRef;\n return xref.fetchAsync(kidRef).then(function (node) {\n if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, 'Page') && !((0, _primitives.isDict)(node) && !node.has('Type') && node.has('Contents'))) {\n throw new _util.FormatError('The reference does not point to a /Page Dict.');\n }\n if (!node) {\n return null;\n }\n if (!(0, _primitives.isDict)(node)) {\n throw new _util.FormatError('node must be a Dict.');\n }\n parentRef = node.getRaw('Parent');\n return node.getAsync('Parent');\n }).then(function (parent) {\n if (!parent) {\n return null;\n }\n if (!(0, _primitives.isDict)(parent)) {\n throw new _util.FormatError('parent must be a Dict.');\n }\n return parent.getAsync('Kids');\n }).then(function (kids) {\n if (!kids) {\n return null;\n }\n var kidPromises = [];\n var found = false;\n for (var i = 0; i < kids.length; i++) {\n var kid = kids[i];\n if (!(0, _primitives.isRef)(kid)) {\n throw new _util.FormatError('kid must be a Ref.');\n }\n if (kid.num === kidRef.num) {\n found = true;\n break;\n }\n kidPromises.push(xref.fetchAsync(kid).then(function (kid) {\n if (kid.has('Count')) {\n var count = kid.get('Count');\n total += count;\n } else {\n total++;\n }\n }));\n }\n if (!found) {\n throw new _util.FormatError('kid ref not found in parents kids');\n }\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n var total = 0;\n function next(ref) {\n return pagesBeforeRef(ref).then(function (args) {\n if (!args) {\n return total;\n }\n var count = args[0];\n var parentRef = args[1];\n total += count;\n return next(parentRef);\n });\n }\n return next(pageRef);\n }\n };\n Catalog.parseDestDictionary = function Catalog_parseDestDictionary(params) {\n function addDefaultProtocolToUrl(url) {\n if (url.indexOf('www.') === 0) {\n return 'http://' + url;\n }\n return url;\n }\n function tryConvertUrlEncoding(url) {\n try {\n return (0, _util.stringToUTF8String)(url);\n } catch (e) {\n return url;\n }\n }\n var destDict = params.destDict;\n if (!(0, _primitives.isDict)(destDict)) {\n (0, _util.warn)('parseDestDictionary: \"destDict\" must be a dictionary.');\n return;\n }\n var resultObj = params.resultObj;\n if ((typeof resultObj === 'undefined' ? 'undefined' : _typeof(resultObj)) !== 'object') {\n (0, _util.warn)('parseDestDictionary: \"resultObj\" must be an object.');\n return;\n }\n var docBaseUrl = params.docBaseUrl || null;\n var action = destDict.get('A'),\n url,\n dest;\n if (!(0, _primitives.isDict)(action) && destDict.has('Dest')) {\n action = destDict.get('Dest');\n }\n if ((0, _primitives.isDict)(action)) {\n var actionType = action.get('S');\n if (!(0, _primitives.isName)(actionType)) {\n (0, _util.warn)('parseDestDictionary: Invalid type in Action dictionary.');\n return;\n }\n var actionName = actionType.name;\n switch (actionName) {\n case 'URI':\n url = action.get('URI');\n if ((0, _primitives.isName)(url)) {\n url = '/' + url.name;\n } else if ((0, _util.isString)(url)) {\n url = addDefaultProtocolToUrl(url);\n }\n break;\n case 'GoTo':\n dest = action.get('D');\n break;\n case 'Launch':\n case 'GoToR':\n var urlDict = action.get('F');\n if ((0, _primitives.isDict)(urlDict)) {\n url = urlDict.get('F') || null;\n } else if ((0, _util.isString)(urlDict)) {\n url = urlDict;\n }\n var remoteDest = action.get('D');\n if (remoteDest) {\n if ((0, _primitives.isName)(remoteDest)) {\n remoteDest = remoteDest.name;\n }\n if ((0, _util.isString)(url)) {\n var baseUrl = url.split('#')[0];\n if ((0, _util.isString)(remoteDest)) {\n url = baseUrl + '#' + remoteDest;\n } else if ((0, _util.isArray)(remoteDest)) {\n url = baseUrl + '#' + JSON.stringify(remoteDest);\n }\n }\n }\n var newWindow = action.get('NewWindow');\n if ((0, _util.isBool)(newWindow)) {\n resultObj.newWindow = newWindow;\n }\n break;\n case 'Named':\n var namedAction = action.get('N');\n if ((0, _primitives.isName)(namedAction)) {\n resultObj.action = namedAction.name;\n }\n break;\n case 'JavaScript':\n var jsAction = action.get('JS'),\n js;\n if ((0, _primitives.isStream)(jsAction)) {\n js = (0, _util.bytesToString)(jsAction.getBytes());\n } else if ((0, _util.isString)(jsAction)) {\n js = jsAction;\n }\n if (js) {\n var URL_OPEN_METHODS = ['app.launchURL', 'window.open'];\n var regex = new RegExp('^\\\\s*(' + URL_OPEN_METHODS.join('|').split('.').join('\\\\.') + ')\\\\((?:\\'|\\\")([^\\'\\\"]*)(?:\\'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))', 'i');\n var jsUrl = regex.exec((0, _util.stringToPDFString)(js));\n if (jsUrl && jsUrl[2]) {\n url = jsUrl[2];\n if (jsUrl[3] === 'true' && jsUrl[1] === 'app.launchURL') {\n resultObj.newWindow = true;\n }\n break;\n }\n }\n default:\n (0, _util.warn)('parseDestDictionary: Unsupported Action type \"' + actionName + '\".');\n break;\n }\n } else if (destDict.has('Dest')) {\n dest = destDict.get('Dest');\n }\n if ((0, _util.isString)(url)) {\n url = tryConvertUrlEncoding(url);\n var absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl);\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n resultObj.unsafeUrl = url;\n }\n if (dest) {\n if ((0, _primitives.isName)(dest)) {\n dest = dest.name;\n }\n if ((0, _util.isString)(dest) || (0, _util.isArray)(dest)) {\n resultObj.dest = dest;\n }\n }\n };\n return Catalog;\n}();\nvar XRef = function XRefClosure() {\n function XRef(stream, pdfManager) {\n this.stream = stream;\n this.pdfManager = pdfManager;\n this.entries = [];\n this.xrefstms = Object.create(null);\n this.cache = [];\n this.stats = {\n streamTypes: [],\n fontTypes: []\n };\n }\n XRef.prototype = {\n setStartXRef: function XRef_setStartXRef(startXRef) {\n this.startXRefQueue = [startXRef];\n },\n parse: function XRef_parse(recoveryMode) {\n var trailerDict;\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n (0, _util.warn)('Indexing all PDF objects');\n trailerDict = this.indexObjects();\n }\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n var encrypt = trailerDict.get('Encrypt');\n if ((0, _primitives.isDict)(encrypt)) {\n var ids = trailerDict.get('ID');\n var fileId = ids && ids.length ? ids[0] : '';\n encrypt.suppressEncryption = true;\n this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password);\n }\n if (!(this.root = trailerDict.get('Root'))) {\n throw new _util.FormatError('Invalid root reference');\n }\n },\n processXRefTable: function XRef_processXRefTable(parser) {\n if (!('tableState' in this)) {\n this.tableState = {\n entryNum: 0,\n streamPos: parser.lexer.stream.pos,\n parserBuf1: parser.buf1,\n parserBuf2: parser.buf2\n };\n }\n var obj = this.readXRefTable(parser);\n if (!(0, _primitives.isCmd)(obj, 'trailer')) {\n throw new _util.FormatError('Invalid XRef table: could not find trailer dictionary');\n }\n var dict = parser.getObj();\n if (!(0, _primitives.isDict)(dict) && dict.dict) {\n dict = dict.dict;\n }\n if (!(0, _primitives.isDict)(dict)) {\n throw new _util.FormatError('Invalid XRef table: could not parse trailer dictionary');\n }\n delete this.tableState;\n return dict;\n },\n readXRefTable: function XRef_readXRefTable(parser) {\n var stream = parser.lexer.stream;\n var tableState = this.tableState;\n stream.pos = tableState.streamPos;\n parser.buf1 = tableState.parserBuf1;\n parser.buf2 = tableState.parserBuf2;\n var obj;\n while (true) {\n if (!('firstEntryNum' in tableState) || !('entryCount' in tableState)) {\n if ((0, _primitives.isCmd)(obj = parser.getObj(), 'trailer')) {\n break;\n }\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n var first = tableState.firstEntryNum;\n var count = tableState.entryCount;\n if (!(0, _util.isInt)(first) || !(0, _util.isInt)(count)) {\n throw new _util.FormatError('Invalid XRef table: wrong types in subsection header');\n }\n for (var i = tableState.entryNum; i < count; i++) {\n tableState.streamPos = stream.pos;\n tableState.entryNum = i;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n var entry = {};\n entry.offset = parser.getObj();\n entry.gen = parser.getObj();\n var type = parser.getObj();\n if ((0, _primitives.isCmd)(type, 'f')) {\n entry.free = true;\n } else if ((0, _primitives.isCmd)(type, 'n')) {\n entry.uncompressed = true;\n }\n if (!(0, _util.isInt)(entry.offset) || !(0, _util.isInt)(entry.gen) || !(entry.free || entry.uncompressed)) {\n throw new _util.FormatError('Invalid entry in XRef subsection: ' + first + ', ' + count);\n }\n if (i === 0 && entry.free && first === 1) {\n first = 0;\n }\n if (!this.entries[i + first]) {\n this.entries[i + first] = entry;\n }\n }\n tableState.entryNum = 0;\n tableState.streamPos = stream.pos;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n delete tableState.firstEntryNum;\n delete tableState.entryCount;\n }\n if (this.entries[0] && !this.entries[0].free) {\n throw new _util.FormatError('Invalid XRef table: unexpected first object');\n }\n return obj;\n },\n processXRefStream: function XRef_processXRefStream(stream) {\n if (!('streamState' in this)) {\n var streamParameters = stream.dict;\n var byteWidths = streamParameters.get('W');\n var range = streamParameters.get('Index');\n if (!range) {\n range = [0, streamParameters.get('Size')];\n }\n this.streamState = {\n entryRanges: range,\n byteWidths: byteWidths,\n entryNum: 0,\n streamPos: stream.pos\n };\n }\n this.readXRefStream(stream);\n delete this.streamState;\n return stream.dict;\n },\n readXRefStream: function XRef_readXRefStream(stream) {\n var i, j;\n var streamState = this.streamState;\n stream.pos = streamState.streamPos;\n var byteWidths = streamState.byteWidths;\n var typeFieldWidth = byteWidths[0];\n var offsetFieldWidth = byteWidths[1];\n var generationFieldWidth = byteWidths[2];\n var entryRanges = streamState.entryRanges;\n while (entryRanges.length > 0) {\n var first = entryRanges[0];\n var n = entryRanges[1];\n if (!(0, _util.isInt)(first) || !(0, _util.isInt)(n)) {\n throw new _util.FormatError('Invalid XRef range fields: ' + first + ', ' + n);\n }\n if (!(0, _util.isInt)(typeFieldWidth) || !(0, _util.isInt)(offsetFieldWidth) || !(0, _util.isInt)(generationFieldWidth)) {\n throw new _util.FormatError('Invalid XRef entry fields length: ' + first + ', ' + n);\n }\n for (i = streamState.entryNum; i < n; ++i) {\n streamState.entryNum = i;\n streamState.streamPos = stream.pos;\n var type = 0,\n offset = 0,\n generation = 0;\n for (j = 0; j < typeFieldWidth; ++j) {\n type = type << 8 | stream.getByte();\n }\n if (typeFieldWidth === 0) {\n type = 1;\n }\n for (j = 0; j < offsetFieldWidth; ++j) {\n offset = offset << 8 | stream.getByte();\n }\n for (j = 0; j < generationFieldWidth; ++j) {\n generation = generation << 8 | stream.getByte();\n }\n var entry = {};\n entry.offset = offset;\n entry.gen = generation;\n switch (type) {\n case 0:\n entry.free = true;\n break;\n case 1:\n entry.uncompressed = true;\n break;\n case 2:\n break;\n default:\n throw new _util.FormatError('Invalid XRef entry type: ' + type);\n }\n if (!this.entries[first + i]) {\n this.entries[first + i] = entry;\n }\n }\n streamState.entryNum = 0;\n streamState.streamPos = stream.pos;\n entryRanges.splice(0, 2);\n }\n },\n indexObjects: function XRef_indexObjects() {\n var TAB = 0x9,\n LF = 0xA,\n CR = 0xD,\n SPACE = 0x20;\n var PERCENT = 0x25,\n LT = 0x3C;\n function readToken(data, offset) {\n var token = '',\n ch = data[offset];\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n return token;\n }\n function skipUntil(data, offset, what) {\n var length = what.length,\n dataLength = data.length;\n var skipped = 0;\n while (offset < dataLength) {\n var i = 0;\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n if (i >= length) {\n break;\n }\n offset++;\n skipped++;\n }\n return skipped;\n }\n var objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);\n var endobjBytes = new Uint8Array([101, 110, 100, 111, 98, 106]);\n var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n this.entries.length = 0;\n var stream = this.stream;\n stream.pos = 0;\n var buffer = stream.getBytes();\n var position = stream.start,\n length = buffer.length;\n var trailers = [],\n xrefStms = [];\n while (position < length) {\n var ch = buffer[position];\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n if (ch === PERCENT) {\n do {\n ++position;\n if (position >= length) {\n break;\n }\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n continue;\n }\n var token = readToken(buffer, position);\n var m;\n if (token.indexOf('xref') === 0 && (token.length === 4 || /\\s/.test(token[4]))) {\n position += skipUntil(buffer, position, trailerBytes);\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else if (m = objRegExp.exec(token)) {\n if (typeof this.entries[m[1]] === 'undefined') {\n this.entries[m[1]] = {\n offset: position - stream.start,\n gen: m[2] | 0,\n uncompressed: true\n };\n }\n var contentLength = skipUntil(buffer, position, endobjBytes) + 7;\n var content = buffer.subarray(position, position + contentLength);\n var xrefTagOffset = skipUntil(content, 0, xrefBytes);\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this.xrefstms[position - stream.start] = 1;\n }\n position += contentLength;\n } else if (token.indexOf('trailer') === 0 && (token.length === 7 || /\\s/.test(token[7]))) {\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else {\n position += token.length + 1;\n }\n }\n var i, ii;\n for (i = 0, ii = xrefStms.length; i < ii; ++i) {\n this.startXRefQueue.push(xrefStms[i]);\n this.readXRef(true);\n }\n var dict;\n for (i = 0, ii = trailers.length; i < ii; ++i) {\n stream.pos = trailers[i];\n var parser = new _parser.Parser(new _parser.Lexer(stream), true, this, true);\n var obj = parser.getObj();\n if (!(0, _primitives.isCmd)(obj, 'trailer')) {\n continue;\n }\n dict = parser.getObj();\n if (!(0, _primitives.isDict)(dict)) {\n continue;\n }\n if (dict.has('ID')) {\n return dict;\n }\n }\n if (dict) {\n return dict;\n }\n throw new _util.InvalidPDFException('Invalid PDF structure');\n },\n readXRef: function XRef_readXRef(recoveryMode) {\n var stream = this.stream;\n var startXRefParsedCache = Object.create(null);\n try {\n while (this.startXRefQueue.length) {\n var startXRef = this.startXRefQueue[0];\n if (startXRefParsedCache[startXRef]) {\n (0, _util.warn)('readXRef - skipping XRef table since it was already parsed.');\n this.startXRefQueue.shift();\n continue;\n }\n startXRefParsedCache[startXRef] = true;\n stream.pos = startXRef + stream.start;\n var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);\n var obj = parser.getObj();\n var dict;\n if ((0, _primitives.isCmd)(obj, 'xref')) {\n dict = this.processXRefTable(parser);\n if (!this.topDict) {\n this.topDict = dict;\n }\n obj = dict.get('XRefStm');\n if ((0, _util.isInt)(obj)) {\n var pos = obj;\n if (!(pos in this.xrefstms)) {\n this.xrefstms[pos] = 1;\n this.startXRefQueue.push(pos);\n }\n }\n } else if ((0, _util.isInt)(obj)) {\n if (!(0, _util.isInt)(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), 'obj') || !(0, _primitives.isStream)(obj = parser.getObj())) {\n throw new _util.FormatError('Invalid XRef stream');\n }\n dict = this.processXRefStream(obj);\n if (!this.topDict) {\n this.topDict = dict;\n }\n if (!dict) {\n throw new _util.FormatError('Failed to read XRef stream');\n }\n } else {\n throw new _util.FormatError('Invalid XRef stream header');\n }\n obj = dict.get('Prev');\n if ((0, _util.isInt)(obj)) {\n this.startXRefQueue.push(obj);\n } else if ((0, _primitives.isRef)(obj)) {\n this.startXRefQueue.push(obj.num);\n }\n this.startXRefQueue.shift();\n }\n return this.topDict;\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n throw e;\n }\n (0, _util.info)('(while reading XRef): ' + e);\n }\n if (recoveryMode) {\n return;\n }\n throw new _util.XRefParseException();\n },\n getEntry: function XRef_getEntry(i) {\n var xrefEntry = this.entries[i];\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n return null;\n },\n fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) {\n if (!(0, _primitives.isRef)(obj)) {\n return obj;\n }\n return this.fetch(obj, suppressEncryption);\n },\n fetch: function XRef_fetch(ref, suppressEncryption) {\n if (!(0, _primitives.isRef)(ref)) {\n throw new Error('ref object is not a reference');\n }\n var num = ref.num;\n if (num in this.cache) {\n var cacheEntry = this.cache[num];\n if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n return cacheEntry;\n }\n var xrefEntry = this.getEntry(num);\n if (xrefEntry === null) {\n return this.cache[num] = null;\n }\n if (xrefEntry.uncompressed) {\n xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n } else {\n xrefEntry = this.fetchCompressed(xrefEntry, suppressEncryption);\n }\n if ((0, _primitives.isDict)(xrefEntry)) {\n xrefEntry.objId = ref.toString();\n } else if ((0, _primitives.isStream)(xrefEntry)) {\n xrefEntry.dict.objId = ref.toString();\n }\n return xrefEntry;\n },\n fetchUncompressed: function XRef_fetchUncompressed(ref, xrefEntry, suppressEncryption) {\n var gen = ref.gen;\n var num = ref.num;\n if (xrefEntry.gen !== gen) {\n throw new _util.FormatError('inconsistent generation in XRef');\n }\n var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);\n var obj1 = parser.getObj();\n var obj2 = parser.getObj();\n var obj3 = parser.getObj();\n if (!(0, _util.isInt)(obj1) || parseInt(obj1, 10) !== num || !(0, _util.isInt)(obj2) || parseInt(obj2, 10) !== gen || !(0, _primitives.isCmd)(obj3)) {\n throw new _util.FormatError('bad XRef entry');\n }\n if (!(0, _primitives.isCmd)(obj3, 'obj')) {\n if (obj3.cmd.indexOf('obj') === 0) {\n num = parseInt(obj3.cmd.substring(3), 10);\n if (!isNaN(num)) {\n return num;\n }\n }\n throw new _util.FormatError('bad XRef entry');\n }\n if (this.encrypt && !suppressEncryption) {\n xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n } else {\n xrefEntry = parser.getObj();\n }\n if (!(0, _primitives.isStream)(xrefEntry)) {\n this.cache[num] = xrefEntry;\n }\n return xrefEntry;\n },\n fetchCompressed: function XRef_fetchCompressed(xrefEntry, suppressEncryption) {\n var tableOffset = xrefEntry.offset;\n var stream = this.fetch(new _primitives.Ref(tableOffset, 0));\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError('bad ObjStm stream');\n }\n var first = stream.dict.get('First');\n var n = stream.dict.get('N');\n if (!(0, _util.isInt)(first) || !(0, _util.isInt)(n)) {\n throw new _util.FormatError('invalid first and n parameters for ObjStm stream');\n }\n var parser = new _parser.Parser(new _parser.Lexer(stream), false, this);\n parser.allowStreams = true;\n var i,\n entries = [],\n num,\n nums = [];\n for (i = 0; i < n; ++i) {\n num = parser.getObj();\n if (!(0, _util.isInt)(num)) {\n throw new _util.FormatError('invalid object number in the ObjStm stream: ' + num);\n }\n nums.push(num);\n var offset = parser.getObj();\n if (!(0, _util.isInt)(offset)) {\n throw new _util.FormatError('invalid object offset in the ObjStm stream: ' + offset);\n }\n }\n for (i = 0; i < n; ++i) {\n entries.push(parser.getObj());\n if ((0, _primitives.isCmd)(parser.buf1, 'endobj')) {\n parser.shift();\n }\n num = nums[i];\n var entry = this.entries[num];\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n this.cache[num] = entries[i];\n }\n }\n xrefEntry = entries[xrefEntry.gen];\n if (xrefEntry === undefined) {\n throw new _util.FormatError('bad XRef entry for compressed object');\n }\n return xrefEntry;\n },\n fetchIfRefAsync: function XRef_fetchIfRefAsync(obj, suppressEncryption) {\n if (!(0, _primitives.isRef)(obj)) {\n return Promise.resolve(obj);\n }\n return this.fetchAsync(obj, suppressEncryption);\n },\n fetchAsync: function XRef_fetchAsync(ref, suppressEncryption) {\n var streamManager = this.stream.manager;\n var xref = this;\n return new Promise(function tryFetch(resolve, reject) {\n try {\n resolve(xref.fetch(ref, suppressEncryption));\n } catch (e) {\n if (e instanceof _util.MissingDataException) {\n streamManager.requestRange(e.begin, e.end).then(function () {\n tryFetch(resolve, reject);\n }, reject);\n return;\n }\n reject(e);\n }\n });\n },\n getCatalogObj: function XRef_getCatalogObj() {\n return this.root;\n }\n };\n return XRef;\n}();\nvar NameOrNumberTree = function NameOrNumberTreeClosure() {\n function NameOrNumberTree(root, xref) {\n throw new Error('Cannot initialize NameOrNumberTree.');\n }\n NameOrNumberTree.prototype = {\n getAll: function NameOrNumberTree_getAll() {\n var dict = Object.create(null);\n if (!this.root) {\n return dict;\n }\n var xref = this.xref;\n var processed = new _primitives.RefSet();\n processed.put(this.root);\n var queue = [this.root];\n while (queue.length > 0) {\n var i, n;\n var obj = xref.fetchIfRef(queue.shift());\n if (!(0, _primitives.isDict)(obj)) {\n continue;\n }\n if (obj.has('Kids')) {\n var kids = obj.get('Kids');\n for (i = 0, n = kids.length; i < n; i++) {\n var kid = kids[i];\n if (processed.has(kid)) {\n throw new _util.FormatError('Duplicate entry in \"' + this._type + '\" tree.');\n }\n queue.push(kid);\n processed.put(kid);\n }\n continue;\n }\n var entries = obj.get(this._type);\n if ((0, _util.isArray)(entries)) {\n for (i = 0, n = entries.length; i < n; i += 2) {\n dict[xref.fetchIfRef(entries[i])] = xref.fetchIfRef(entries[i + 1]);\n }\n }\n }\n return dict;\n },\n get: function NameOrNumberTree_get(key) {\n if (!this.root) {\n return null;\n }\n var xref = this.xref;\n var kidsOrEntries = xref.fetchIfRef(this.root);\n var loopCount = 0;\n var MAX_LEVELS = 10;\n var l, r, m;\n while (kidsOrEntries.has('Kids')) {\n if (++loopCount > MAX_LEVELS) {\n (0, _util.warn)('Search depth limit reached for \"' + this._type + '\" tree.');\n return null;\n }\n var kids = kidsOrEntries.get('Kids');\n if (!(0, _util.isArray)(kids)) {\n return null;\n }\n l = 0;\n r = kids.length - 1;\n while (l <= r) {\n m = l + r >> 1;\n var kid = xref.fetchIfRef(kids[m]);\n var limits = kid.get('Limits');\n if (key < xref.fetchIfRef(limits[0])) {\n r = m - 1;\n } else if (key > xref.fetchIfRef(limits[1])) {\n l = m + 1;\n } else {\n kidsOrEntries = xref.fetchIfRef(kids[m]);\n break;\n }\n }\n if (l > r) {\n return null;\n }\n }\n var entries = kidsOrEntries.get(this._type);\n if ((0, _util.isArray)(entries)) {\n l = 0;\n r = entries.length - 2;\n while (l <= r) {\n m = l + r & ~1;\n var currentKey = xref.fetchIfRef(entries[m]);\n if (key < currentKey) {\n r = m - 2;\n } else if (key > currentKey) {\n l = m + 2;\n } else {\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n }\n return null;\n }\n };\n return NameOrNumberTree;\n}();\nvar NameTree = function NameTreeClosure() {\n function NameTree(root, xref) {\n this.root = root;\n this.xref = xref;\n this._type = 'Names';\n }\n _util.Util.inherit(NameTree, NameOrNumberTree, {});\n return NameTree;\n}();\nvar NumberTree = function NumberTreeClosure() {\n function NumberTree(root, xref) {\n this.root = root;\n this.xref = xref;\n this._type = 'Nums';\n }\n _util.Util.inherit(NumberTree, NameOrNumberTree, {});\n return NumberTree;\n}();\nvar FileSpec = function FileSpecClosure() {\n function FileSpec(root, xref) {\n if (!root || !(0, _primitives.isDict)(root)) {\n return;\n }\n this.xref = xref;\n this.root = root;\n if (root.has('FS')) {\n this.fs = root.get('FS');\n }\n this.description = root.has('Desc') ? (0, _util.stringToPDFString)(root.get('Desc')) : '';\n if (root.has('RF')) {\n (0, _util.warn)('Related file specifications are not supported');\n }\n this.contentAvailable = true;\n if (!root.has('EF')) {\n this.contentAvailable = false;\n (0, _util.warn)('Non-embedded file specifications are not supported');\n }\n }\n function pickPlatformItem(dict) {\n if (dict.has('UF')) {\n return dict.get('UF');\n } else if (dict.has('F')) {\n return dict.get('F');\n } else if (dict.has('Unix')) {\n return dict.get('Unix');\n } else if (dict.has('Mac')) {\n return dict.get('Mac');\n } else if (dict.has('DOS')) {\n return dict.get('DOS');\n }\n return null;\n }\n FileSpec.prototype = {\n get filename() {\n if (!this._filename && this.root) {\n var filename = pickPlatformItem(this.root) || 'unnamed';\n this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\\\\\/g, '\\\\').replace(/\\\\\\//g, '/').replace(/\\\\/g, '/');\n }\n return this._filename;\n },\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get('EF'));\n }\n var content = null;\n if (this.contentRef) {\n var xref = this.xref;\n var fileObj = xref.fetchIfRef(this.contentRef);\n if (fileObj && (0, _primitives.isStream)(fileObj)) {\n content = fileObj.getBytes();\n } else {\n (0, _util.warn)('Embedded file specification points to non-existing/invalid ' + 'content');\n }\n } else {\n (0, _util.warn)('Embedded file specification does not have a content');\n }\n return content;\n },\n get serializable() {\n return {\n filename: this.filename,\n content: this.content\n };\n }\n };\n return FileSpec;\n}();\nvar ObjectLoader = function () {\n function mayHaveChildren(value) {\n return (0, _primitives.isRef)(value) || (0, _primitives.isDict)(value) || (0, _util.isArray)(value) || (0, _primitives.isStream)(value);\n }\n function addChildren(node, nodesToVisit) {\n if ((0, _primitives.isDict)(node) || (0, _primitives.isStream)(node)) {\n var dict = (0, _primitives.isDict)(node) ? node : node.dict;\n var dictKeys = dict.getKeys();\n for (var i = 0, ii = dictKeys.length; i < ii; i++) {\n var rawValue = dict.getRaw(dictKeys[i]);\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n } else if ((0, _util.isArray)(node)) {\n for (var _i = 0, _ii = node.length; _i < _ii; _i++) {\n var value = node[_i];\n if (mayHaveChildren(value)) {\n nodesToVisit.push(value);\n }\n }\n }\n }\n function ObjectLoader(dict, keys, xref) {\n this.dict = dict;\n this.keys = keys;\n this.xref = xref;\n this.refSet = null;\n this.capability = null;\n }\n ObjectLoader.prototype = {\n load: function load() {\n this.capability = (0, _util.createPromiseCapability)();\n if (!(this.xref.stream instanceof _chunked_stream.ChunkedStream) || this.xref.stream.getMissingChunks().length === 0) {\n this.capability.resolve();\n return this.capability.promise;\n }\n var keys = this.keys,\n dict = this.dict;\n\n this.refSet = new _primitives.RefSet();\n var nodesToVisit = [];\n for (var i = 0, ii = keys.length; i < ii; i++) {\n var rawValue = dict.getRaw(keys[i]);\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n this._walk(nodesToVisit);\n return this.capability.promise;\n },\n _walk: function _walk(nodesToVisit) {\n var _this3 = this;\n\n var nodesToRevisit = [];\n var pendingRequests = [];\n while (nodesToVisit.length) {\n var currentNode = nodesToVisit.pop();\n if ((0, _primitives.isRef)(currentNode)) {\n if (this.refSet.has(currentNode)) {\n continue;\n }\n try {\n this.refSet.put(currentNode);\n currentNode = this.xref.fetch(currentNode);\n } catch (ex) {\n if (!(ex instanceof _util.MissingDataException)) {\n throw ex;\n }\n nodesToRevisit.push(currentNode);\n pendingRequests.push({\n begin: ex.begin,\n end: ex.end\n });\n }\n }\n if (currentNode && currentNode.getBaseStreams) {\n var baseStreams = currentNode.getBaseStreams();\n var foundMissingData = false;\n for (var i = 0, ii = baseStreams.length; i < ii; i++) {\n var stream = baseStreams[i];\n if (stream.getMissingChunks && stream.getMissingChunks().length) {\n foundMissingData = true;\n pendingRequests.push({\n begin: stream.start,\n end: stream.end\n });\n }\n }\n if (foundMissingData) {\n nodesToRevisit.push(currentNode);\n }\n }\n addChildren(currentNode, nodesToVisit);\n }\n if (pendingRequests.length) {\n this.xref.stream.manager.requestRanges(pendingRequests).then(function () {\n for (var _i2 = 0, _ii2 = nodesToRevisit.length; _i2 < _ii2; _i2++) {\n var node = nodesToRevisit[_i2];\n if ((0, _primitives.isRef)(node)) {\n _this3.refSet.remove(node);\n }\n }\n _this3._walk(nodesToRevisit);\n }, this.capability.reject);\n return;\n }\n this.refSet = null;\n this.capability.resolve();\n }\n };\n return ObjectLoader;\n}();\nexports.Catalog = Catalog;\nexports.ObjectLoader = ObjectLoader;\nexports.XRef = XRef;\nexports.FileSpec = FileSpec;\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar getStdFontMap = (0, _util.getLookupTableFactory)(function (t) {\n t['ArialNarrow'] = 'Helvetica';\n t['ArialNarrow-Bold'] = 'Helvetica-Bold';\n t['ArialNarrow-BoldItalic'] = 'Helvetica-BoldOblique';\n t['ArialNarrow-Italic'] = 'Helvetica-Oblique';\n t['ArialBlack'] = 'Helvetica';\n t['ArialBlack-Bold'] = 'Helvetica-Bold';\n t['ArialBlack-BoldItalic'] = 'Helvetica-BoldOblique';\n t['ArialBlack-Italic'] = 'Helvetica-Oblique';\n t['Arial-Black'] = 'Helvetica';\n t['Arial-Black-Bold'] = 'Helvetica-Bold';\n t['Arial-Black-BoldItalic'] = 'Helvetica-BoldOblique';\n t['Arial-Black-Italic'] = 'Helvetica-Oblique';\n t['Arial'] = 'Helvetica';\n t['Arial-Bold'] = 'Helvetica-Bold';\n t['Arial-BoldItalic'] = 'Helvetica-BoldOblique';\n t['Arial-Italic'] = 'Helvetica-Oblique';\n t['Arial-BoldItalicMT'] = 'Helvetica-BoldOblique';\n t['Arial-BoldMT'] = 'Helvetica-Bold';\n t['Arial-ItalicMT'] = 'Helvetica-Oblique';\n t['ArialMT'] = 'Helvetica';\n t['Courier-Bold'] = 'Courier-Bold';\n t['Courier-BoldItalic'] = 'Courier-BoldOblique';\n t['Courier-Italic'] = 'Courier-Oblique';\n t['CourierNew'] = 'Courier';\n t['CourierNew-Bold'] = 'Courier-Bold';\n t['CourierNew-BoldItalic'] = 'Courier-BoldOblique';\n t['CourierNew-Italic'] = 'Courier-Oblique';\n t['CourierNewPS-BoldItalicMT'] = 'Courier-BoldOblique';\n t['CourierNewPS-BoldMT'] = 'Courier-Bold';\n t['CourierNewPS-ItalicMT'] = 'Courier-Oblique';\n t['CourierNewPSMT'] = 'Courier';\n t['Helvetica'] = 'Helvetica';\n t['Helvetica-Bold'] = 'Helvetica-Bold';\n t['Helvetica-BoldItalic'] = 'Helvetica-BoldOblique';\n t['Helvetica-BoldOblique'] = 'Helvetica-BoldOblique';\n t['Helvetica-Italic'] = 'Helvetica-Oblique';\n t['Helvetica-Oblique'] = 'Helvetica-Oblique';\n t['SegoeUISymbol'] = 'Helvetica';\n t['Symbol-Bold'] = 'Symbol';\n t['Symbol-BoldItalic'] = 'Symbol';\n t['Symbol-Italic'] = 'Symbol';\n t['TimesNewRoman'] = 'Times-Roman';\n t['TimesNewRoman-Bold'] = 'Times-Bold';\n t['TimesNewRoman-BoldItalic'] = 'Times-BoldItalic';\n t['TimesNewRoman-Italic'] = 'Times-Italic';\n t['TimesNewRomanPS'] = 'Times-Roman';\n t['TimesNewRomanPS-Bold'] = 'Times-Bold';\n t['TimesNewRomanPS-BoldItalic'] = 'Times-BoldItalic';\n t['TimesNewRomanPS-BoldItalicMT'] = 'Times-BoldItalic';\n t['TimesNewRomanPS-BoldMT'] = 'Times-Bold';\n t['TimesNewRomanPS-Italic'] = 'Times-Italic';\n t['TimesNewRomanPS-ItalicMT'] = 'Times-Italic';\n t['TimesNewRomanPSMT'] = 'Times-Roman';\n t['TimesNewRomanPSMT-Bold'] = 'Times-Bold';\n t['TimesNewRomanPSMT-BoldItalic'] = 'Times-BoldItalic';\n t['TimesNewRomanPSMT-Italic'] = 'Times-Italic';\n});\nvar getNonStdFontMap = (0, _util.getLookupTableFactory)(function (t) {\n t['CenturyGothic'] = 'Helvetica';\n t['CenturyGothic-Bold'] = 'Helvetica-Bold';\n t['CenturyGothic-BoldItalic'] = 'Helvetica-BoldOblique';\n t['CenturyGothic-Italic'] = 'Helvetica-Oblique';\n t['ComicSansMS'] = 'Comic Sans MS';\n t['ComicSansMS-Bold'] = 'Comic Sans MS-Bold';\n t['ComicSansMS-BoldItalic'] = 'Comic Sans MS-BoldItalic';\n t['ComicSansMS-Italic'] = 'Comic Sans MS-Italic';\n t['LucidaConsole'] = 'Courier';\n t['LucidaConsole-Bold'] = 'Courier-Bold';\n t['LucidaConsole-BoldItalic'] = 'Courier-BoldOblique';\n t['LucidaConsole-Italic'] = 'Courier-Oblique';\n t['MS-Gothic'] = 'MS Gothic';\n t['MS-Gothic-Bold'] = 'MS Gothic-Bold';\n t['MS-Gothic-BoldItalic'] = 'MS Gothic-BoldItalic';\n t['MS-Gothic-Italic'] = 'MS Gothic-Italic';\n t['MS-Mincho'] = 'MS Mincho';\n t['MS-Mincho-Bold'] = 'MS Mincho-Bold';\n t['MS-Mincho-BoldItalic'] = 'MS Mincho-BoldItalic';\n t['MS-Mincho-Italic'] = 'MS Mincho-Italic';\n t['MS-PGothic'] = 'MS PGothic';\n t['MS-PGothic-Bold'] = 'MS PGothic-Bold';\n t['MS-PGothic-BoldItalic'] = 'MS PGothic-BoldItalic';\n t['MS-PGothic-Italic'] = 'MS PGothic-Italic';\n t['MS-PMincho'] = 'MS PMincho';\n t['MS-PMincho-Bold'] = 'MS PMincho-Bold';\n t['MS-PMincho-BoldItalic'] = 'MS PMincho-BoldItalic';\n t['MS-PMincho-Italic'] = 'MS PMincho-Italic';\n t['NuptialScript'] = 'Times-Italic';\n t['Wingdings'] = 'ZapfDingbats';\n});\nvar getSerifFonts = (0, _util.getLookupTableFactory)(function (t) {\n t['Adobe Jenson'] = true;\n t['Adobe Text'] = true;\n t['Albertus'] = true;\n t['Aldus'] = true;\n t['Alexandria'] = true;\n t['Algerian'] = true;\n t['American Typewriter'] = true;\n t['Antiqua'] = true;\n t['Apex'] = true;\n t['Arno'] = true;\n t['Aster'] = true;\n t['Aurora'] = true;\n t['Baskerville'] = true;\n t['Bell'] = true;\n t['Bembo'] = true;\n t['Bembo Schoolbook'] = true;\n t['Benguiat'] = true;\n t['Berkeley Old Style'] = true;\n t['Bernhard Modern'] = true;\n t['Berthold City'] = true;\n t['Bodoni'] = true;\n t['Bauer Bodoni'] = true;\n t['Book Antiqua'] = true;\n t['Bookman'] = true;\n t['Bordeaux Roman'] = true;\n t['Californian FB'] = true;\n t['Calisto'] = true;\n t['Calvert'] = true;\n t['Capitals'] = true;\n t['Cambria'] = true;\n t['Cartier'] = true;\n t['Caslon'] = true;\n t['Catull'] = true;\n t['Centaur'] = true;\n t['Century Old Style'] = true;\n t['Century Schoolbook'] = true;\n t['Chaparral'] = true;\n t['Charis SIL'] = true;\n t['Cheltenham'] = true;\n t['Cholla Slab'] = true;\n t['Clarendon'] = true;\n t['Clearface'] = true;\n t['Cochin'] = true;\n t['Colonna'] = true;\n t['Computer Modern'] = true;\n t['Concrete Roman'] = true;\n t['Constantia'] = true;\n t['Cooper Black'] = true;\n t['Corona'] = true;\n t['Ecotype'] = true;\n t['Egyptienne'] = true;\n t['Elephant'] = true;\n t['Excelsior'] = true;\n t['Fairfield'] = true;\n t['FF Scala'] = true;\n t['Folkard'] = true;\n t['Footlight'] = true;\n t['FreeSerif'] = true;\n t['Friz Quadrata'] = true;\n t['Garamond'] = true;\n t['Gentium'] = true;\n t['Georgia'] = true;\n t['Gloucester'] = true;\n t['Goudy Old Style'] = true;\n t['Goudy Schoolbook'] = true;\n t['Goudy Pro Font'] = true;\n t['Granjon'] = true;\n t['Guardian Egyptian'] = true;\n t['Heather'] = true;\n t['Hercules'] = true;\n t['High Tower Text'] = true;\n t['Hiroshige'] = true;\n t['Hoefler Text'] = true;\n t['Humana Serif'] = true;\n t['Imprint'] = true;\n t['Ionic No. 5'] = true;\n t['Janson'] = true;\n t['Joanna'] = true;\n t['Korinna'] = true;\n t['Lexicon'] = true;\n t['Liberation Serif'] = true;\n t['Linux Libertine'] = true;\n t['Literaturnaya'] = true;\n t['Lucida'] = true;\n t['Lucida Bright'] = true;\n t['Melior'] = true;\n t['Memphis'] = true;\n t['Miller'] = true;\n t['Minion'] = true;\n t['Modern'] = true;\n t['Mona Lisa'] = true;\n t['Mrs Eaves'] = true;\n t['MS Serif'] = true;\n t['Museo Slab'] = true;\n t['New York'] = true;\n t['Nimbus Roman'] = true;\n t['NPS Rawlinson Roadway'] = true;\n t['NuptialScript'] = true;\n t['Palatino'] = true;\n t['Perpetua'] = true;\n t['Plantin'] = true;\n t['Plantin Schoolbook'] = true;\n t['Playbill'] = true;\n t['Poor Richard'] = true;\n t['Rawlinson Roadway'] = true;\n t['Renault'] = true;\n t['Requiem'] = true;\n t['Rockwell'] = true;\n t['Roman'] = true;\n t['Rotis Serif'] = true;\n t['Sabon'] = true;\n t['Scala'] = true;\n t['Seagull'] = true;\n t['Sistina'] = true;\n t['Souvenir'] = true;\n t['STIX'] = true;\n t['Stone Informal'] = true;\n t['Stone Serif'] = true;\n t['Sylfaen'] = true;\n t['Times'] = true;\n t['Trajan'] = true;\n t['Trinité'] = true;\n t['Trump Mediaeval'] = true;\n t['Utopia'] = true;\n t['Vale Type'] = true;\n t['Bitstream Vera'] = true;\n t['Vera Serif'] = true;\n t['Versailles'] = true;\n t['Wanted'] = true;\n t['Weiss'] = true;\n t['Wide Latin'] = true;\n t['Windsor'] = true;\n t['XITS'] = true;\n});\nvar getSymbolsFonts = (0, _util.getLookupTableFactory)(function (t) {\n t['Dingbats'] = true;\n t['Symbol'] = true;\n t['ZapfDingbats'] = true;\n});\nvar getGlyphMapForStandardFonts = (0, _util.getLookupTableFactory)(function (t) {\n t[2] = 10;\n t[3] = 32;\n t[4] = 33;\n t[5] = 34;\n t[6] = 35;\n t[7] = 36;\n t[8] = 37;\n t[9] = 38;\n t[10] = 39;\n t[11] = 40;\n t[12] = 41;\n t[13] = 42;\n t[14] = 43;\n t[15] = 44;\n t[16] = 45;\n t[17] = 46;\n t[18] = 47;\n t[19] = 48;\n t[20] = 49;\n t[21] = 50;\n t[22] = 51;\n t[23] = 52;\n t[24] = 53;\n t[25] = 54;\n t[26] = 55;\n t[27] = 56;\n t[28] = 57;\n t[29] = 58;\n t[30] = 894;\n t[31] = 60;\n t[32] = 61;\n t[33] = 62;\n t[34] = 63;\n t[35] = 64;\n t[36] = 65;\n t[37] = 66;\n t[38] = 67;\n t[39] = 68;\n t[40] = 69;\n t[41] = 70;\n t[42] = 71;\n t[43] = 72;\n t[44] = 73;\n t[45] = 74;\n t[46] = 75;\n t[47] = 76;\n t[48] = 77;\n t[49] = 78;\n t[50] = 79;\n t[51] = 80;\n t[52] = 81;\n t[53] = 82;\n t[54] = 83;\n t[55] = 84;\n t[56] = 85;\n t[57] = 86;\n t[58] = 87;\n t[59] = 88;\n t[60] = 89;\n t[61] = 90;\n t[62] = 91;\n t[63] = 92;\n t[64] = 93;\n t[65] = 94;\n t[66] = 95;\n t[67] = 96;\n t[68] = 97;\n t[69] = 98;\n t[70] = 99;\n t[71] = 100;\n t[72] = 101;\n t[73] = 102;\n t[74] = 103;\n t[75] = 104;\n t[76] = 105;\n t[77] = 106;\n t[78] = 107;\n t[79] = 108;\n t[80] = 109;\n t[81] = 110;\n t[82] = 111;\n t[83] = 112;\n t[84] = 113;\n t[85] = 114;\n t[86] = 115;\n t[87] = 116;\n t[88] = 117;\n t[89] = 118;\n t[90] = 119;\n t[91] = 120;\n t[92] = 121;\n t[93] = 122;\n t[94] = 123;\n t[95] = 124;\n t[96] = 125;\n t[97] = 126;\n t[98] = 196;\n t[99] = 197;\n t[100] = 199;\n t[101] = 201;\n t[102] = 209;\n t[103] = 214;\n t[104] = 220;\n t[105] = 225;\n t[106] = 224;\n t[107] = 226;\n t[108] = 228;\n t[109] = 227;\n t[110] = 229;\n t[111] = 231;\n t[112] = 233;\n t[113] = 232;\n t[114] = 234;\n t[115] = 235;\n t[116] = 237;\n t[117] = 236;\n t[118] = 238;\n t[119] = 239;\n t[120] = 241;\n t[121] = 243;\n t[122] = 242;\n t[123] = 244;\n t[124] = 246;\n t[125] = 245;\n t[126] = 250;\n t[127] = 249;\n t[128] = 251;\n t[129] = 252;\n t[130] = 8224;\n t[131] = 176;\n t[132] = 162;\n t[133] = 163;\n t[134] = 167;\n t[135] = 8226;\n t[136] = 182;\n t[137] = 223;\n t[138] = 174;\n t[139] = 169;\n t[140] = 8482;\n t[141] = 180;\n t[142] = 168;\n t[143] = 8800;\n t[144] = 198;\n t[145] = 216;\n t[146] = 8734;\n t[147] = 177;\n t[148] = 8804;\n t[149] = 8805;\n t[150] = 165;\n t[151] = 181;\n t[152] = 8706;\n t[153] = 8721;\n t[154] = 8719;\n t[156] = 8747;\n t[157] = 170;\n t[158] = 186;\n t[159] = 8486;\n t[160] = 230;\n t[161] = 248;\n t[162] = 191;\n t[163] = 161;\n t[164] = 172;\n t[165] = 8730;\n t[166] = 402;\n t[167] = 8776;\n t[168] = 8710;\n t[169] = 171;\n t[170] = 187;\n t[171] = 8230;\n t[210] = 218;\n t[223] = 711;\n t[224] = 321;\n t[225] = 322;\n t[227] = 353;\n t[229] = 382;\n t[234] = 253;\n t[252] = 263;\n t[253] = 268;\n t[254] = 269;\n t[258] = 258;\n t[260] = 260;\n t[261] = 261;\n t[265] = 280;\n t[266] = 281;\n t[268] = 283;\n t[269] = 313;\n t[275] = 323;\n t[276] = 324;\n t[278] = 328;\n t[284] = 345;\n t[285] = 346;\n t[286] = 347;\n t[292] = 367;\n t[295] = 377;\n t[296] = 378;\n t[298] = 380;\n t[305] = 963;\n t[306] = 964;\n t[307] = 966;\n t[308] = 8215;\n t[309] = 8252;\n t[310] = 8319;\n t[311] = 8359;\n t[312] = 8592;\n t[313] = 8593;\n t[337] = 9552;\n t[493] = 1039;\n t[494] = 1040;\n t[705] = 1524;\n t[706] = 8362;\n t[710] = 64288;\n t[711] = 64298;\n t[759] = 1617;\n t[761] = 1776;\n t[763] = 1778;\n t[775] = 1652;\n t[777] = 1764;\n t[778] = 1780;\n t[779] = 1781;\n t[780] = 1782;\n t[782] = 771;\n t[783] = 64726;\n t[786] = 8363;\n t[788] = 8532;\n t[790] = 768;\n t[791] = 769;\n t[792] = 768;\n t[795] = 803;\n t[797] = 64336;\n t[798] = 64337;\n t[799] = 64342;\n t[800] = 64343;\n t[801] = 64344;\n t[802] = 64345;\n t[803] = 64362;\n t[804] = 64363;\n t[805] = 64364;\n t[2424] = 7821;\n t[2425] = 7822;\n t[2426] = 7823;\n t[2427] = 7824;\n t[2428] = 7825;\n t[2429] = 7826;\n t[2430] = 7827;\n t[2433] = 7682;\n t[2678] = 8045;\n t[2679] = 8046;\n t[2830] = 1552;\n t[2838] = 686;\n t[2840] = 751;\n t[2842] = 753;\n t[2843] = 754;\n t[2844] = 755;\n t[2846] = 757;\n t[2856] = 767;\n t[2857] = 848;\n t[2858] = 849;\n t[2862] = 853;\n t[2863] = 854;\n t[2864] = 855;\n t[2865] = 861;\n t[2866] = 862;\n t[2906] = 7460;\n t[2908] = 7462;\n t[2909] = 7463;\n t[2910] = 7464;\n t[2912] = 7466;\n t[2913] = 7467;\n t[2914] = 7468;\n t[2916] = 7470;\n t[2917] = 7471;\n t[2918] = 7472;\n t[2920] = 7474;\n t[2921] = 7475;\n t[2922] = 7476;\n t[2924] = 7478;\n t[2925] = 7479;\n t[2926] = 7480;\n t[2928] = 7482;\n t[2929] = 7483;\n t[2930] = 7484;\n t[2932] = 7486;\n t[2933] = 7487;\n t[2934] = 7488;\n t[2936] = 7490;\n t[2937] = 7491;\n t[2938] = 7492;\n t[2940] = 7494;\n t[2941] = 7495;\n t[2942] = 7496;\n t[2944] = 7498;\n t[2946] = 7500;\n t[2948] = 7502;\n t[2950] = 7504;\n t[2951] = 7505;\n t[2952] = 7506;\n t[2954] = 7508;\n t[2955] = 7509;\n t[2956] = 7510;\n t[2958] = 7512;\n t[2959] = 7513;\n t[2960] = 7514;\n t[2962] = 7516;\n t[2963] = 7517;\n t[2964] = 7518;\n t[2966] = 7520;\n t[2967] = 7521;\n t[2968] = 7522;\n t[2970] = 7524;\n t[2971] = 7525;\n t[2972] = 7526;\n t[2974] = 7528;\n t[2975] = 7529;\n t[2976] = 7530;\n t[2978] = 1537;\n t[2979] = 1538;\n t[2980] = 1539;\n t[2982] = 1549;\n t[2983] = 1551;\n t[2984] = 1552;\n t[2986] = 1554;\n t[2987] = 1555;\n t[2988] = 1556;\n t[2990] = 1623;\n t[2991] = 1624;\n t[2995] = 1775;\n t[2999] = 1791;\n t[3002] = 64290;\n t[3003] = 64291;\n t[3004] = 64292;\n t[3006] = 64294;\n t[3007] = 64295;\n t[3008] = 64296;\n t[3011] = 1900;\n t[3014] = 8223;\n t[3015] = 8244;\n t[3017] = 7532;\n t[3018] = 7533;\n t[3019] = 7534;\n t[3075] = 7590;\n t[3076] = 7591;\n t[3079] = 7594;\n t[3080] = 7595;\n t[3083] = 7598;\n t[3084] = 7599;\n t[3087] = 7602;\n t[3088] = 7603;\n t[3091] = 7606;\n t[3092] = 7607;\n t[3095] = 7610;\n t[3096] = 7611;\n t[3099] = 7614;\n t[3100] = 7615;\n t[3103] = 7618;\n t[3104] = 7619;\n t[3107] = 8337;\n t[3108] = 8338;\n t[3116] = 1884;\n t[3119] = 1885;\n t[3120] = 1885;\n t[3123] = 1886;\n t[3124] = 1886;\n t[3127] = 1887;\n t[3128] = 1887;\n t[3131] = 1888;\n t[3132] = 1888;\n t[3135] = 1889;\n t[3136] = 1889;\n t[3139] = 1890;\n t[3140] = 1890;\n t[3143] = 1891;\n t[3144] = 1891;\n t[3147] = 1892;\n t[3148] = 1892;\n t[3153] = 580;\n t[3154] = 581;\n t[3157] = 584;\n t[3158] = 585;\n t[3161] = 588;\n t[3162] = 589;\n t[3165] = 891;\n t[3166] = 892;\n t[3169] = 1274;\n t[3170] = 1275;\n t[3173] = 1278;\n t[3174] = 1279;\n t[3181] = 7622;\n t[3182] = 7623;\n t[3282] = 11799;\n t[3316] = 578;\n t[3379] = 42785;\n t[3393] = 1159;\n t[3416] = 8377;\n});\nvar getSupplementalGlyphMapForArialBlack = (0, _util.getLookupTableFactory)(function (t) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n});\nexports.getStdFontMap = getStdFontMap;\nexports.getNonStdFontMap = getNonStdFontMap;\nexports.getSerifFonts = getSerifFonts;\nexports.getSymbolsFonts = getSymbolsFonts;\nexports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;\nexports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getLookupTableFactory = __w_pdfjs_require__(0).getLookupTableFactory;\nvar getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00A9;\n t[63193] = 0x00A9;\n t[63720] = 0x00AE;\n t[63194] = 0x00AE;\n t[63722] = 0x2122;\n t[63195] = 0x2122;\n t[63729] = 0x23A7;\n t[63730] = 0x23A8;\n t[63731] = 0x23A9;\n t[63740] = 0x23AB;\n t[63741] = 0x23AC;\n t[63742] = 0x23AD;\n t[63726] = 0x23A1;\n t[63727] = 0x23A2;\n t[63728] = 0x23A3;\n t[63737] = 0x23A4;\n t[63738] = 0x23A5;\n t[63739] = 0x23A6;\n t[63723] = 0x239B;\n t[63724] = 0x239C;\n t[63725] = 0x239D;\n t[63734] = 0x239E;\n t[63735] = 0x239F;\n t[63736] = 0x23A0;\n});\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xFFF0 && code <= 0xFFFF) {\n return 0;\n } else if (code >= 0xF600 && code <= 0xF8FF) {\n return getSpecialPUASymbols()[code] || code;\n }\n return code;\n}\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n var unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n if (name[0] === 'u') {\n var nameLen = name.length,\n hexStr;\n if (nameLen === 7 && name[1] === 'n' && name[2] === 'i') {\n hexStr = name.substr(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n hexStr = name.substr(1);\n } else {\n return -1;\n }\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n}\nvar UnicodeRanges = [{\n 'begin': 0x0000,\n 'end': 0x007F\n}, {\n 'begin': 0x0080,\n 'end': 0x00FF\n}, {\n 'begin': 0x0100,\n 'end': 0x017F\n}, {\n 'begin': 0x0180,\n 'end': 0x024F\n}, {\n 'begin': 0x0250,\n 'end': 0x02AF\n}, {\n 'begin': 0x02B0,\n 'end': 0x02FF\n}, {\n 'begin': 0x0300,\n 'end': 0x036F\n}, {\n 'begin': 0x0370,\n 'end': 0x03FF\n}, {\n 'begin': 0x2C80,\n 'end': 0x2CFF\n}, {\n 'begin': 0x0400,\n 'end': 0x04FF\n}, {\n 'begin': 0x0530,\n 'end': 0x058F\n}, {\n 'begin': 0x0590,\n 'end': 0x05FF\n}, {\n 'begin': 0xA500,\n 'end': 0xA63F\n}, {\n 'begin': 0x0600,\n 'end': 0x06FF\n}, {\n 'begin': 0x07C0,\n 'end': 0x07FF\n}, {\n 'begin': 0x0900,\n 'end': 0x097F\n}, {\n 'begin': 0x0980,\n 'end': 0x09FF\n}, {\n 'begin': 0x0A00,\n 'end': 0x0A7F\n}, {\n 'begin': 0x0A80,\n 'end': 0x0AFF\n}, {\n 'begin': 0x0B00,\n 'end': 0x0B7F\n}, {\n 'begin': 0x0B80,\n 'end': 0x0BFF\n}, {\n 'begin': 0x0C00,\n 'end': 0x0C7F\n}, {\n 'begin': 0x0C80,\n 'end': 0x0CFF\n}, {\n 'begin': 0x0D00,\n 'end': 0x0D7F\n}, {\n 'begin': 0x0E00,\n 'end': 0x0E7F\n}, {\n 'begin': 0x0E80,\n 'end': 0x0EFF\n}, {\n 'begin': 0x10A0,\n 'end': 0x10FF\n}, {\n 'begin': 0x1B00,\n 'end': 0x1B7F\n}, {\n 'begin': 0x1100,\n 'end': 0x11FF\n}, {\n 'begin': 0x1E00,\n 'end': 0x1EFF\n}, {\n 'begin': 0x1F00,\n 'end': 0x1FFF\n}, {\n 'begin': 0x2000,\n 'end': 0x206F\n}, {\n 'begin': 0x2070,\n 'end': 0x209F\n}, {\n 'begin': 0x20A0,\n 'end': 0x20CF\n}, {\n 'begin': 0x20D0,\n 'end': 0x20FF\n}, {\n 'begin': 0x2100,\n 'end': 0x214F\n}, {\n 'begin': 0x2150,\n 'end': 0x218F\n}, {\n 'begin': 0x2190,\n 'end': 0x21FF\n}, {\n 'begin': 0x2200,\n 'end': 0x22FF\n}, {\n 'begin': 0x2300,\n 'end': 0x23FF\n}, {\n 'begin': 0x2400,\n 'end': 0x243F\n}, {\n 'begin': 0x2440,\n 'end': 0x245F\n}, {\n 'begin': 0x2460,\n 'end': 0x24FF\n}, {\n 'begin': 0x2500,\n 'end': 0x257F\n}, {\n 'begin': 0x2580,\n 'end': 0x259F\n}, {\n 'begin': 0x25A0,\n 'end': 0x25FF\n}, {\n 'begin': 0x2600,\n 'end': 0x26FF\n}, {\n 'begin': 0x2700,\n 'end': 0x27BF\n}, {\n 'begin': 0x3000,\n 'end': 0x303F\n}, {\n 'begin': 0x3040,\n 'end': 0x309F\n}, {\n 'begin': 0x30A0,\n 'end': 0x30FF\n}, {\n 'begin': 0x3100,\n 'end': 0x312F\n}, {\n 'begin': 0x3130,\n 'end': 0x318F\n}, {\n 'begin': 0xA840,\n 'end': 0xA87F\n}, {\n 'begin': 0x3200,\n 'end': 0x32FF\n}, {\n 'begin': 0x3300,\n 'end': 0x33FF\n}, {\n 'begin': 0xAC00,\n 'end': 0xD7AF\n}, {\n 'begin': 0xD800,\n 'end': 0xDFFF\n}, {\n 'begin': 0x10900,\n 'end': 0x1091F\n}, {\n 'begin': 0x4E00,\n 'end': 0x9FFF\n}, {\n 'begin': 0xE000,\n 'end': 0xF8FF\n}, {\n 'begin': 0x31C0,\n 'end': 0x31EF\n}, {\n 'begin': 0xFB00,\n 'end': 0xFB4F\n}, {\n 'begin': 0xFB50,\n 'end': 0xFDFF\n}, {\n 'begin': 0xFE20,\n 'end': 0xFE2F\n}, {\n 'begin': 0xFE10,\n 'end': 0xFE1F\n}, {\n 'begin': 0xFE50,\n 'end': 0xFE6F\n}, {\n 'begin': 0xFE70,\n 'end': 0xFEFF\n}, {\n 'begin': 0xFF00,\n 'end': 0xFFEF\n}, {\n 'begin': 0xFFF0,\n 'end': 0xFFFF\n}, {\n 'begin': 0x0F00,\n 'end': 0x0FFF\n}, {\n 'begin': 0x0700,\n 'end': 0x074F\n}, {\n 'begin': 0x0780,\n 'end': 0x07BF\n}, {\n 'begin': 0x0D80,\n 'end': 0x0DFF\n}, {\n 'begin': 0x1000,\n 'end': 0x109F\n}, {\n 'begin': 0x1200,\n 'end': 0x137F\n}, {\n 'begin': 0x13A0,\n 'end': 0x13FF\n}, {\n 'begin': 0x1400,\n 'end': 0x167F\n}, {\n 'begin': 0x1680,\n 'end': 0x169F\n}, {\n 'begin': 0x16A0,\n 'end': 0x16FF\n}, {\n 'begin': 0x1780,\n 'end': 0x17FF\n}, {\n 'begin': 0x1800,\n 'end': 0x18AF\n}, {\n 'begin': 0x2800,\n 'end': 0x28FF\n}, {\n 'begin': 0xA000,\n 'end': 0xA48F\n}, {\n 'begin': 0x1700,\n 'end': 0x171F\n}, {\n 'begin': 0x10300,\n 'end': 0x1032F\n}, {\n 'begin': 0x10330,\n 'end': 0x1034F\n}, {\n 'begin': 0x10400,\n 'end': 0x1044F\n}, {\n 'begin': 0x1D000,\n 'end': 0x1D0FF\n}, {\n 'begin': 0x1D400,\n 'end': 0x1D7FF\n}, {\n 'begin': 0xFF000,\n 'end': 0xFFFFD\n}, {\n 'begin': 0xFE00,\n 'end': 0xFE0F\n}, {\n 'begin': 0xE0000,\n 'end': 0xE007F\n}, {\n 'begin': 0x1900,\n 'end': 0x194F\n}, {\n 'begin': 0x1950,\n 'end': 0x197F\n}, {\n 'begin': 0x1980,\n 'end': 0x19DF\n}, {\n 'begin': 0x1A00,\n 'end': 0x1A1F\n}, {\n 'begin': 0x2C00,\n 'end': 0x2C5F\n}, {\n 'begin': 0x2D30,\n 'end': 0x2D7F\n}, {\n 'begin': 0x4DC0,\n 'end': 0x4DFF\n}, {\n 'begin': 0xA800,\n 'end': 0xA82F\n}, {\n 'begin': 0x10000,\n 'end': 0x1007F\n}, {\n 'begin': 0x10140,\n 'end': 0x1018F\n}, {\n 'begin': 0x10380,\n 'end': 0x1039F\n}, {\n 'begin': 0x103A0,\n 'end': 0x103DF\n}, {\n 'begin': 0x10450,\n 'end': 0x1047F\n}, {\n 'begin': 0x10480,\n 'end': 0x104AF\n}, {\n 'begin': 0x10800,\n 'end': 0x1083F\n}, {\n 'begin': 0x10A00,\n 'end': 0x10A5F\n}, {\n 'begin': 0x1D300,\n 'end': 0x1D35F\n}, {\n 'begin': 0x12000,\n 'end': 0x123FF\n}, {\n 'begin': 0x1D360,\n 'end': 0x1D37F\n}, {\n 'begin': 0x1B80,\n 'end': 0x1BBF\n}, {\n 'begin': 0x1C00,\n 'end': 0x1C4F\n}, {\n 'begin': 0x1C50,\n 'end': 0x1C7F\n}, {\n 'begin': 0xA880,\n 'end': 0xA8DF\n}, {\n 'begin': 0xA900,\n 'end': 0xA92F\n}, {\n 'begin': 0xA930,\n 'end': 0xA95F\n}, {\n 'begin': 0xAA00,\n 'end': 0xAA5F\n}, {\n 'begin': 0x10190,\n 'end': 0x101CF\n}, {\n 'begin': 0x101D0,\n 'end': 0x101FF\n}, {\n 'begin': 0x102A0,\n 'end': 0x102DF\n}, {\n 'begin': 0x1F030,\n 'end': 0x1F09F\n}];\nfunction getUnicodeRangeFor(value) {\n for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n var range = UnicodeRanges[i];\n if (value >= range.begin && value < range.end) {\n return i;\n }\n }\n return -1;\n}\nfunction isRTLRangeFor(value) {\n var range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n return false;\n}\nvar getNormalizedUnicodes = getLookupTableFactory(function (t) {\n t['\\xA8'] = ' \\u0308';\n t['\\xAF'] = ' \\u0304';\n t['\\xB4'] = ' \\u0301';\n t['\\xB5'] = '\\u03BC';\n t['\\xB8'] = ' \\u0327';\n t['\\u0132'] = 'IJ';\n t['\\u0133'] = 'ij';\n t['\\u013F'] = 'L\\xB7';\n t['\\u0140'] = 'l\\xB7';\n t['\\u0149'] = '\\u02BCn';\n t['\\u017F'] = 's';\n t['\\u01C4'] = 'D\\u017D';\n t['\\u01C5'] = 'D\\u017E';\n t['\\u01C6'] = 'd\\u017E';\n t['\\u01C7'] = 'LJ';\n t['\\u01C8'] = 'Lj';\n t['\\u01C9'] = 'lj';\n t['\\u01CA'] = 'NJ';\n t['\\u01CB'] = 'Nj';\n t['\\u01CC'] = 'nj';\n t['\\u01F1'] = 'DZ';\n t['\\u01F2'] = 'Dz';\n t['\\u01F3'] = 'dz';\n t['\\u02D8'] = ' \\u0306';\n t['\\u02D9'] = ' \\u0307';\n t['\\u02DA'] = ' \\u030A';\n t['\\u02DB'] = ' \\u0328';\n t['\\u02DC'] = ' \\u0303';\n t['\\u02DD'] = ' \\u030B';\n t['\\u037A'] = ' \\u0345';\n t['\\u0384'] = ' \\u0301';\n t['\\u03D0'] = '\\u03B2';\n t['\\u03D1'] = '\\u03B8';\n t['\\u03D2'] = '\\u03A5';\n t['\\u03D5'] = '\\u03C6';\n t['\\u03D6'] = '\\u03C0';\n t['\\u03F0'] = '\\u03BA';\n t['\\u03F1'] = '\\u03C1';\n t['\\u03F2'] = '\\u03C2';\n t['\\u03F4'] = '\\u0398';\n t['\\u03F5'] = '\\u03B5';\n t['\\u03F9'] = '\\u03A3';\n t['\\u0587'] = '\\u0565\\u0582';\n t['\\u0675'] = '\\u0627\\u0674';\n t['\\u0676'] = '\\u0648\\u0674';\n t['\\u0677'] = '\\u06C7\\u0674';\n t['\\u0678'] = '\\u064A\\u0674';\n t['\\u0E33'] = '\\u0E4D\\u0E32';\n t['\\u0EB3'] = '\\u0ECD\\u0EB2';\n t['\\u0EDC'] = '\\u0EAB\\u0E99';\n t['\\u0EDD'] = '\\u0EAB\\u0EA1';\n t['\\u0F77'] = '\\u0FB2\\u0F81';\n t['\\u0F79'] = '\\u0FB3\\u0F81';\n t['\\u1E9A'] = 'a\\u02BE';\n t['\\u1FBD'] = ' \\u0313';\n t['\\u1FBF'] = ' \\u0313';\n t['\\u1FC0'] = ' \\u0342';\n t['\\u1FFE'] = ' \\u0314';\n t['\\u2002'] = ' ';\n t['\\u2003'] = ' ';\n t['\\u2004'] = ' ';\n t['\\u2005'] = ' ';\n t['\\u2006'] = ' ';\n t['\\u2008'] = ' ';\n t['\\u2009'] = ' ';\n t['\\u200A'] = ' ';\n t['\\u2017'] = ' \\u0333';\n t['\\u2024'] = '.';\n t['\\u2025'] = '..';\n t['\\u2026'] = '...';\n t['\\u2033'] = '\\u2032\\u2032';\n t['\\u2034'] = '\\u2032\\u2032\\u2032';\n t['\\u2036'] = '\\u2035\\u2035';\n t['\\u2037'] = '\\u2035\\u2035\\u2035';\n t['\\u203C'] = '!!';\n t['\\u203E'] = ' \\u0305';\n t['\\u2047'] = '??';\n t['\\u2048'] = '?!';\n t['\\u2049'] = '!?';\n t['\\u2057'] = '\\u2032\\u2032\\u2032\\u2032';\n t['\\u205F'] = ' ';\n t['\\u20A8'] = 'Rs';\n t['\\u2100'] = 'a/c';\n t['\\u2101'] = 'a/s';\n t['\\u2103'] = '\\xB0C';\n t['\\u2105'] = 'c/o';\n t['\\u2106'] = 'c/u';\n t['\\u2107'] = '\\u0190';\n t['\\u2109'] = '\\xB0F';\n t['\\u2116'] = 'No';\n t['\\u2121'] = 'TEL';\n t['\\u2135'] = '\\u05D0';\n t['\\u2136'] = '\\u05D1';\n t['\\u2137'] = '\\u05D2';\n t['\\u2138'] = '\\u05D3';\n t['\\u213B'] = 'FAX';\n t['\\u2160'] = 'I';\n t['\\u2161'] = 'II';\n t['\\u2162'] = 'III';\n t['\\u2163'] = 'IV';\n t['\\u2164'] = 'V';\n t['\\u2165'] = 'VI';\n t['\\u2166'] = 'VII';\n t['\\u2167'] = 'VIII';\n t['\\u2168'] = 'IX';\n t['\\u2169'] = 'X';\n t['\\u216A'] = 'XI';\n t['\\u216B'] = 'XII';\n t['\\u216C'] = 'L';\n t['\\u216D'] = 'C';\n t['\\u216E'] = 'D';\n t['\\u216F'] = 'M';\n t['\\u2170'] = 'i';\n t['\\u2171'] = 'ii';\n t['\\u2172'] = 'iii';\n t['\\u2173'] = 'iv';\n t['\\u2174'] = 'v';\n t['\\u2175'] = 'vi';\n t['\\u2176'] = 'vii';\n t['\\u2177'] = 'viii';\n t['\\u2178'] = 'ix';\n t['\\u2179'] = 'x';\n t['\\u217A'] = 'xi';\n t['\\u217B'] = 'xii';\n t['\\u217C'] = 'l';\n t['\\u217D'] = 'c';\n t['\\u217E'] = 'd';\n t['\\u217F'] = 'm';\n t['\\u222C'] = '\\u222B\\u222B';\n t['\\u222D'] = '\\u222B\\u222B\\u222B';\n t['\\u222F'] = '\\u222E\\u222E';\n t['\\u2230'] = '\\u222E\\u222E\\u222E';\n t['\\u2474'] = '(1)';\n t['\\u2475'] = '(2)';\n t['\\u2476'] = '(3)';\n t['\\u2477'] = '(4)';\n t['\\u2478'] = '(5)';\n t['\\u2479'] = '(6)';\n t['\\u247A'] = '(7)';\n t['\\u247B'] = '(8)';\n t['\\u247C'] = '(9)';\n t['\\u247D'] = '(10)';\n t['\\u247E'] = '(11)';\n t['\\u247F'] = '(12)';\n t['\\u2480'] = '(13)';\n t['\\u2481'] = '(14)';\n t['\\u2482'] = '(15)';\n t['\\u2483'] = '(16)';\n t['\\u2484'] = '(17)';\n t['\\u2485'] = '(18)';\n t['\\u2486'] = '(19)';\n t['\\u2487'] = '(20)';\n t['\\u2488'] = '1.';\n t['\\u2489'] = '2.';\n t['\\u248A'] = '3.';\n t['\\u248B'] = '4.';\n t['\\u248C'] = '5.';\n t['\\u248D'] = '6.';\n t['\\u248E'] = '7.';\n t['\\u248F'] = '8.';\n t['\\u2490'] = '9.';\n t['\\u2491'] = '10.';\n t['\\u2492'] = '11.';\n t['\\u2493'] = '12.';\n t['\\u2494'] = '13.';\n t['\\u2495'] = '14.';\n t['\\u2496'] = '15.';\n t['\\u2497'] = '16.';\n t['\\u2498'] = '17.';\n t['\\u2499'] = '18.';\n t['\\u249A'] = '19.';\n t['\\u249B'] = '20.';\n t['\\u249C'] = '(a)';\n t['\\u249D'] = '(b)';\n t['\\u249E'] = '(c)';\n t['\\u249F'] = '(d)';\n t['\\u24A0'] = '(e)';\n t['\\u24A1'] = '(f)';\n t['\\u24A2'] = '(g)';\n t['\\u24A3'] = '(h)';\n t['\\u24A4'] = '(i)';\n t['\\u24A5'] = '(j)';\n t['\\u24A6'] = '(k)';\n t['\\u24A7'] = '(l)';\n t['\\u24A8'] = '(m)';\n t['\\u24A9'] = '(n)';\n t['\\u24AA'] = '(o)';\n t['\\u24AB'] = '(p)';\n t['\\u24AC'] = '(q)';\n t['\\u24AD'] = '(r)';\n t['\\u24AE'] = '(s)';\n t['\\u24AF'] = '(t)';\n t['\\u24B0'] = '(u)';\n t['\\u24B1'] = '(v)';\n t['\\u24B2'] = '(w)';\n t['\\u24B3'] = '(x)';\n t['\\u24B4'] = '(y)';\n t['\\u24B5'] = '(z)';\n t['\\u2A0C'] = '\\u222B\\u222B\\u222B\\u222B';\n t['\\u2A74'] = '::=';\n t['\\u2A75'] = '==';\n t['\\u2A76'] = '===';\n t['\\u2E9F'] = '\\u6BCD';\n t['\\u2EF3'] = '\\u9F9F';\n t['\\u2F00'] = '\\u4E00';\n t['\\u2F01'] = '\\u4E28';\n t['\\u2F02'] = '\\u4E36';\n t['\\u2F03'] = '\\u4E3F';\n t['\\u2F04'] = '\\u4E59';\n t['\\u2F05'] = '\\u4E85';\n t['\\u2F06'] = '\\u4E8C';\n t['\\u2F07'] = '\\u4EA0';\n t['\\u2F08'] = '\\u4EBA';\n t['\\u2F09'] = '\\u513F';\n t['\\u2F0A'] = '\\u5165';\n t['\\u2F0B'] = '\\u516B';\n t['\\u2F0C'] = '\\u5182';\n t['\\u2F0D'] = '\\u5196';\n t['\\u2F0E'] = '\\u51AB';\n t['\\u2F0F'] = '\\u51E0';\n t['\\u2F10'] = '\\u51F5';\n t['\\u2F11'] = '\\u5200';\n t['\\u2F12'] = '\\u529B';\n t['\\u2F13'] = '\\u52F9';\n t['\\u2F14'] = '\\u5315';\n t['\\u2F15'] = '\\u531A';\n t['\\u2F16'] = '\\u5338';\n t['\\u2F17'] = '\\u5341';\n t['\\u2F18'] = '\\u535C';\n t['\\u2F19'] = '\\u5369';\n t['\\u2F1A'] = '\\u5382';\n t['\\u2F1B'] = '\\u53B6';\n t['\\u2F1C'] = '\\u53C8';\n t['\\u2F1D'] = '\\u53E3';\n t['\\u2F1E'] = '\\u56D7';\n t['\\u2F1F'] = '\\u571F';\n t['\\u2F20'] = '\\u58EB';\n t['\\u2F21'] = '\\u5902';\n t['\\u2F22'] = '\\u590A';\n t['\\u2F23'] = '\\u5915';\n t['\\u2F24'] = '\\u5927';\n t['\\u2F25'] = '\\u5973';\n t['\\u2F26'] = '\\u5B50';\n t['\\u2F27'] = '\\u5B80';\n t['\\u2F28'] = '\\u5BF8';\n t['\\u2F29'] = '\\u5C0F';\n t['\\u2F2A'] = '\\u5C22';\n t['\\u2F2B'] = '\\u5C38';\n t['\\u2F2C'] = '\\u5C6E';\n t['\\u2F2D'] = '\\u5C71';\n t['\\u2F2E'] = '\\u5DDB';\n t['\\u2F2F'] = '\\u5DE5';\n t['\\u2F30'] = '\\u5DF1';\n t['\\u2F31'] = '\\u5DFE';\n t['\\u2F32'] = '\\u5E72';\n t['\\u2F33'] = '\\u5E7A';\n t['\\u2F34'] = '\\u5E7F';\n t['\\u2F35'] = '\\u5EF4';\n t['\\u2F36'] = '\\u5EFE';\n t['\\u2F37'] = '\\u5F0B';\n t['\\u2F38'] = '\\u5F13';\n t['\\u2F39'] = '\\u5F50';\n t['\\u2F3A'] = '\\u5F61';\n t['\\u2F3B'] = '\\u5F73';\n t['\\u2F3C'] = '\\u5FC3';\n t['\\u2F3D'] = '\\u6208';\n t['\\u2F3E'] = '\\u6236';\n t['\\u2F3F'] = '\\u624B';\n t['\\u2F40'] = '\\u652F';\n t['\\u2F41'] = '\\u6534';\n t['\\u2F42'] = '\\u6587';\n t['\\u2F43'] = '\\u6597';\n t['\\u2F44'] = '\\u65A4';\n t['\\u2F45'] = '\\u65B9';\n t['\\u2F46'] = '\\u65E0';\n t['\\u2F47'] = '\\u65E5';\n t['\\u2F48'] = '\\u66F0';\n t['\\u2F49'] = '\\u6708';\n t['\\u2F4A'] = '\\u6728';\n t['\\u2F4B'] = '\\u6B20';\n t['\\u2F4C'] = '\\u6B62';\n t['\\u2F4D'] = '\\u6B79';\n t['\\u2F4E'] = '\\u6BB3';\n t['\\u2F4F'] = '\\u6BCB';\n t['\\u2F50'] = '\\u6BD4';\n t['\\u2F51'] = '\\u6BDB';\n t['\\u2F52'] = '\\u6C0F';\n t['\\u2F53'] = '\\u6C14';\n t['\\u2F54'] = '\\u6C34';\n t['\\u2F55'] = '\\u706B';\n t['\\u2F56'] = '\\u722A';\n t['\\u2F57'] = '\\u7236';\n t['\\u2F58'] = '\\u723B';\n t['\\u2F59'] = '\\u723F';\n t['\\u2F5A'] = '\\u7247';\n t['\\u2F5B'] = '\\u7259';\n t['\\u2F5C'] = '\\u725B';\n t['\\u2F5D'] = '\\u72AC';\n t['\\u2F5E'] = '\\u7384';\n t['\\u2F5F'] = '\\u7389';\n t['\\u2F60'] = '\\u74DC';\n t['\\u2F61'] = '\\u74E6';\n t['\\u2F62'] = '\\u7518';\n t['\\u2F63'] = '\\u751F';\n t['\\u2F64'] = '\\u7528';\n t['\\u2F65'] = '\\u7530';\n t['\\u2F66'] = '\\u758B';\n t['\\u2F67'] = '\\u7592';\n t['\\u2F68'] = '\\u7676';\n t['\\u2F69'] = '\\u767D';\n t['\\u2F6A'] = '\\u76AE';\n t['\\u2F6B'] = '\\u76BF';\n t['\\u2F6C'] = '\\u76EE';\n t['\\u2F6D'] = '\\u77DB';\n t['\\u2F6E'] = '\\u77E2';\n t['\\u2F6F'] = '\\u77F3';\n t['\\u2F70'] = '\\u793A';\n t['\\u2F71'] = '\\u79B8';\n t['\\u2F72'] = '\\u79BE';\n t['\\u2F73'] = '\\u7A74';\n t['\\u2F74'] = '\\u7ACB';\n t['\\u2F75'] = '\\u7AF9';\n t['\\u2F76'] = '\\u7C73';\n t['\\u2F77'] = '\\u7CF8';\n t['\\u2F78'] = '\\u7F36';\n t['\\u2F79'] = '\\u7F51';\n t['\\u2F7A'] = '\\u7F8A';\n t['\\u2F7B'] = '\\u7FBD';\n t['\\u2F7C'] = '\\u8001';\n t['\\u2F7D'] = '\\u800C';\n t['\\u2F7E'] = '\\u8012';\n t['\\u2F7F'] = '\\u8033';\n t['\\u2F80'] = '\\u807F';\n t['\\u2F81'] = '\\u8089';\n t['\\u2F82'] = '\\u81E3';\n t['\\u2F83'] = '\\u81EA';\n t['\\u2F84'] = '\\u81F3';\n t['\\u2F85'] = '\\u81FC';\n t['\\u2F86'] = '\\u820C';\n t['\\u2F87'] = '\\u821B';\n t['\\u2F88'] = '\\u821F';\n t['\\u2F89'] = '\\u826E';\n t['\\u2F8A'] = '\\u8272';\n t['\\u2F8B'] = '\\u8278';\n t['\\u2F8C'] = '\\u864D';\n t['\\u2F8D'] = '\\u866B';\n t['\\u2F8E'] = '\\u8840';\n t['\\u2F8F'] = '\\u884C';\n t['\\u2F90'] = '\\u8863';\n t['\\u2F91'] = '\\u897E';\n t['\\u2F92'] = '\\u898B';\n t['\\u2F93'] = '\\u89D2';\n t['\\u2F94'] = '\\u8A00';\n t['\\u2F95'] = '\\u8C37';\n t['\\u2F96'] = '\\u8C46';\n t['\\u2F97'] = '\\u8C55';\n t['\\u2F98'] = '\\u8C78';\n t['\\u2F99'] = '\\u8C9D';\n t['\\u2F9A'] = '\\u8D64';\n t['\\u2F9B'] = '\\u8D70';\n t['\\u2F9C'] = '\\u8DB3';\n t['\\u2F9D'] = '\\u8EAB';\n t['\\u2F9E'] = '\\u8ECA';\n t['\\u2F9F'] = '\\u8F9B';\n t['\\u2FA0'] = '\\u8FB0';\n t['\\u2FA1'] = '\\u8FB5';\n t['\\u2FA2'] = '\\u9091';\n t['\\u2FA3'] = '\\u9149';\n t['\\u2FA4'] = '\\u91C6';\n t['\\u2FA5'] = '\\u91CC';\n t['\\u2FA6'] = '\\u91D1';\n t['\\u2FA7'] = '\\u9577';\n t['\\u2FA8'] = '\\u9580';\n t['\\u2FA9'] = '\\u961C';\n t['\\u2FAA'] = '\\u96B6';\n t['\\u2FAB'] = '\\u96B9';\n t['\\u2FAC'] = '\\u96E8';\n t['\\u2FAD'] = '\\u9751';\n t['\\u2FAE'] = '\\u975E';\n t['\\u2FAF'] = '\\u9762';\n t['\\u2FB0'] = '\\u9769';\n t['\\u2FB1'] = '\\u97CB';\n t['\\u2FB2'] = '\\u97ED';\n t['\\u2FB3'] = '\\u97F3';\n t['\\u2FB4'] = '\\u9801';\n t['\\u2FB5'] = '\\u98A8';\n t['\\u2FB6'] = '\\u98DB';\n t['\\u2FB7'] = '\\u98DF';\n t['\\u2FB8'] = '\\u9996';\n t['\\u2FB9'] = '\\u9999';\n t['\\u2FBA'] = '\\u99AC';\n t['\\u2FBB'] = '\\u9AA8';\n t['\\u2FBC'] = '\\u9AD8';\n t['\\u2FBD'] = '\\u9ADF';\n t['\\u2FBE'] = '\\u9B25';\n t['\\u2FBF'] = '\\u9B2F';\n t['\\u2FC0'] = '\\u9B32';\n t['\\u2FC1'] = '\\u9B3C';\n t['\\u2FC2'] = '\\u9B5A';\n t['\\u2FC3'] = '\\u9CE5';\n t['\\u2FC4'] = '\\u9E75';\n t['\\u2FC5'] = '\\u9E7F';\n t['\\u2FC6'] = '\\u9EA5';\n t['\\u2FC7'] = '\\u9EBB';\n t['\\u2FC8'] = '\\u9EC3';\n t['\\u2FC9'] = '\\u9ECD';\n t['\\u2FCA'] = '\\u9ED1';\n t['\\u2FCB'] = '\\u9EF9';\n t['\\u2FCC'] = '\\u9EFD';\n t['\\u2FCD'] = '\\u9F0E';\n t['\\u2FCE'] = '\\u9F13';\n t['\\u2FCF'] = '\\u9F20';\n t['\\u2FD0'] = '\\u9F3B';\n t['\\u2FD1'] = '\\u9F4A';\n t['\\u2FD2'] = '\\u9F52';\n t['\\u2FD3'] = '\\u9F8D';\n t['\\u2FD4'] = '\\u9F9C';\n t['\\u2FD5'] = '\\u9FA0';\n t['\\u3036'] = '\\u3012';\n t['\\u3038'] = '\\u5341';\n t['\\u3039'] = '\\u5344';\n t['\\u303A'] = '\\u5345';\n t['\\u309B'] = ' \\u3099';\n t['\\u309C'] = ' \\u309A';\n t['\\u3131'] = '\\u1100';\n t['\\u3132'] = '\\u1101';\n t['\\u3133'] = '\\u11AA';\n t['\\u3134'] = '\\u1102';\n t['\\u3135'] = '\\u11AC';\n t['\\u3136'] = '\\u11AD';\n t['\\u3137'] = '\\u1103';\n t['\\u3138'] = '\\u1104';\n t['\\u3139'] = '\\u1105';\n t['\\u313A'] = '\\u11B0';\n t['\\u313B'] = '\\u11B1';\n t['\\u313C'] = '\\u11B2';\n t['\\u313D'] = '\\u11B3';\n t['\\u313E'] = '\\u11B4';\n t['\\u313F'] = '\\u11B5';\n t['\\u3140'] = '\\u111A';\n t['\\u3141'] = '\\u1106';\n t['\\u3142'] = '\\u1107';\n t['\\u3143'] = '\\u1108';\n t['\\u3144'] = '\\u1121';\n t['\\u3145'] = '\\u1109';\n t['\\u3146'] = '\\u110A';\n t['\\u3147'] = '\\u110B';\n t['\\u3148'] = '\\u110C';\n t['\\u3149'] = '\\u110D';\n t['\\u314A'] = '\\u110E';\n t['\\u314B'] = '\\u110F';\n t['\\u314C'] = '\\u1110';\n t['\\u314D'] = '\\u1111';\n t['\\u314E'] = '\\u1112';\n t['\\u314F'] = '\\u1161';\n t['\\u3150'] = '\\u1162';\n t['\\u3151'] = '\\u1163';\n t['\\u3152'] = '\\u1164';\n t['\\u3153'] = '\\u1165';\n t['\\u3154'] = '\\u1166';\n t['\\u3155'] = '\\u1167';\n t['\\u3156'] = '\\u1168';\n t['\\u3157'] = '\\u1169';\n t['\\u3158'] = '\\u116A';\n t['\\u3159'] = '\\u116B';\n t['\\u315A'] = '\\u116C';\n t['\\u315B'] = '\\u116D';\n t['\\u315C'] = '\\u116E';\n t['\\u315D'] = '\\u116F';\n t['\\u315E'] = '\\u1170';\n t['\\u315F'] = '\\u1171';\n t['\\u3160'] = '\\u1172';\n t['\\u3161'] = '\\u1173';\n t['\\u3162'] = '\\u1174';\n t['\\u3163'] = '\\u1175';\n t['\\u3164'] = '\\u1160';\n t['\\u3165'] = '\\u1114';\n t['\\u3166'] = '\\u1115';\n t['\\u3167'] = '\\u11C7';\n t['\\u3168'] = '\\u11C8';\n t['\\u3169'] = '\\u11CC';\n t['\\u316A'] = '\\u11CE';\n t['\\u316B'] = '\\u11D3';\n t['\\u316C'] = '\\u11D7';\n t['\\u316D'] = '\\u11D9';\n t['\\u316E'] = '\\u111C';\n t['\\u316F'] = '\\u11DD';\n t['\\u3170'] = '\\u11DF';\n t['\\u3171'] = '\\u111D';\n t['\\u3172'] = '\\u111E';\n t['\\u3173'] = '\\u1120';\n t['\\u3174'] = '\\u1122';\n t['\\u3175'] = '\\u1123';\n t['\\u3176'] = '\\u1127';\n t['\\u3177'] = '\\u1129';\n t['\\u3178'] = '\\u112B';\n t['\\u3179'] = '\\u112C';\n t['\\u317A'] = '\\u112D';\n t['\\u317B'] = '\\u112E';\n t['\\u317C'] = '\\u112F';\n t['\\u317D'] = '\\u1132';\n t['\\u317E'] = '\\u1136';\n t['\\u317F'] = '\\u1140';\n t['\\u3180'] = '\\u1147';\n t['\\u3181'] = '\\u114C';\n t['\\u3182'] = '\\u11F1';\n t['\\u3183'] = '\\u11F2';\n t['\\u3184'] = '\\u1157';\n t['\\u3185'] = '\\u1158';\n t['\\u3186'] = '\\u1159';\n t['\\u3187'] = '\\u1184';\n t['\\u3188'] = '\\u1185';\n t['\\u3189'] = '\\u1188';\n t['\\u318A'] = '\\u1191';\n t['\\u318B'] = '\\u1192';\n t['\\u318C'] = '\\u1194';\n t['\\u318D'] = '\\u119E';\n t['\\u318E'] = '\\u11A1';\n t['\\u3200'] = '(\\u1100)';\n t['\\u3201'] = '(\\u1102)';\n t['\\u3202'] = '(\\u1103)';\n t['\\u3203'] = '(\\u1105)';\n t['\\u3204'] = '(\\u1106)';\n t['\\u3205'] = '(\\u1107)';\n t['\\u3206'] = '(\\u1109)';\n t['\\u3207'] = '(\\u110B)';\n t['\\u3208'] = '(\\u110C)';\n t['\\u3209'] = '(\\u110E)';\n t['\\u320A'] = '(\\u110F)';\n t['\\u320B'] = '(\\u1110)';\n t['\\u320C'] = '(\\u1111)';\n t['\\u320D'] = '(\\u1112)';\n t['\\u320E'] = '(\\u1100\\u1161)';\n t['\\u320F'] = '(\\u1102\\u1161)';\n t['\\u3210'] = '(\\u1103\\u1161)';\n t['\\u3211'] = '(\\u1105\\u1161)';\n t['\\u3212'] = '(\\u1106\\u1161)';\n t['\\u3213'] = '(\\u1107\\u1161)';\n t['\\u3214'] = '(\\u1109\\u1161)';\n t['\\u3215'] = '(\\u110B\\u1161)';\n t['\\u3216'] = '(\\u110C\\u1161)';\n t['\\u3217'] = '(\\u110E\\u1161)';\n t['\\u3218'] = '(\\u110F\\u1161)';\n t['\\u3219'] = '(\\u1110\\u1161)';\n t['\\u321A'] = '(\\u1111\\u1161)';\n t['\\u321B'] = '(\\u1112\\u1161)';\n t['\\u321C'] = '(\\u110C\\u116E)';\n t['\\u321D'] = '(\\u110B\\u1169\\u110C\\u1165\\u11AB)';\n t['\\u321E'] = '(\\u110B\\u1169\\u1112\\u116E)';\n t['\\u3220'] = '(\\u4E00)';\n t['\\u3221'] = '(\\u4E8C)';\n t['\\u3222'] = '(\\u4E09)';\n t['\\u3223'] = '(\\u56DB)';\n t['\\u3224'] = '(\\u4E94)';\n t['\\u3225'] = '(\\u516D)';\n t['\\u3226'] = '(\\u4E03)';\n t['\\u3227'] = '(\\u516B)';\n t['\\u3228'] = '(\\u4E5D)';\n t['\\u3229'] = '(\\u5341)';\n t['\\u322A'] = '(\\u6708)';\n t['\\u322B'] = '(\\u706B)';\n t['\\u322C'] = '(\\u6C34)';\n t['\\u322D'] = '(\\u6728)';\n t['\\u322E'] = '(\\u91D1)';\n t['\\u322F'] = '(\\u571F)';\n t['\\u3230'] = '(\\u65E5)';\n t['\\u3231'] = '(\\u682A)';\n t['\\u3232'] = '(\\u6709)';\n t['\\u3233'] = '(\\u793E)';\n t['\\u3234'] = '(\\u540D)';\n t['\\u3235'] = '(\\u7279)';\n t['\\u3236'] = '(\\u8CA1)';\n t['\\u3237'] = '(\\u795D)';\n t['\\u3238'] = '(\\u52B4)';\n t['\\u3239'] = '(\\u4EE3)';\n t['\\u323A'] = '(\\u547C)';\n t['\\u323B'] = '(\\u5B66)';\n t['\\u323C'] = '(\\u76E3)';\n t['\\u323D'] = '(\\u4F01)';\n t['\\u323E'] = '(\\u8CC7)';\n t['\\u323F'] = '(\\u5354)';\n t['\\u3240'] = '(\\u796D)';\n t['\\u3241'] = '(\\u4F11)';\n t['\\u3242'] = '(\\u81EA)';\n t['\\u3243'] = '(\\u81F3)';\n t['\\u32C0'] = '1\\u6708';\n t['\\u32C1'] = '2\\u6708';\n t['\\u32C2'] = '3\\u6708';\n t['\\u32C3'] = '4\\u6708';\n t['\\u32C4'] = '5\\u6708';\n t['\\u32C5'] = '6\\u6708';\n t['\\u32C6'] = '7\\u6708';\n t['\\u32C7'] = '8\\u6708';\n t['\\u32C8'] = '9\\u6708';\n t['\\u32C9'] = '10\\u6708';\n t['\\u32CA'] = '11\\u6708';\n t['\\u32CB'] = '12\\u6708';\n t['\\u3358'] = '0\\u70B9';\n t['\\u3359'] = '1\\u70B9';\n t['\\u335A'] = '2\\u70B9';\n t['\\u335B'] = '3\\u70B9';\n t['\\u335C'] = '4\\u70B9';\n t['\\u335D'] = '5\\u70B9';\n t['\\u335E'] = '6\\u70B9';\n t['\\u335F'] = '7\\u70B9';\n t['\\u3360'] = '8\\u70B9';\n t['\\u3361'] = '9\\u70B9';\n t['\\u3362'] = '10\\u70B9';\n t['\\u3363'] = '11\\u70B9';\n t['\\u3364'] = '12\\u70B9';\n t['\\u3365'] = '13\\u70B9';\n t['\\u3366'] = '14\\u70B9';\n t['\\u3367'] = '15\\u70B9';\n t['\\u3368'] = '16\\u70B9';\n t['\\u3369'] = '17\\u70B9';\n t['\\u336A'] = '18\\u70B9';\n t['\\u336B'] = '19\\u70B9';\n t['\\u336C'] = '20\\u70B9';\n t['\\u336D'] = '21\\u70B9';\n t['\\u336E'] = '22\\u70B9';\n t['\\u336F'] = '23\\u70B9';\n t['\\u3370'] = '24\\u70B9';\n t['\\u33E0'] = '1\\u65E5';\n t['\\u33E1'] = '2\\u65E5';\n t['\\u33E2'] = '3\\u65E5';\n t['\\u33E3'] = '4\\u65E5';\n t['\\u33E4'] = '5\\u65E5';\n t['\\u33E5'] = '6\\u65E5';\n t['\\u33E6'] = '7\\u65E5';\n t['\\u33E7'] = '8\\u65E5';\n t['\\u33E8'] = '9\\u65E5';\n t['\\u33E9'] = '10\\u65E5';\n t['\\u33EA'] = '11\\u65E5';\n t['\\u33EB'] = '12\\u65E5';\n t['\\u33EC'] = '13\\u65E5';\n t['\\u33ED'] = '14\\u65E5';\n t['\\u33EE'] = '15\\u65E5';\n t['\\u33EF'] = '16\\u65E5';\n t['\\u33F0'] = '17\\u65E5';\n t['\\u33F1'] = '18\\u65E5';\n t['\\u33F2'] = '19\\u65E5';\n t['\\u33F3'] = '20\\u65E5';\n t['\\u33F4'] = '21\\u65E5';\n t['\\u33F5'] = '22\\u65E5';\n t['\\u33F6'] = '23\\u65E5';\n t['\\u33F7'] = '24\\u65E5';\n t['\\u33F8'] = '25\\u65E5';\n t['\\u33F9'] = '26\\u65E5';\n t['\\u33FA'] = '27\\u65E5';\n t['\\u33FB'] = '28\\u65E5';\n t['\\u33FC'] = '29\\u65E5';\n t['\\u33FD'] = '30\\u65E5';\n t['\\u33FE'] = '31\\u65E5';\n t['\\uFB00'] = 'ff';\n t['\\uFB01'] = 'fi';\n t['\\uFB02'] = 'fl';\n t['\\uFB03'] = 'ffi';\n t['\\uFB04'] = 'ffl';\n t['\\uFB05'] = '\\u017Ft';\n t['\\uFB06'] = 'st';\n t['\\uFB13'] = '\\u0574\\u0576';\n t['\\uFB14'] = '\\u0574\\u0565';\n t['\\uFB15'] = '\\u0574\\u056B';\n t['\\uFB16'] = '\\u057E\\u0576';\n t['\\uFB17'] = '\\u0574\\u056D';\n t['\\uFB4F'] = '\\u05D0\\u05DC';\n t['\\uFB50'] = '\\u0671';\n t['\\uFB51'] = '\\u0671';\n t['\\uFB52'] = '\\u067B';\n t['\\uFB53'] = '\\u067B';\n t['\\uFB54'] = '\\u067B';\n t['\\uFB55'] = '\\u067B';\n t['\\uFB56'] = '\\u067E';\n t['\\uFB57'] = '\\u067E';\n t['\\uFB58'] = '\\u067E';\n t['\\uFB59'] = '\\u067E';\n t['\\uFB5A'] = '\\u0680';\n t['\\uFB5B'] = '\\u0680';\n t['\\uFB5C'] = '\\u0680';\n t['\\uFB5D'] = '\\u0680';\n t['\\uFB5E'] = '\\u067A';\n t['\\uFB5F'] = '\\u067A';\n t['\\uFB60'] = '\\u067A';\n t['\\uFB61'] = '\\u067A';\n t['\\uFB62'] = '\\u067F';\n t['\\uFB63'] = '\\u067F';\n t['\\uFB64'] = '\\u067F';\n t['\\uFB65'] = '\\u067F';\n t['\\uFB66'] = '\\u0679';\n t['\\uFB67'] = '\\u0679';\n t['\\uFB68'] = '\\u0679';\n t['\\uFB69'] = '\\u0679';\n t['\\uFB6A'] = '\\u06A4';\n t['\\uFB6B'] = '\\u06A4';\n t['\\uFB6C'] = '\\u06A4';\n t['\\uFB6D'] = '\\u06A4';\n t['\\uFB6E'] = '\\u06A6';\n t['\\uFB6F'] = '\\u06A6';\n t['\\uFB70'] = '\\u06A6';\n t['\\uFB71'] = '\\u06A6';\n t['\\uFB72'] = '\\u0684';\n t['\\uFB73'] = '\\u0684';\n t['\\uFB74'] = '\\u0684';\n t['\\uFB75'] = '\\u0684';\n t['\\uFB76'] = '\\u0683';\n t['\\uFB77'] = '\\u0683';\n t['\\uFB78'] = '\\u0683';\n t['\\uFB79'] = '\\u0683';\n t['\\uFB7A'] = '\\u0686';\n t['\\uFB7B'] = '\\u0686';\n t['\\uFB7C'] = '\\u0686';\n t['\\uFB7D'] = '\\u0686';\n t['\\uFB7E'] = '\\u0687';\n t['\\uFB7F'] = '\\u0687';\n t['\\uFB80'] = '\\u0687';\n t['\\uFB81'] = '\\u0687';\n t['\\uFB82'] = '\\u068D';\n t['\\uFB83'] = '\\u068D';\n t['\\uFB84'] = '\\u068C';\n t['\\uFB85'] = '\\u068C';\n t['\\uFB86'] = '\\u068E';\n t['\\uFB87'] = '\\u068E';\n t['\\uFB88'] = '\\u0688';\n t['\\uFB89'] = '\\u0688';\n t['\\uFB8A'] = '\\u0698';\n t['\\uFB8B'] = '\\u0698';\n t['\\uFB8C'] = '\\u0691';\n t['\\uFB8D'] = '\\u0691';\n t['\\uFB8E'] = '\\u06A9';\n t['\\uFB8F'] = '\\u06A9';\n t['\\uFB90'] = '\\u06A9';\n t['\\uFB91'] = '\\u06A9';\n t['\\uFB92'] = '\\u06AF';\n t['\\uFB93'] = '\\u06AF';\n t['\\uFB94'] = '\\u06AF';\n t['\\uFB95'] = '\\u06AF';\n t['\\uFB96'] = '\\u06B3';\n t['\\uFB97'] = '\\u06B3';\n t['\\uFB98'] = '\\u06B3';\n t['\\uFB99'] = '\\u06B3';\n t['\\uFB9A'] = '\\u06B1';\n t['\\uFB9B'] = '\\u06B1';\n t['\\uFB9C'] = '\\u06B1';\n t['\\uFB9D'] = '\\u06B1';\n t['\\uFB9E'] = '\\u06BA';\n t['\\uFB9F'] = '\\u06BA';\n t['\\uFBA0'] = '\\u06BB';\n t['\\uFBA1'] = '\\u06BB';\n t['\\uFBA2'] = '\\u06BB';\n t['\\uFBA3'] = '\\u06BB';\n t['\\uFBA4'] = '\\u06C0';\n t['\\uFBA5'] = '\\u06C0';\n t['\\uFBA6'] = '\\u06C1';\n t['\\uFBA7'] = '\\u06C1';\n t['\\uFBA8'] = '\\u06C1';\n t['\\uFBA9'] = '\\u06C1';\n t['\\uFBAA'] = '\\u06BE';\n t['\\uFBAB'] = '\\u06BE';\n t['\\uFBAC'] = '\\u06BE';\n t['\\uFBAD'] = '\\u06BE';\n t['\\uFBAE'] = '\\u06D2';\n t['\\uFBAF'] = '\\u06D2';\n t['\\uFBB0'] = '\\u06D3';\n t['\\uFBB1'] = '\\u06D3';\n t['\\uFBD3'] = '\\u06AD';\n t['\\uFBD4'] = '\\u06AD';\n t['\\uFBD5'] = '\\u06AD';\n t['\\uFBD6'] = '\\u06AD';\n t['\\uFBD7'] = '\\u06C7';\n t['\\uFBD8'] = '\\u06C7';\n t['\\uFBD9'] = '\\u06C6';\n t['\\uFBDA'] = '\\u06C6';\n t['\\uFBDB'] = '\\u06C8';\n t['\\uFBDC'] = '\\u06C8';\n t['\\uFBDD'] = '\\u0677';\n t['\\uFBDE'] = '\\u06CB';\n t['\\uFBDF'] = '\\u06CB';\n t['\\uFBE0'] = '\\u06C5';\n t['\\uFBE1'] = '\\u06C5';\n t['\\uFBE2'] = '\\u06C9';\n t['\\uFBE3'] = '\\u06C9';\n t['\\uFBE4'] = '\\u06D0';\n t['\\uFBE5'] = '\\u06D0';\n t['\\uFBE6'] = '\\u06D0';\n t['\\uFBE7'] = '\\u06D0';\n t['\\uFBE8'] = '\\u0649';\n t['\\uFBE9'] = '\\u0649';\n t['\\uFBEA'] = '\\u0626\\u0627';\n t['\\uFBEB'] = '\\u0626\\u0627';\n t['\\uFBEC'] = '\\u0626\\u06D5';\n t['\\uFBED'] = '\\u0626\\u06D5';\n t['\\uFBEE'] = '\\u0626\\u0648';\n t['\\uFBEF'] = '\\u0626\\u0648';\n t['\\uFBF0'] = '\\u0626\\u06C7';\n t['\\uFBF1'] = '\\u0626\\u06C7';\n t['\\uFBF2'] = '\\u0626\\u06C6';\n t['\\uFBF3'] = '\\u0626\\u06C6';\n t['\\uFBF4'] = '\\u0626\\u06C8';\n t['\\uFBF5'] = '\\u0626\\u06C8';\n t['\\uFBF6'] = '\\u0626\\u06D0';\n t['\\uFBF7'] = '\\u0626\\u06D0';\n t['\\uFBF8'] = '\\u0626\\u06D0';\n t['\\uFBF9'] = '\\u0626\\u0649';\n t['\\uFBFA'] = '\\u0626\\u0649';\n t['\\uFBFB'] = '\\u0626\\u0649';\n t['\\uFBFC'] = '\\u06CC';\n t['\\uFBFD'] = '\\u06CC';\n t['\\uFBFE'] = '\\u06CC';\n t['\\uFBFF'] = '\\u06CC';\n t['\\uFC00'] = '\\u0626\\u062C';\n t['\\uFC01'] = '\\u0626\\u062D';\n t['\\uFC02'] = '\\u0626\\u0645';\n t['\\uFC03'] = '\\u0626\\u0649';\n t['\\uFC04'] = '\\u0626\\u064A';\n t['\\uFC05'] = '\\u0628\\u062C';\n t['\\uFC06'] = '\\u0628\\u062D';\n t['\\uFC07'] = '\\u0628\\u062E';\n t['\\uFC08'] = '\\u0628\\u0645';\n t['\\uFC09'] = '\\u0628\\u0649';\n t['\\uFC0A'] = '\\u0628\\u064A';\n t['\\uFC0B'] = '\\u062A\\u062C';\n t['\\uFC0C'] = '\\u062A\\u062D';\n t['\\uFC0D'] = '\\u062A\\u062E';\n t['\\uFC0E'] = '\\u062A\\u0645';\n t['\\uFC0F'] = '\\u062A\\u0649';\n t['\\uFC10'] = '\\u062A\\u064A';\n t['\\uFC11'] = '\\u062B\\u062C';\n t['\\uFC12'] = '\\u062B\\u0645';\n t['\\uFC13'] = '\\u062B\\u0649';\n t['\\uFC14'] = '\\u062B\\u064A';\n t['\\uFC15'] = '\\u062C\\u062D';\n t['\\uFC16'] = '\\u062C\\u0645';\n t['\\uFC17'] = '\\u062D\\u062C';\n t['\\uFC18'] = '\\u062D\\u0645';\n t['\\uFC19'] = '\\u062E\\u062C';\n t['\\uFC1A'] = '\\u062E\\u062D';\n t['\\uFC1B'] = '\\u062E\\u0645';\n t['\\uFC1C'] = '\\u0633\\u062C';\n t['\\uFC1D'] = '\\u0633\\u062D';\n t['\\uFC1E'] = '\\u0633\\u062E';\n t['\\uFC1F'] = '\\u0633\\u0645';\n t['\\uFC20'] = '\\u0635\\u062D';\n t['\\uFC21'] = '\\u0635\\u0645';\n t['\\uFC22'] = '\\u0636\\u062C';\n t['\\uFC23'] = '\\u0636\\u062D';\n t['\\uFC24'] = '\\u0636\\u062E';\n t['\\uFC25'] = '\\u0636\\u0645';\n t['\\uFC26'] = '\\u0637\\u062D';\n t['\\uFC27'] = '\\u0637\\u0645';\n t['\\uFC28'] = '\\u0638\\u0645';\n t['\\uFC29'] = '\\u0639\\u062C';\n t['\\uFC2A'] = '\\u0639\\u0645';\n t['\\uFC2B'] = '\\u063A\\u062C';\n t['\\uFC2C'] = '\\u063A\\u0645';\n t['\\uFC2D'] = '\\u0641\\u062C';\n t['\\uFC2E'] = '\\u0641\\u062D';\n t['\\uFC2F'] = '\\u0641\\u062E';\n t['\\uFC30'] = '\\u0641\\u0645';\n t['\\uFC31'] = '\\u0641\\u0649';\n t['\\uFC32'] = '\\u0641\\u064A';\n t['\\uFC33'] = '\\u0642\\u062D';\n t['\\uFC34'] = '\\u0642\\u0645';\n t['\\uFC35'] = '\\u0642\\u0649';\n t['\\uFC36'] = '\\u0642\\u064A';\n t['\\uFC37'] = '\\u0643\\u0627';\n t['\\uFC38'] = '\\u0643\\u062C';\n t['\\uFC39'] = '\\u0643\\u062D';\n t['\\uFC3A'] = '\\u0643\\u062E';\n t['\\uFC3B'] = '\\u0643\\u0644';\n t['\\uFC3C'] = '\\u0643\\u0645';\n t['\\uFC3D'] = '\\u0643\\u0649';\n t['\\uFC3E'] = '\\u0643\\u064A';\n t['\\uFC3F'] = '\\u0644\\u062C';\n t['\\uFC40'] = '\\u0644\\u062D';\n t['\\uFC41'] = '\\u0644\\u062E';\n t['\\uFC42'] = '\\u0644\\u0645';\n t['\\uFC43'] = '\\u0644\\u0649';\n t['\\uFC44'] = '\\u0644\\u064A';\n t['\\uFC45'] = '\\u0645\\u062C';\n t['\\uFC46'] = '\\u0645\\u062D';\n t['\\uFC47'] = '\\u0645\\u062E';\n t['\\uFC48'] = '\\u0645\\u0645';\n t['\\uFC49'] = '\\u0645\\u0649';\n t['\\uFC4A'] = '\\u0645\\u064A';\n t['\\uFC4B'] = '\\u0646\\u062C';\n t['\\uFC4C'] = '\\u0646\\u062D';\n t['\\uFC4D'] = '\\u0646\\u062E';\n t['\\uFC4E'] = '\\u0646\\u0645';\n t['\\uFC4F'] = '\\u0646\\u0649';\n t['\\uFC50'] = '\\u0646\\u064A';\n t['\\uFC51'] = '\\u0647\\u062C';\n t['\\uFC52'] = '\\u0647\\u0645';\n t['\\uFC53'] = '\\u0647\\u0649';\n t['\\uFC54'] = '\\u0647\\u064A';\n t['\\uFC55'] = '\\u064A\\u062C';\n t['\\uFC56'] = '\\u064A\\u062D';\n t['\\uFC57'] = '\\u064A\\u062E';\n t['\\uFC58'] = '\\u064A\\u0645';\n t['\\uFC59'] = '\\u064A\\u0649';\n t['\\uFC5A'] = '\\u064A\\u064A';\n t['\\uFC5B'] = '\\u0630\\u0670';\n t['\\uFC5C'] = '\\u0631\\u0670';\n t['\\uFC5D'] = '\\u0649\\u0670';\n t['\\uFC5E'] = ' \\u064C\\u0651';\n t['\\uFC5F'] = ' \\u064D\\u0651';\n t['\\uFC60'] = ' \\u064E\\u0651';\n t['\\uFC61'] = ' \\u064F\\u0651';\n t['\\uFC62'] = ' \\u0650\\u0651';\n t['\\uFC63'] = ' \\u0651\\u0670';\n t['\\uFC64'] = '\\u0626\\u0631';\n t['\\uFC65'] = '\\u0626\\u0632';\n t['\\uFC66'] = '\\u0626\\u0645';\n t['\\uFC67'] = '\\u0626\\u0646';\n t['\\uFC68'] = '\\u0626\\u0649';\n t['\\uFC69'] = '\\u0626\\u064A';\n t['\\uFC6A'] = '\\u0628\\u0631';\n t['\\uFC6B'] = '\\u0628\\u0632';\n t['\\uFC6C'] = '\\u0628\\u0645';\n t['\\uFC6D'] = '\\u0628\\u0646';\n t['\\uFC6E'] = '\\u0628\\u0649';\n t['\\uFC6F'] = '\\u0628\\u064A';\n t['\\uFC70'] = '\\u062A\\u0631';\n t['\\uFC71'] = '\\u062A\\u0632';\n t['\\uFC72'] = '\\u062A\\u0645';\n t['\\uFC73'] = '\\u062A\\u0646';\n t['\\uFC74'] = '\\u062A\\u0649';\n t['\\uFC75'] = '\\u062A\\u064A';\n t['\\uFC76'] = '\\u062B\\u0631';\n t['\\uFC77'] = '\\u062B\\u0632';\n t['\\uFC78'] = '\\u062B\\u0645';\n t['\\uFC79'] = '\\u062B\\u0646';\n t['\\uFC7A'] = '\\u062B\\u0649';\n t['\\uFC7B'] = '\\u062B\\u064A';\n t['\\uFC7C'] = '\\u0641\\u0649';\n t['\\uFC7D'] = '\\u0641\\u064A';\n t['\\uFC7E'] = '\\u0642\\u0649';\n t['\\uFC7F'] = '\\u0642\\u064A';\n t['\\uFC80'] = '\\u0643\\u0627';\n t['\\uFC81'] = '\\u0643\\u0644';\n t['\\uFC82'] = '\\u0643\\u0645';\n t['\\uFC83'] = '\\u0643\\u0649';\n t['\\uFC84'] = '\\u0643\\u064A';\n t['\\uFC85'] = '\\u0644\\u0645';\n t['\\uFC86'] = '\\u0644\\u0649';\n t['\\uFC87'] = '\\u0644\\u064A';\n t['\\uFC88'] = '\\u0645\\u0627';\n t['\\uFC89'] = '\\u0645\\u0645';\n t['\\uFC8A'] = '\\u0646\\u0631';\n t['\\uFC8B'] = '\\u0646\\u0632';\n t['\\uFC8C'] = '\\u0646\\u0645';\n t['\\uFC8D'] = '\\u0646\\u0646';\n t['\\uFC8E'] = '\\u0646\\u0649';\n t['\\uFC8F'] = '\\u0646\\u064A';\n t['\\uFC90'] = '\\u0649\\u0670';\n t['\\uFC91'] = '\\u064A\\u0631';\n t['\\uFC92'] = '\\u064A\\u0632';\n t['\\uFC93'] = '\\u064A\\u0645';\n t['\\uFC94'] = '\\u064A\\u0646';\n t['\\uFC95'] = '\\u064A\\u0649';\n t['\\uFC96'] = '\\u064A\\u064A';\n t['\\uFC97'] = '\\u0626\\u062C';\n t['\\uFC98'] = '\\u0626\\u062D';\n t['\\uFC99'] = '\\u0626\\u062E';\n t['\\uFC9A'] = '\\u0626\\u0645';\n t['\\uFC9B'] = '\\u0626\\u0647';\n t['\\uFC9C'] = '\\u0628\\u062C';\n t['\\uFC9D'] = '\\u0628\\u062D';\n t['\\uFC9E'] = '\\u0628\\u062E';\n t['\\uFC9F'] = '\\u0628\\u0645';\n t['\\uFCA0'] = '\\u0628\\u0647';\n t['\\uFCA1'] = '\\u062A\\u062C';\n t['\\uFCA2'] = '\\u062A\\u062D';\n t['\\uFCA3'] = '\\u062A\\u062E';\n t['\\uFCA4'] = '\\u062A\\u0645';\n t['\\uFCA5'] = '\\u062A\\u0647';\n t['\\uFCA6'] = '\\u062B\\u0645';\n t['\\uFCA7'] = '\\u062C\\u062D';\n t['\\uFCA8'] = '\\u062C\\u0645';\n t['\\uFCA9'] = '\\u062D\\u062C';\n t['\\uFCAA'] = '\\u062D\\u0645';\n t['\\uFCAB'] = '\\u062E\\u062C';\n t['\\uFCAC'] = '\\u062E\\u0645';\n t['\\uFCAD'] = '\\u0633\\u062C';\n t['\\uFCAE'] = '\\u0633\\u062D';\n t['\\uFCAF'] = '\\u0633\\u062E';\n t['\\uFCB0'] = '\\u0633\\u0645';\n t['\\uFCB1'] = '\\u0635\\u062D';\n t['\\uFCB2'] = '\\u0635\\u062E';\n t['\\uFCB3'] = '\\u0635\\u0645';\n t['\\uFCB4'] = '\\u0636\\u062C';\n t['\\uFCB5'] = '\\u0636\\u062D';\n t['\\uFCB6'] = '\\u0636\\u062E';\n t['\\uFCB7'] = '\\u0636\\u0645';\n t['\\uFCB8'] = '\\u0637\\u062D';\n t['\\uFCB9'] = '\\u0638\\u0645';\n t['\\uFCBA'] = '\\u0639\\u062C';\n t['\\uFCBB'] = '\\u0639\\u0645';\n t['\\uFCBC'] = '\\u063A\\u062C';\n t['\\uFCBD'] = '\\u063A\\u0645';\n t['\\uFCBE'] = '\\u0641\\u062C';\n t['\\uFCBF'] = '\\u0641\\u062D';\n t['\\uFCC0'] = '\\u0641\\u062E';\n t['\\uFCC1'] = '\\u0641\\u0645';\n t['\\uFCC2'] = '\\u0642\\u062D';\n t['\\uFCC3'] = '\\u0642\\u0645';\n t['\\uFCC4'] = '\\u0643\\u062C';\n t['\\uFCC5'] = '\\u0643\\u062D';\n t['\\uFCC6'] = '\\u0643\\u062E';\n t['\\uFCC7'] = '\\u0643\\u0644';\n t['\\uFCC8'] = '\\u0643\\u0645';\n t['\\uFCC9'] = '\\u0644\\u062C';\n t['\\uFCCA'] = '\\u0644\\u062D';\n t['\\uFCCB'] = '\\u0644\\u062E';\n t['\\uFCCC'] = '\\u0644\\u0645';\n t['\\uFCCD'] = '\\u0644\\u0647';\n t['\\uFCCE'] = '\\u0645\\u062C';\n t['\\uFCCF'] = '\\u0645\\u062D';\n t['\\uFCD0'] = '\\u0645\\u062E';\n t['\\uFCD1'] = '\\u0645\\u0645';\n t['\\uFCD2'] = '\\u0646\\u062C';\n t['\\uFCD3'] = '\\u0646\\u062D';\n t['\\uFCD4'] = '\\u0646\\u062E';\n t['\\uFCD5'] = '\\u0646\\u0645';\n t['\\uFCD6'] = '\\u0646\\u0647';\n t['\\uFCD7'] = '\\u0647\\u062C';\n t['\\uFCD8'] = '\\u0647\\u0645';\n t['\\uFCD9'] = '\\u0647\\u0670';\n t['\\uFCDA'] = '\\u064A\\u062C';\n t['\\uFCDB'] = '\\u064A\\u062D';\n t['\\uFCDC'] = '\\u064A\\u062E';\n t['\\uFCDD'] = '\\u064A\\u0645';\n t['\\uFCDE'] = '\\u064A\\u0647';\n t['\\uFCDF'] = '\\u0626\\u0645';\n t['\\uFCE0'] = '\\u0626\\u0647';\n t['\\uFCE1'] = '\\u0628\\u0645';\n t['\\uFCE2'] = '\\u0628\\u0647';\n t['\\uFCE3'] = '\\u062A\\u0645';\n t['\\uFCE4'] = '\\u062A\\u0647';\n t['\\uFCE5'] = '\\u062B\\u0645';\n t['\\uFCE6'] = '\\u062B\\u0647';\n t['\\uFCE7'] = '\\u0633\\u0645';\n t['\\uFCE8'] = '\\u0633\\u0647';\n t['\\uFCE9'] = '\\u0634\\u0645';\n t['\\uFCEA'] = '\\u0634\\u0647';\n t['\\uFCEB'] = '\\u0643\\u0644';\n t['\\uFCEC'] = '\\u0643\\u0645';\n t['\\uFCED'] = '\\u0644\\u0645';\n t['\\uFCEE'] = '\\u0646\\u0645';\n t['\\uFCEF'] = '\\u0646\\u0647';\n t['\\uFCF0'] = '\\u064A\\u0645';\n t['\\uFCF1'] = '\\u064A\\u0647';\n t['\\uFCF2'] = '\\u0640\\u064E\\u0651';\n t['\\uFCF3'] = '\\u0640\\u064F\\u0651';\n t['\\uFCF4'] = '\\u0640\\u0650\\u0651';\n t['\\uFCF5'] = '\\u0637\\u0649';\n t['\\uFCF6'] = '\\u0637\\u064A';\n t['\\uFCF7'] = '\\u0639\\u0649';\n t['\\uFCF8'] = '\\u0639\\u064A';\n t['\\uFCF9'] = '\\u063A\\u0649';\n t['\\uFCFA'] = '\\u063A\\u064A';\n t['\\uFCFB'] = '\\u0633\\u0649';\n t['\\uFCFC'] = '\\u0633\\u064A';\n t['\\uFCFD'] = '\\u0634\\u0649';\n t['\\uFCFE'] = '\\u0634\\u064A';\n t['\\uFCFF'] = '\\u062D\\u0649';\n t['\\uFD00'] = '\\u062D\\u064A';\n t['\\uFD01'] = '\\u062C\\u0649';\n t['\\uFD02'] = '\\u062C\\u064A';\n t['\\uFD03'] = '\\u062E\\u0649';\n t['\\uFD04'] = '\\u062E\\u064A';\n t['\\uFD05'] = '\\u0635\\u0649';\n t['\\uFD06'] = '\\u0635\\u064A';\n t['\\uFD07'] = '\\u0636\\u0649';\n t['\\uFD08'] = '\\u0636\\u064A';\n t['\\uFD09'] = '\\u0634\\u062C';\n t['\\uFD0A'] = '\\u0634\\u062D';\n t['\\uFD0B'] = '\\u0634\\u062E';\n t['\\uFD0C'] = '\\u0634\\u0645';\n t['\\uFD0D'] = '\\u0634\\u0631';\n t['\\uFD0E'] = '\\u0633\\u0631';\n t['\\uFD0F'] = '\\u0635\\u0631';\n t['\\uFD10'] = '\\u0636\\u0631';\n t['\\uFD11'] = '\\u0637\\u0649';\n t['\\uFD12'] = '\\u0637\\u064A';\n t['\\uFD13'] = '\\u0639\\u0649';\n t['\\uFD14'] = '\\u0639\\u064A';\n t['\\uFD15'] = '\\u063A\\u0649';\n t['\\uFD16'] = '\\u063A\\u064A';\n t['\\uFD17'] = '\\u0633\\u0649';\n t['\\uFD18'] = '\\u0633\\u064A';\n t['\\uFD19'] = '\\u0634\\u0649';\n t['\\uFD1A'] = '\\u0634\\u064A';\n t['\\uFD1B'] = '\\u062D\\u0649';\n t['\\uFD1C'] = '\\u062D\\u064A';\n t['\\uFD1D'] = '\\u062C\\u0649';\n t['\\uFD1E'] = '\\u062C\\u064A';\n t['\\uFD1F'] = '\\u062E\\u0649';\n t['\\uFD20'] = '\\u062E\\u064A';\n t['\\uFD21'] = '\\u0635\\u0649';\n t['\\uFD22'] = '\\u0635\\u064A';\n t['\\uFD23'] = '\\u0636\\u0649';\n t['\\uFD24'] = '\\u0636\\u064A';\n t['\\uFD25'] = '\\u0634\\u062C';\n t['\\uFD26'] = '\\u0634\\u062D';\n t['\\uFD27'] = '\\u0634\\u062E';\n t['\\uFD28'] = '\\u0634\\u0645';\n t['\\uFD29'] = '\\u0634\\u0631';\n t['\\uFD2A'] = '\\u0633\\u0631';\n t['\\uFD2B'] = '\\u0635\\u0631';\n t['\\uFD2C'] = '\\u0636\\u0631';\n t['\\uFD2D'] = '\\u0634\\u062C';\n t['\\uFD2E'] = '\\u0634\\u062D';\n t['\\uFD2F'] = '\\u0634\\u062E';\n t['\\uFD30'] = '\\u0634\\u0645';\n t['\\uFD31'] = '\\u0633\\u0647';\n t['\\uFD32'] = '\\u0634\\u0647';\n t['\\uFD33'] = '\\u0637\\u0645';\n t['\\uFD34'] = '\\u0633\\u062C';\n t['\\uFD35'] = '\\u0633\\u062D';\n t['\\uFD36'] = '\\u0633\\u062E';\n t['\\uFD37'] = '\\u0634\\u062C';\n t['\\uFD38'] = '\\u0634\\u062D';\n t['\\uFD39'] = '\\u0634\\u062E';\n t['\\uFD3A'] = '\\u0637\\u0645';\n t['\\uFD3B'] = '\\u0638\\u0645';\n t['\\uFD3C'] = '\\u0627\\u064B';\n t['\\uFD3D'] = '\\u0627\\u064B';\n t['\\uFD50'] = '\\u062A\\u062C\\u0645';\n t['\\uFD51'] = '\\u062A\\u062D\\u062C';\n t['\\uFD52'] = '\\u062A\\u062D\\u062C';\n t['\\uFD53'] = '\\u062A\\u062D\\u0645';\n t['\\uFD54'] = '\\u062A\\u062E\\u0645';\n t['\\uFD55'] = '\\u062A\\u0645\\u062C';\n t['\\uFD56'] = '\\u062A\\u0645\\u062D';\n t['\\uFD57'] = '\\u062A\\u0645\\u062E';\n t['\\uFD58'] = '\\u062C\\u0645\\u062D';\n t['\\uFD59'] = '\\u062C\\u0645\\u062D';\n t['\\uFD5A'] = '\\u062D\\u0645\\u064A';\n t['\\uFD5B'] = '\\u062D\\u0645\\u0649';\n t['\\uFD5C'] = '\\u0633\\u062D\\u062C';\n t['\\uFD5D'] = '\\u0633\\u062C\\u062D';\n t['\\uFD5E'] = '\\u0633\\u062C\\u0649';\n t['\\uFD5F'] = '\\u0633\\u0645\\u062D';\n t['\\uFD60'] = '\\u0633\\u0645\\u062D';\n t['\\uFD61'] = '\\u0633\\u0645\\u062C';\n t['\\uFD62'] = '\\u0633\\u0645\\u0645';\n t['\\uFD63'] = '\\u0633\\u0645\\u0645';\n t['\\uFD64'] = '\\u0635\\u062D\\u062D';\n t['\\uFD65'] = '\\u0635\\u062D\\u062D';\n t['\\uFD66'] = '\\u0635\\u0645\\u0645';\n t['\\uFD67'] = '\\u0634\\u062D\\u0645';\n t['\\uFD68'] = '\\u0634\\u062D\\u0645';\n t['\\uFD69'] = '\\u0634\\u062C\\u064A';\n t['\\uFD6A'] = '\\u0634\\u0645\\u062E';\n t['\\uFD6B'] = '\\u0634\\u0645\\u062E';\n t['\\uFD6C'] = '\\u0634\\u0645\\u0645';\n t['\\uFD6D'] = '\\u0634\\u0645\\u0645';\n t['\\uFD6E'] = '\\u0636\\u062D\\u0649';\n t['\\uFD6F'] = '\\u0636\\u062E\\u0645';\n t['\\uFD70'] = '\\u0636\\u062E\\u0645';\n t['\\uFD71'] = '\\u0637\\u0645\\u062D';\n t['\\uFD72'] = '\\u0637\\u0645\\u062D';\n t['\\uFD73'] = '\\u0637\\u0645\\u0645';\n t['\\uFD74'] = '\\u0637\\u0645\\u064A';\n t['\\uFD75'] = '\\u0639\\u062C\\u0645';\n t['\\uFD76'] = '\\u0639\\u0645\\u0645';\n t['\\uFD77'] = '\\u0639\\u0645\\u0645';\n t['\\uFD78'] = '\\u0639\\u0645\\u0649';\n t['\\uFD79'] = '\\u063A\\u0645\\u0645';\n t['\\uFD7A'] = '\\u063A\\u0645\\u064A';\n t['\\uFD7B'] = '\\u063A\\u0645\\u0649';\n t['\\uFD7C'] = '\\u0641\\u062E\\u0645';\n t['\\uFD7D'] = '\\u0641\\u062E\\u0645';\n t['\\uFD7E'] = '\\u0642\\u0645\\u062D';\n t['\\uFD7F'] = '\\u0642\\u0645\\u0645';\n t['\\uFD80'] = '\\u0644\\u062D\\u0645';\n t['\\uFD81'] = '\\u0644\\u062D\\u064A';\n t['\\uFD82'] = '\\u0644\\u062D\\u0649';\n t['\\uFD83'] = '\\u0644\\u062C\\u062C';\n t['\\uFD84'] = '\\u0644\\u062C\\u062C';\n t['\\uFD85'] = '\\u0644\\u062E\\u0645';\n t['\\uFD86'] = '\\u0644\\u062E\\u0645';\n t['\\uFD87'] = '\\u0644\\u0645\\u062D';\n t['\\uFD88'] = '\\u0644\\u0645\\u062D';\n t['\\uFD89'] = '\\u0645\\u062D\\u062C';\n t['\\uFD8A'] = '\\u0645\\u062D\\u0645';\n t['\\uFD8B'] = '\\u0645\\u062D\\u064A';\n t['\\uFD8C'] = '\\u0645\\u062C\\u062D';\n t['\\uFD8D'] = '\\u0645\\u062C\\u0645';\n t['\\uFD8E'] = '\\u0645\\u062E\\u062C';\n t['\\uFD8F'] = '\\u0645\\u062E\\u0645';\n t['\\uFD92'] = '\\u0645\\u062C\\u062E';\n t['\\uFD93'] = '\\u0647\\u0645\\u062C';\n t['\\uFD94'] = '\\u0647\\u0645\\u0645';\n t['\\uFD95'] = '\\u0646\\u062D\\u0645';\n t['\\uFD96'] = '\\u0646\\u062D\\u0649';\n t['\\uFD97'] = '\\u0646\\u062C\\u0645';\n t['\\uFD98'] = '\\u0646\\u062C\\u0645';\n t['\\uFD99'] = '\\u0646\\u062C\\u0649';\n t['\\uFD9A'] = '\\u0646\\u0645\\u064A';\n t['\\uFD9B'] = '\\u0646\\u0645\\u0649';\n t['\\uFD9C'] = '\\u064A\\u0645\\u0645';\n t['\\uFD9D'] = '\\u064A\\u0645\\u0645';\n t['\\uFD9E'] = '\\u0628\\u062E\\u064A';\n t['\\uFD9F'] = '\\u062A\\u062C\\u064A';\n t['\\uFDA0'] = '\\u062A\\u062C\\u0649';\n t['\\uFDA1'] = '\\u062A\\u062E\\u064A';\n t['\\uFDA2'] = '\\u062A\\u062E\\u0649';\n t['\\uFDA3'] = '\\u062A\\u0645\\u064A';\n t['\\uFDA4'] = '\\u062A\\u0645\\u0649';\n t['\\uFDA5'] = '\\u062C\\u0645\\u064A';\n t['\\uFDA6'] = '\\u062C\\u062D\\u0649';\n t['\\uFDA7'] = '\\u062C\\u0645\\u0649';\n t['\\uFDA8'] = '\\u0633\\u062E\\u0649';\n t['\\uFDA9'] = '\\u0635\\u062D\\u064A';\n t['\\uFDAA'] = '\\u0634\\u062D\\u064A';\n t['\\uFDAB'] = '\\u0636\\u062D\\u064A';\n t['\\uFDAC'] = '\\u0644\\u062C\\u064A';\n t['\\uFDAD'] = '\\u0644\\u0645\\u064A';\n t['\\uFDAE'] = '\\u064A\\u062D\\u064A';\n t['\\uFDAF'] = '\\u064A\\u062C\\u064A';\n t['\\uFDB0'] = '\\u064A\\u0645\\u064A';\n t['\\uFDB1'] = '\\u0645\\u0645\\u064A';\n t['\\uFDB2'] = '\\u0642\\u0645\\u064A';\n t['\\uFDB3'] = '\\u0646\\u062D\\u064A';\n t['\\uFDB4'] = '\\u0642\\u0645\\u062D';\n t['\\uFDB5'] = '\\u0644\\u062D\\u0645';\n t['\\uFDB6'] = '\\u0639\\u0645\\u064A';\n t['\\uFDB7'] = '\\u0643\\u0645\\u064A';\n t['\\uFDB8'] = '\\u0646\\u062C\\u062D';\n t['\\uFDB9'] = '\\u0645\\u062E\\u064A';\n t['\\uFDBA'] = '\\u0644\\u062C\\u0645';\n t['\\uFDBB'] = '\\u0643\\u0645\\u0645';\n t['\\uFDBC'] = '\\u0644\\u062C\\u0645';\n t['\\uFDBD'] = '\\u0646\\u062C\\u062D';\n t['\\uFDBE'] = '\\u062C\\u062D\\u064A';\n t['\\uFDBF'] = '\\u062D\\u062C\\u064A';\n t['\\uFDC0'] = '\\u0645\\u062C\\u064A';\n t['\\uFDC1'] = '\\u0641\\u0645\\u064A';\n t['\\uFDC2'] = '\\u0628\\u062D\\u064A';\n t['\\uFDC3'] = '\\u0643\\u0645\\u0645';\n t['\\uFDC4'] = '\\u0639\\u062C\\u0645';\n t['\\uFDC5'] = '\\u0635\\u0645\\u0645';\n t['\\uFDC6'] = '\\u0633\\u062E\\u064A';\n t['\\uFDC7'] = '\\u0646\\u062C\\u064A';\n t['\\uFE49'] = '\\u203E';\n t['\\uFE4A'] = '\\u203E';\n t['\\uFE4B'] = '\\u203E';\n t['\\uFE4C'] = '\\u203E';\n t['\\uFE4D'] = '_';\n t['\\uFE4E'] = '_';\n t['\\uFE4F'] = '_';\n t['\\uFE80'] = '\\u0621';\n t['\\uFE81'] = '\\u0622';\n t['\\uFE82'] = '\\u0622';\n t['\\uFE83'] = '\\u0623';\n t['\\uFE84'] = '\\u0623';\n t['\\uFE85'] = '\\u0624';\n t['\\uFE86'] = '\\u0624';\n t['\\uFE87'] = '\\u0625';\n t['\\uFE88'] = '\\u0625';\n t['\\uFE89'] = '\\u0626';\n t['\\uFE8A'] = '\\u0626';\n t['\\uFE8B'] = '\\u0626';\n t['\\uFE8C'] = '\\u0626';\n t['\\uFE8D'] = '\\u0627';\n t['\\uFE8E'] = '\\u0627';\n t['\\uFE8F'] = '\\u0628';\n t['\\uFE90'] = '\\u0628';\n t['\\uFE91'] = '\\u0628';\n t['\\uFE92'] = '\\u0628';\n t['\\uFE93'] = '\\u0629';\n t['\\uFE94'] = '\\u0629';\n t['\\uFE95'] = '\\u062A';\n t['\\uFE96'] = '\\u062A';\n t['\\uFE97'] = '\\u062A';\n t['\\uFE98'] = '\\u062A';\n t['\\uFE99'] = '\\u062B';\n t['\\uFE9A'] = '\\u062B';\n t['\\uFE9B'] = '\\u062B';\n t['\\uFE9C'] = '\\u062B';\n t['\\uFE9D'] = '\\u062C';\n t['\\uFE9E'] = '\\u062C';\n t['\\uFE9F'] = '\\u062C';\n t['\\uFEA0'] = '\\u062C';\n t['\\uFEA1'] = '\\u062D';\n t['\\uFEA2'] = '\\u062D';\n t['\\uFEA3'] = '\\u062D';\n t['\\uFEA4'] = '\\u062D';\n t['\\uFEA5'] = '\\u062E';\n t['\\uFEA6'] = '\\u062E';\n t['\\uFEA7'] = '\\u062E';\n t['\\uFEA8'] = '\\u062E';\n t['\\uFEA9'] = '\\u062F';\n t['\\uFEAA'] = '\\u062F';\n t['\\uFEAB'] = '\\u0630';\n t['\\uFEAC'] = '\\u0630';\n t['\\uFEAD'] = '\\u0631';\n t['\\uFEAE'] = '\\u0631';\n t['\\uFEAF'] = '\\u0632';\n t['\\uFEB0'] = '\\u0632';\n t['\\uFEB1'] = '\\u0633';\n t['\\uFEB2'] = '\\u0633';\n t['\\uFEB3'] = '\\u0633';\n t['\\uFEB4'] = '\\u0633';\n t['\\uFEB5'] = '\\u0634';\n t['\\uFEB6'] = '\\u0634';\n t['\\uFEB7'] = '\\u0634';\n t['\\uFEB8'] = '\\u0634';\n t['\\uFEB9'] = '\\u0635';\n t['\\uFEBA'] = '\\u0635';\n t['\\uFEBB'] = '\\u0635';\n t['\\uFEBC'] = '\\u0635';\n t['\\uFEBD'] = '\\u0636';\n t['\\uFEBE'] = '\\u0636';\n t['\\uFEBF'] = '\\u0636';\n t['\\uFEC0'] = '\\u0636';\n t['\\uFEC1'] = '\\u0637';\n t['\\uFEC2'] = '\\u0637';\n t['\\uFEC3'] = '\\u0637';\n t['\\uFEC4'] = '\\u0637';\n t['\\uFEC5'] = '\\u0638';\n t['\\uFEC6'] = '\\u0638';\n t['\\uFEC7'] = '\\u0638';\n t['\\uFEC8'] = '\\u0638';\n t['\\uFEC9'] = '\\u0639';\n t['\\uFECA'] = '\\u0639';\n t['\\uFECB'] = '\\u0639';\n t['\\uFECC'] = '\\u0639';\n t['\\uFECD'] = '\\u063A';\n t['\\uFECE'] = '\\u063A';\n t['\\uFECF'] = '\\u063A';\n t['\\uFED0'] = '\\u063A';\n t['\\uFED1'] = '\\u0641';\n t['\\uFED2'] = '\\u0641';\n t['\\uFED3'] = '\\u0641';\n t['\\uFED4'] = '\\u0641';\n t['\\uFED5'] = '\\u0642';\n t['\\uFED6'] = '\\u0642';\n t['\\uFED7'] = '\\u0642';\n t['\\uFED8'] = '\\u0642';\n t['\\uFED9'] = '\\u0643';\n t['\\uFEDA'] = '\\u0643';\n t['\\uFEDB'] = '\\u0643';\n t['\\uFEDC'] = '\\u0643';\n t['\\uFEDD'] = '\\u0644';\n t['\\uFEDE'] = '\\u0644';\n t['\\uFEDF'] = '\\u0644';\n t['\\uFEE0'] = '\\u0644';\n t['\\uFEE1'] = '\\u0645';\n t['\\uFEE2'] = '\\u0645';\n t['\\uFEE3'] = '\\u0645';\n t['\\uFEE4'] = '\\u0645';\n t['\\uFEE5'] = '\\u0646';\n t['\\uFEE6'] = '\\u0646';\n t['\\uFEE7'] = '\\u0646';\n t['\\uFEE8'] = '\\u0646';\n t['\\uFEE9'] = '\\u0647';\n t['\\uFEEA'] = '\\u0647';\n t['\\uFEEB'] = '\\u0647';\n t['\\uFEEC'] = '\\u0647';\n t['\\uFEED'] = '\\u0648';\n t['\\uFEEE'] = '\\u0648';\n t['\\uFEEF'] = '\\u0649';\n t['\\uFEF0'] = '\\u0649';\n t['\\uFEF1'] = '\\u064A';\n t['\\uFEF2'] = '\\u064A';\n t['\\uFEF3'] = '\\u064A';\n t['\\uFEF4'] = '\\u064A';\n t['\\uFEF5'] = '\\u0644\\u0622';\n t['\\uFEF6'] = '\\u0644\\u0622';\n t['\\uFEF7'] = '\\u0644\\u0623';\n t['\\uFEF8'] = '\\u0644\\u0623';\n t['\\uFEF9'] = '\\u0644\\u0625';\n t['\\uFEFA'] = '\\u0644\\u0625';\n t['\\uFEFB'] = '\\u0644\\u0627';\n t['\\uFEFC'] = '\\u0644\\u0627';\n});\nfunction reverseIfRtl(chars) {\n var charsLength = chars.length;\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n return chars;\n }\n var s = '';\n for (var ii = charsLength - 1; ii >= 0; ii--) {\n s += chars[ii];\n }\n return s;\n}\nexports.mapSpecialUnicodeValues = mapSpecialUnicodeValues;\nexports.reverseIfRtl = reverseIfRtl;\nexports.getUnicodeRangeFor = getUnicodeRangeFor;\nexports.getNormalizedUnicodes = getNormalizedUnicodes;\nexports.getUnicodeForGlyph = getUnicodeForGlyph;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WorkerMessageHandler = exports.WorkerTask = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _pdf_manager = __w_pdfjs_require__(100);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar WorkerTask = function WorkerTaskClosure() {\n function WorkerTask(name) {\n this.name = name;\n this.terminated = false;\n this._capability = (0, _util.createPromiseCapability)();\n }\n WorkerTask.prototype = {\n get finished() {\n return this._capability.promise;\n },\n finish: function finish() {\n this._capability.resolve();\n },\n terminate: function terminate() {\n this.terminated = true;\n },\n ensureNotTerminated: function ensureNotTerminated() {\n if (this.terminated) {\n throw new Error('Worker task was terminated');\n }\n }\n };\n return WorkerTask;\n}();\n;\nvar PDFWorkerStream = function PDFWorkerStreamClosure() {\n function PDFWorkerStream(msgHandler) {\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n PDFWorkerStream.prototype = {\n getFullReader: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n return this._fullRequestReader;\n },\n getRangeReader: function getRangeReader(begin, end) {\n var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n this._rangeRequestReaders.push(reader);\n return reader;\n },\n cancelAllRequests: function cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n var readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n };\n function PDFWorkerStreamReader(msgHandler) {\n var _this = this;\n\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n var readableStream = this._msgHandler.sendWithStream('GetReader');\n this._reader = readableStream.getReader();\n this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {\n _this._isStreamingSupported = data.isStreamingSupported;\n _this._isRangeSupported = data.isRangeSupported;\n _this._contentLength = data.contentLength;\n });\n }\n PDFWorkerStreamReader.prototype = {\n get headersReady() {\n return this._headersReady;\n },\n get contentLength() {\n return this._contentLength;\n },\n get isStreamingSupported() {\n return this._isStreamingSupported;\n },\n get isRangeSupported() {\n return this._isRangeSupported;\n },\n read: function read() {\n return this._reader.read().then(function (_ref) {\n var value = _ref.value,\n done = _ref.done;\n\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n return {\n value: value.buffer,\n done: false\n };\n });\n },\n cancel: function cancel(reason) {\n this._reader.cancel(reason);\n }\n };\n function PDFWorkerStreamRangeReader(begin, end, msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {\n begin: begin,\n end: end\n });\n this._reader = readableStream.getReader();\n }\n PDFWorkerStreamRangeReader.prototype = {\n get isStreamingSupported() {\n return false;\n },\n read: function read() {\n return this._reader.read().then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n\n if (done) {\n return {\n value: undefined,\n done: true\n };\n }\n return {\n value: value.buffer,\n done: false\n };\n });\n },\n cancel: function cancel(reason) {\n this._reader.cancel(reason);\n }\n };\n return PDFWorkerStream;\n}();\nvar WorkerMessageHandler = {\n setup: function setup(handler, port) {\n var testMessageProcessed = false;\n handler.on('test', function wphSetupTest(data) {\n if (testMessageProcessed) {\n return;\n }\n testMessageProcessed = true;\n if (!(data instanceof Uint8Array)) {\n handler.send('test', 'main', false);\n return;\n }\n var supportTransfers = data[0] === 255;\n handler.postMessageTransfers = supportTransfers;\n var xhr = new XMLHttpRequest();\n var responseExists = 'response' in xhr;\n try {\n xhr.responseType;\n } catch (e) {\n responseExists = false;\n }\n if (!responseExists) {\n handler.send('test', false);\n return;\n }\n handler.send('test', {\n supportTypedArray: true,\n supportTransfers: supportTransfers\n });\n });\n handler.on('configure', function wphConfigure(data) {\n (0, _util.setVerbosityLevel)(data.verbosity);\n });\n handler.on('GetDocRequest', function wphSetupDoc(data) {\n return WorkerMessageHandler.createDocumentHandler(data, port);\n });\n },\n createDocumentHandler: function createDocumentHandler(docParams, port) {\n var pdfManager;\n var terminated = false;\n var cancelXHRs = null;\n var WorkerTasks = [];\n var docId = docParams.docId;\n var docBaseUrl = docParams.docBaseUrl;\n var workerHandlerName = docParams.docId + '_worker';\n var handler = new _util.MessageHandler(workerHandlerName, docId, port);\n handler.postMessageTransfers = docParams.postMessageTransfers;\n function ensureNotTerminated() {\n if (terminated) {\n throw new Error('Worker was terminated');\n }\n }\n function startWorkerTask(task) {\n WorkerTasks.push(task);\n }\n function finishWorkerTask(task) {\n task.finish();\n var i = WorkerTasks.indexOf(task);\n WorkerTasks.splice(i, 1);\n }\n function loadDocument(recoveryMode) {\n var loadDocumentCapability = (0, _util.createPromiseCapability)();\n var parseSuccess = function parseSuccess() {\n var numPagesPromise = pdfManager.ensureDoc('numPages');\n var fingerprintPromise = pdfManager.ensureDoc('fingerprint');\n var encryptedPromise = pdfManager.ensureXRef('encrypt');\n Promise.all([numPagesPromise, fingerprintPromise, encryptedPromise]).then(function onDocReady(results) {\n var doc = {\n numPages: results[0],\n fingerprint: results[1],\n encrypted: !!results[2]\n };\n loadDocumentCapability.resolve(doc);\n }, parseFailure);\n };\n var parseFailure = function parseFailure(e) {\n loadDocumentCapability.reject(e);\n };\n pdfManager.ensureDoc('checkHeader', []).then(function () {\n pdfManager.ensureDoc('parseStartXRef', []).then(function () {\n pdfManager.ensureDoc('parse', [recoveryMode]).then(parseSuccess, parseFailure);\n }, parseFailure);\n }, parseFailure);\n return loadDocumentCapability.promise;\n }\n function getPdfManager(data, evaluatorOptions) {\n var pdfManagerCapability = (0, _util.createPromiseCapability)();\n var pdfManager;\n var source = data.source;\n if (source.data) {\n try {\n pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(pdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n return pdfManagerCapability.promise;\n }\n var pdfStream,\n cachedChunks = [];\n try {\n pdfStream = new PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n var fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady.then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;\n pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {\n msgHandler: handler,\n url: source.url,\n password: source.password,\n length: fullRequest.contentLength,\n disableAutoFetch: disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize\n }, evaluatorOptions, docBaseUrl);\n for (var i = 0; i < cachedChunks.length; i++) {\n pdfManager.sendProgressiveData(cachedChunks[i]);\n }\n cachedChunks = [];\n pdfManagerCapability.resolve(pdfManager);\n cancelXHRs = null;\n }).catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n var loaded = 0;\n var flushChunks = function flushChunks() {\n var pdfFile = (0, _util.arraysToBytes)(cachedChunks);\n if (source.length && pdfFile.length !== source.length) {\n (0, _util.warn)('reported HTTP length is different from actual');\n }\n try {\n pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);\n pdfManagerCapability.resolve(pdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n cachedChunks = [];\n };\n var readPromise = new Promise(function (resolve, reject) {\n var readChunk = function readChunk(chunk) {\n try {\n ensureNotTerminated();\n if (chunk.done) {\n if (!pdfManager) {\n flushChunks();\n }\n cancelXHRs = null;\n return;\n }\n var data = chunk.value;\n loaded += (0, _util.arrayByteLength)(data);\n if (!fullRequest.isStreamingSupported) {\n handler.send('DocProgress', {\n loaded: loaded,\n total: Math.max(loaded, fullRequest.contentLength || 0)\n });\n }\n if (pdfManager) {\n pdfManager.sendProgressiveData(data);\n } else {\n cachedChunks.push(data);\n }\n fullRequest.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n fullRequest.read().then(readChunk, reject);\n });\n readPromise.catch(function (e) {\n pdfManagerCapability.reject(e);\n cancelXHRs = null;\n });\n cancelXHRs = function cancelXHRs() {\n pdfStream.cancelAllRequests('abort');\n };\n return pdfManagerCapability.promise;\n }\n function setupDoc(data) {\n function onSuccess(doc) {\n ensureNotTerminated();\n handler.send('GetDoc', { pdfInfo: doc });\n }\n function onFailure(e) {\n ensureNotTerminated();\n if (e instanceof _util.PasswordException) {\n var task = new WorkerTask('PasswordException: response ' + e.code);\n startWorkerTask(task);\n handler.sendWithPromise('PasswordRequest', e).then(function (data) {\n finishWorkerTask(task);\n pdfManager.updatePassword(data.password);\n pdfManagerReady();\n }).catch(function (ex) {\n finishWorkerTask(task);\n handler.send('PasswordException', ex);\n }.bind(null, e));\n } else if (e instanceof _util.InvalidPDFException) {\n handler.send('InvalidPDF', e);\n } else if (e instanceof _util.MissingPDFException) {\n handler.send('MissingPDF', e);\n } else if (e instanceof _util.UnexpectedResponseException) {\n handler.send('UnexpectedResponse', e);\n } else {\n handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));\n }\n }\n function pdfManagerReady() {\n ensureNotTerminated();\n loadDocument(false).then(onSuccess, function loadFailure(ex) {\n ensureNotTerminated();\n if (!(ex instanceof _util.XRefParseException)) {\n onFailure(ex);\n return;\n }\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n loadDocument(true).then(onSuccess, onFailure);\n });\n }, onFailure);\n }\n ensureNotTerminated();\n var evaluatorOptions = {\n forceDataSchema: data.disableCreateObjectURL,\n maxImageSize: data.maxImageSize === undefined ? -1 : data.maxImageSize,\n disableFontFace: data.disableFontFace,\n nativeImageDecoderSupport: data.nativeImageDecoderSupport,\n ignoreErrors: data.ignoreErrors\n };\n getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {\n if (terminated) {\n newPdfManager.terminate();\n throw new Error('Worker was terminated');\n }\n pdfManager = newPdfManager;\n handler.send('PDFManagerReady', null);\n pdfManager.onLoadedStream().then(function (stream) {\n handler.send('DataLoaded', { length: stream.bytes.byteLength });\n });\n }).then(pdfManagerReady, onFailure);\n }\n handler.on('GetPage', function wphSetupGetPage(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n var rotatePromise = pdfManager.ensure(page, 'rotate');\n var refPromise = pdfManager.ensure(page, 'ref');\n var userUnitPromise = pdfManager.ensure(page, 'userUnit');\n var viewPromise = pdfManager.ensure(page, 'view');\n return Promise.all([rotatePromise, refPromise, userUnitPromise, viewPromise]).then(function (results) {\n return {\n rotate: results[0],\n ref: results[1],\n userUnit: results[2],\n view: results[3]\n };\n });\n });\n });\n handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {\n var ref = new _primitives.Ref(data.ref.num, data.ref.gen);\n var catalog = pdfManager.pdfDocument.catalog;\n return catalog.getPageIndex(ref);\n });\n handler.on('GetDestinations', function wphSetupGetDestinations(data) {\n return pdfManager.ensureCatalog('destinations');\n });\n handler.on('GetDestination', function wphSetupGetDestination(data) {\n return pdfManager.ensureCatalog('getDestination', [data.id]);\n });\n handler.on('GetPageLabels', function wphSetupGetPageLabels(data) {\n return pdfManager.ensureCatalog('pageLabels');\n });\n handler.on('GetPageMode', function wphSetupGetPageMode(data) {\n return pdfManager.ensureCatalog('pageMode');\n });\n handler.on('GetAttachments', function wphSetupGetAttachments(data) {\n return pdfManager.ensureCatalog('attachments');\n });\n handler.on('GetJavaScript', function wphSetupGetJavaScript(data) {\n return pdfManager.ensureCatalog('javaScript');\n });\n handler.on('GetOutline', function wphSetupGetOutline(data) {\n return pdfManager.ensureCatalog('documentOutline');\n });\n handler.on('GetMetadata', function wphSetupGetMetadata(data) {\n return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]);\n });\n handler.on('GetData', function wphSetupGetData(data) {\n pdfManager.requestLoadedStream();\n return pdfManager.onLoadedStream().then(function (stream) {\n return stream.bytes;\n });\n });\n handler.on('GetStats', function wphSetupGetStats(data) {\n return pdfManager.pdfDocument.xref.stats;\n });\n handler.on('GetAnnotations', function wphSetupGetAnnotations(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return pdfManager.ensure(page, 'getAnnotationsData', [data.intent]);\n });\n });\n handler.on('RenderPageRequest', function wphSetupRenderPage(data) {\n var pageIndex = data.pageIndex;\n pdfManager.getPage(pageIndex).then(function (page) {\n var task = new WorkerTask('RenderPageRequest: page ' + pageIndex);\n startWorkerTask(task);\n var pageNum = pageIndex + 1;\n var start = Date.now();\n page.getOperatorList({\n handler: handler,\n task: task,\n intent: data.intent,\n renderInteractiveForms: data.renderInteractiveForms\n }).then(function (operatorList) {\n finishWorkerTask(task);\n (0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);\n }, function (e) {\n finishWorkerTask(task);\n if (task.terminated) {\n return;\n }\n handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.unknown });\n var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';\n var wrappedException;\n if (typeof e === 'string') {\n wrappedException = {\n message: e,\n stack: minimumStackMessage\n };\n } else if ((typeof e === 'undefined' ? 'undefined' : _typeof(e)) === 'object') {\n wrappedException = {\n message: e.message || e.toString(),\n stack: e.stack || minimumStackMessage\n };\n } else {\n wrappedException = {\n message: 'Unknown exception type: ' + (typeof e === 'undefined' ? 'undefined' : _typeof(e)),\n stack: minimumStackMessage\n };\n }\n handler.send('PageError', {\n pageNum: pageNum,\n error: wrappedException,\n intent: data.intent\n });\n });\n });\n }, this);\n handler.on('GetTextContent', function wphExtractText(data, sink) {\n var pageIndex = data.pageIndex;\n sink.onPull = function (desiredSize) {};\n sink.onCancel = function (reason) {};\n pdfManager.getPage(pageIndex).then(function (page) {\n var task = new WorkerTask('GetTextContent: page ' + pageIndex);\n startWorkerTask(task);\n var pageNum = pageIndex + 1;\n var start = Date.now();\n page.extractTextContent({\n handler: handler,\n task: task,\n sink: sink,\n normalizeWhitespace: data.normalizeWhitespace,\n combineTextItems: data.combineTextItems\n }).then(function () {\n finishWorkerTask(task);\n (0, _util.info)('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms');\n sink.close();\n }, function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return;\n }\n sink.error(reason);\n throw reason;\n });\n });\n });\n handler.on('Cleanup', function wphCleanup(data) {\n return pdfManager.cleanup();\n });\n handler.on('Terminate', function wphTerminate(data) {\n terminated = true;\n if (pdfManager) {\n pdfManager.terminate();\n pdfManager = null;\n }\n if (cancelXHRs) {\n cancelXHRs();\n }\n var waitOn = [];\n WorkerTasks.forEach(function (task) {\n waitOn.push(task.finished);\n task.terminate();\n });\n return Promise.all(waitOn).then(function () {\n handler.destroy();\n handler = null;\n });\n });\n handler.on('Ready', function wphReady(data) {\n setupDoc(docParams);\n docParams = null;\n });\n return workerHandlerName;\n },\n initializeFromPort: function initializeFromPort(port) {\n var handler = new _util.MessageHandler('worker', 'main', port);\n WorkerMessageHandler.setup(handler, port);\n handler.send('ready', null);\n }\n};\nfunction isMessagePort(maybePort) {\n return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;\n}\nif (typeof window === 'undefined' && !(0, _util.isNodeJS)() && typeof self !== 'undefined' && isMessagePort(self)) {\n WorkerMessageHandler.initializeFromPort(self);\n}\nexports.WorkerTask = WorkerTask;\nexports.WorkerMessageHandler = WorkerMessageHandler;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n(function (e, a) {\n for (var i in a) {\n e[i] = a[i];\n }\n})(exports, function (modules) {\n var installedModules = {};\n function __w_pdfjs_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: false,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n module.l = true;\n return module.exports;\n }\n __w_pdfjs_require__.m = modules;\n __w_pdfjs_require__.c = installedModules;\n __w_pdfjs_require__.i = function (value) {\n return value;\n };\n __w_pdfjs_require__.d = function (exports, name, getter) {\n if (!__w_pdfjs_require__.o(exports, name)) {\n Object.defineProperty(exports, name, {\n configurable: false,\n enumerable: true,\n get: getter\n });\n }\n };\n __w_pdfjs_require__.n = function (module) {\n var getter = module && module.__esModule ? function getDefault() {\n return module['default'];\n } : function getModuleExports() {\n return module;\n };\n __w_pdfjs_require__.d(getter, 'a', getter);\n return getter;\n };\n __w_pdfjs_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n __w_pdfjs_require__.p = \"\";\n return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n}([function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n };\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n function IsPropertyKey(argument) {\n return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n }\n exports.typeIsObject = function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n };\n exports.createDataProperty = function (o, p, v) {\n assert(exports.typeIsObject(o));\n Object.defineProperty(o, p, {\n value: v,\n writable: true,\n enumerable: true,\n configurable: true\n });\n };\n exports.createArrayFromList = function (elements) {\n return elements.slice();\n };\n exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n };\n exports.CreateIterResultObject = function (value, done) {\n assert(typeof done === 'boolean');\n var obj = {};\n Object.defineProperty(obj, 'value', {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n });\n Object.defineProperty(obj, 'done', {\n value: done,\n enumerable: true,\n writable: true,\n configurable: true\n });\n return obj;\n };\n exports.IsFiniteNonNegativeNumber = function (v) {\n if (Number.isNaN(v)) {\n return false;\n }\n if (v === Infinity) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n };\n function Call(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n exports.InvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n var method = O[P];\n if (method === undefined) {\n return undefined;\n }\n return Call(method, O, args);\n };\n exports.PromiseInvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n try {\n return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n } catch (returnValueE) {\n return Promise.reject(returnValueE);\n }\n };\n exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n assert(Array.isArray(argsF));\n var method = void 0;\n try {\n method = O[P];\n } catch (methodE) {\n return Promise.reject(methodE);\n }\n if (method === undefined) {\n return F.apply(null, argsF);\n }\n try {\n return Promise.resolve(Call(method, O, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n exports.TransferArrayBuffer = function (O) {\n return O.slice();\n };\n exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n highWaterMark = Number(highWaterMark);\n if (Number.isNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n }\n return highWaterMark;\n };\n exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {\n if (size !== undefined && typeof size !== 'function') {\n throw new TypeError('size property of a queuing strategy must be a function');\n }\n highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);\n return {\n size: size,\n highWaterMark: highWaterMark\n };\n };\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n function rethrowAssertionErrorRejection(e) {\n if (e && e.constructor === AssertionError) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n function AssertionError(message) {\n this.name = 'AssertionError';\n this.message = message || '';\n this.stack = new Error().stack;\n }\n AssertionError.prototype = Object.create(Error.prototype);\n AssertionError.prototype.constructor = AssertionError;\n function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n }\n module.exports = {\n rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n AssertionError: AssertionError,\n assert: assert\n };\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = __w_pdfjs_require__(0),\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n typeIsObject = _require.typeIsObject;\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert,\n rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n var _require3 = __w_pdfjs_require__(3),\n DequeueValue = _require3.DequeueValue,\n EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n PeekQueueValue = _require3.PeekQueueValue,\n ResetQueue = _require3.ResetQueue;\n var WritableStream = function () {\n function WritableStream() {\n var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n _ref$highWaterMark = _ref.highWaterMark,\n highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;\n _classCallCheck(this, WritableStream);\n this._state = 'writable';\n this._storedError = undefined;\n this._writer = undefined;\n this._writableStreamController = undefined;\n this._writeRequests = [];\n this._inFlightWriteRequest = undefined;\n this._closeRequest = undefined;\n this._inFlightCloseRequest = undefined;\n this._pendingAbortRequest = undefined;\n this._backpressure = false;\n var type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n this._writableStreamController.__startSteps();\n }\n _createClass(WritableStream, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('abort'));\n }\n if (IsWritableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n }\n }, {\n key: 'getWriter',\n value: function getWriter() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n return IsWritableStreamLocked(this);\n }\n }]);\n return WritableStream;\n }();\n module.exports = {\n AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,\n IsWritableStream: IsWritableStream,\n IsWritableStreamLocked: IsWritableStreamLocked,\n WritableStream: WritableStream,\n WritableStreamAbort: WritableStreamAbort,\n WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,\n WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight\n };\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return true;\n }\n function IsWritableStreamLocked(stream) {\n assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var state = stream._state;\n if (state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n var error = new TypeError('Requested to abort');\n if (stream._pendingAbortRequest !== undefined) {\n return Promise.reject(error);\n }\n assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n reason = undefined;\n }\n var promise = new Promise(function (resolve, reject) {\n stream._pendingAbortRequest = {\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n if (wasAlreadyErroring === false) {\n WritableStreamStartErroring(stream, error);\n }\n return promise;\n }\n function WritableStreamAddWriteRequest(stream) {\n assert(IsWritableStreamLocked(stream) === true);\n assert(stream._state === 'writable');\n var promise = new Promise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n assert(state === 'erroring');\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n assert(stream._state === 'writable', 'state must be writable');\n var controller = stream._writableStreamController;\n assert(controller !== undefined, 'controller must not be undefined');\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n assert(stream._state === 'erroring', 'stream._state === erroring');\n assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');\n stream._state = 'errored';\n stream._writableStreamController.__errorSteps();\n var storedError = stream._storedError;\n for (var i = 0; i < stream._writeRequests.length; i++) {\n var writeRequest = stream._writeRequests[i];\n writeRequest._reject(storedError);\n }\n stream._writeRequests = [];\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring === true) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n promise.then(function () {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, function (reason) {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n if (state === 'erroring') {\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n assert(stream._state === 'writable' || stream._state === 'erroring');\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n assert(stream._inFlightCloseRequest === undefined);\n assert(stream._closeRequest !== undefined);\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');\n assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n if (stream._closeRequest !== undefined) {\n assert(stream._inFlightCloseRequest === undefined);\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n writer._closedPromise.catch(function () {});\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n assert(stream._state === 'writable');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure === true) {\n defaultWriterReadyPromiseReset(writer);\n } else {\n assert(backpressure === false);\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n var WritableStreamDefaultWriter = function () {\n function WritableStreamDefaultWriter(stream) {\n _classCallCheck(this, WritableStreamDefaultWriter);\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n }\n if (IsWritableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n var state = stream._state;\n if (state === 'writable') {\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n defaultWriterReadyPromiseInitialize(this);\n } else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitialize(this);\n } else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n } else {\n assert(state === 'errored', 'state must be errored');\n var storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n this._readyPromise.catch(function () {});\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n this._closedPromise.catch(function () {});\n }\n }\n _createClass(WritableStreamDefaultWriter, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('close'));\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return Promise.reject(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n return Promise.reject(new TypeError('cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n var stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n assert(stream._writer !== undefined);\n WritableStreamDefaultWriterRelease(this);\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n }, {\n key: 'ready',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n }\n }]);\n return WritableStreamDefaultWriter;\n }();\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return true;\n }\n function WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));\n }\n assert(state === 'writable' || state === 'erroring');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n var promise = new Promise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n if (stream._backpressure === true && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.resolve();\n }\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n assert(state === 'writable' || state === 'erroring');\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n } else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n writer._closedPromise.catch(function () {});\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n } else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n writer._readyPromise.catch(function () {});\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n assert(stream._writer === writer);\n var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n var controller = stream._writableStreamController;\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\n var state = stream._state;\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return Promise.reject(stream._storedError);\n }\n assert(state === 'writable');\n var promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n var WritableStreamDefaultController = function () {\n function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n _classCallCheck(this, WritableStreamDefaultController);\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n }\n if (stream._writableStreamController !== undefined) {\n throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\n }\n this._controlledWritableStream = stream;\n this._underlyingSink = underlyingSink;\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n this._started = false;\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n var backpressure = WritableStreamDefaultControllerGetBackpressure(this);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n _createClass(WritableStreamDefaultController, [{\n key: 'error',\n value: function error(e) {\n if (IsWritableStreamDefaultController(this) === false) {\n throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n }\n var state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__abortSteps',\n value: function __abortSteps(reason) {\n return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);\n }\n }, {\n key: '__errorSteps',\n value: function __errorSteps() {\n ResetQueue(this);\n }\n }, {\n key: '__startSteps',\n value: function __startSteps() {\n var _this = this;\n var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);\n var stream = this._controlledWritableStream;\n Promise.resolve(startResult).then(function () {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);\n }, function (r) {\n assert(stream._state === 'writable' || stream._state === 'erroring');\n _this._started = true;\n WritableStreamDealWithRejection(stream, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n }]);\n return WritableStreamDefaultController;\n }();\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, 'close', 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n var strategySize = controller._strategySize;\n if (strategySize === undefined) {\n return 1;\n }\n try {\n return strategySize(chunk);\n } catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n var writeRecord = { chunk: chunk };\n try {\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\n } catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n var stream = controller._controlledWritableStream;\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n return false;\n }\n return true;\n }\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n if (controller._started === false) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n var state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return;\n }\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n var writeRecord = PeekQueueValue(controller);\n if (writeRecord === 'close') {\n WritableStreamDefaultControllerProcessClose(controller);\n } else {\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);\n sinkClosePromise.then(function () {\n WritableStreamFinishInFlightClose(stream);\n }, function (reason) {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n sinkWritePromise.then(function () {\n WritableStreamFinishInFlightWrite(stream);\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n DequeueValue(controller);\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n function WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n assert(stream._state === 'writable');\n WritableStreamStartErroring(stream, error);\n }\n function streamBrandCheckException(name) {\n return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n }\n function defaultWriterBrandCheckException(name) {\n return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = new Promise(function (resolve, reject) {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n writer._closedPromise = Promise.resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');\n assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');\n assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResolve(writer) {\n assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n writer._readyPromise = Promise.resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n writer._readyPromise = new Promise(function (resolve, reject) {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseResolve(writer) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _require = __w_pdfjs_require__(0),\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n var _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert;\n exports.DequeueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');\n var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n };\n exports.EnqueueValueWithSize = function (container, value, size) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');\n size = Number(size);\n if (!IsFiniteNonNegativeNumber(size)) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({\n value: value,\n size: size\n });\n container._queueTotalSize += size;\n };\n exports.PeekQueueValue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');\n var pair = container._queue[0];\n return pair.value;\n };\n exports.ResetQueue = function (container) {\n assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n container._queue = [];\n container._queueTotalSize = 0;\n };\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = __w_pdfjs_require__(0),\n ArrayBufferCopy = _require.ArrayBufferCopy,\n CreateIterResultObject = _require.CreateIterResultObject,\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n TransferArrayBuffer = _require.TransferArrayBuffer,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;\n var _require2 = __w_pdfjs_require__(0),\n createArrayFromList = _require2.createArrayFromList,\n createDataProperty = _require2.createDataProperty,\n typeIsObject = _require2.typeIsObject;\n var _require3 = __w_pdfjs_require__(1),\n assert = _require3.assert,\n rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n var _require4 = __w_pdfjs_require__(3),\n DequeueValue = _require4.DequeueValue,\n EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n ResetQueue = _require4.ResetQueue;\n var _require5 = __w_pdfjs_require__(2),\n AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,\n IsWritableStream = _require5.IsWritableStream,\n IsWritableStreamLocked = _require5.IsWritableStreamLocked,\n WritableStreamAbort = _require5.WritableStreamAbort,\n WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,\n WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,\n WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,\n WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;\n var ReadableStream = function () {\n function ReadableStream() {\n var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n highWaterMark = _ref.highWaterMark;\n _classCallCheck(this, ReadableStream);\n this._state = 'readable';\n this._reader = undefined;\n this._storedError = undefined;\n this._disturbed = false;\n this._readableStreamController = undefined;\n var type = underlyingSource.type;\n var typeString = String(type);\n if (typeString === 'bytes') {\n if (highWaterMark === undefined) {\n highWaterMark = 0;\n }\n this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n } else if (type === undefined) {\n if (highWaterMark === undefined) {\n highWaterMark = 1;\n }\n this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n } else {\n throw new RangeError('Invalid type is specified');\n }\n }\n _createClass(ReadableStream, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('cancel'));\n }\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n }\n }, {\n key: 'getReader',\n value: function getReader() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mode = _ref2.mode;\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('getReader');\n }\n if (mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n mode = String(mode);\n if (mode === 'byob') {\n return AcquireReadableStreamBYOBReader(this);\n }\n throw new RangeError('Invalid mode is specified');\n }\n }, {\n key: 'pipeThrough',\n value: function pipeThrough(_ref3, options) {\n var writable = _ref3.writable,\n readable = _ref3.readable;\n var promise = this.pipeTo(writable, options);\n ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n return readable;\n }\n }, {\n key: 'pipeTo',\n value: function pipeTo(dest) {\n var _this = this;\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n preventClose = _ref4.preventClose,\n preventAbort = _ref4.preventAbort,\n preventCancel = _ref4.preventCancel;\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('pipeTo'));\n }\n if (IsWritableStream(dest) === false) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n }\n preventClose = Boolean(preventClose);\n preventAbort = Boolean(preventAbort);\n preventCancel = Boolean(preventCancel);\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(dest) === true) {\n return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n var reader = AcquireReadableStreamDefaultReader(this);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n var shuttingDown = false;\n var currentWrite = Promise.resolve();\n return new Promise(function (resolve, reject) {\n function pipeLoop() {\n currentWrite = Promise.resolve();\n if (shuttingDown === true) {\n return Promise.resolve();\n }\n return writer._readyPromise.then(function () {\n return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n var value = _ref5.value,\n done = _ref5.done;\n if (done === true) {\n return;\n }\n currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});\n });\n }).then(pipeLoop);\n }\n isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {\n if (preventAbort === false) {\n shutdownWithAction(function () {\n return WritableStreamAbort(dest, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, storedError);\n }, true, storedError);\n } else {\n shutdown(true, storedError);\n }\n });\n isOrBecomesClosed(_this, reader._closedPromise, function () {\n if (preventClose === false) {\n shutdownWithAction(function () {\n return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);\n });\n } else {\n shutdown();\n }\n });\n if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, destClosed);\n }, true, destClosed);\n } else {\n shutdown(true, destClosed);\n }\n }\n pipeLoop().catch(function (err) {\n currentWrite = Promise.resolve();\n rethrowAssertionErrorRejection(err);\n });\n function waitForWritesToFinish() {\n var oldCurrentWrite = currentWrite;\n return currentWrite.then(function () {\n return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n });\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n } else {\n promise.catch(action).catch(rethrowAssertionErrorRejection);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n } else {\n promise.then(action).catch(rethrowAssertionErrorRejection);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(doTheRest);\n } else {\n doTheRest();\n }\n function doTheRest() {\n action().then(function () {\n return finalize(originalIsError, originalError);\n }, function (newError) {\n return finalize(true, newError);\n }).catch(rethrowAssertionErrorRejection);\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(function () {\n return finalize(isError, error);\n }).catch(rethrowAssertionErrorRejection);\n } else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (isError) {\n reject(error);\n } else {\n resolve(undefined);\n }\n }\n });\n }\n }, {\n key: 'tee',\n value: function tee() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('tee');\n }\n var branches = ReadableStreamTee(this, false);\n return createArrayFromList(branches);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n return IsReadableStreamLocked(this);\n }\n }]);\n return ReadableStream;\n }();\n module.exports = {\n ReadableStream: ReadableStream,\n IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n };\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamDisturbed(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n return stream._disturbed;\n }\n function IsReadableStreamLocked(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n function ReadableStreamTee(stream, cloneForBranch2) {\n assert(IsReadableStream(stream) === true);\n assert(typeof cloneForBranch2 === 'boolean');\n var reader = AcquireReadableStreamDefaultReader(stream);\n var teeState = {\n closedOrErrored: false,\n canceled1: false,\n canceled2: false,\n reason1: undefined,\n reason2: undefined\n };\n teeState.promise = new Promise(function (resolve) {\n teeState._resolve = resolve;\n });\n var pull = create_ReadableStreamTeePullFunction();\n pull._reader = reader;\n pull._teeState = teeState;\n pull._cloneForBranch2 = cloneForBranch2;\n var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n cancel1._stream = stream;\n cancel1._teeState = teeState;\n var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n cancel2._stream = stream;\n cancel2._teeState = teeState;\n var underlyingSource1 = Object.create(Object.prototype);\n createDataProperty(underlyingSource1, 'pull', pull);\n createDataProperty(underlyingSource1, 'cancel', cancel1);\n var branch1Stream = new ReadableStream(underlyingSource1);\n var underlyingSource2 = Object.create(Object.prototype);\n createDataProperty(underlyingSource2, 'pull', pull);\n createDataProperty(underlyingSource2, 'cancel', cancel2);\n var branch2Stream = new ReadableStream(underlyingSource2);\n pull._branch1 = branch1Stream._readableStreamController;\n pull._branch2 = branch2Stream._readableStreamController;\n reader._closedPromise.catch(function (r) {\n if (teeState.closedOrErrored === true) {\n return;\n }\n ReadableStreamDefaultControllerError(pull._branch1, r);\n ReadableStreamDefaultControllerError(pull._branch2, r);\n teeState.closedOrErrored = true;\n });\n return [branch1Stream, branch2Stream];\n }\n function create_ReadableStreamTeePullFunction() {\n function f() {\n var reader = f._reader,\n branch1 = f._branch1,\n branch2 = f._branch2,\n teeState = f._teeState;\n return ReadableStreamDefaultReaderRead(reader).then(function (result) {\n assert(typeIsObject(result));\n var value = result.value;\n var done = result.done;\n assert(typeof done === 'boolean');\n if (done === true && teeState.closedOrErrored === false) {\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerClose(branch1);\n }\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerClose(branch2);\n }\n teeState.closedOrErrored = true;\n }\n if (teeState.closedOrErrored === true) {\n return;\n }\n var value1 = value;\n var value2 = value;\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerEnqueue(branch1, value1);\n }\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerEnqueue(branch2, value2);\n }\n });\n }\n return f;\n }\n function create_ReadableStreamTeeBranch1CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n teeState.canceled1 = true;\n teeState.reason1 = reason;\n if (teeState.canceled2 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\n }\n function create_ReadableStreamTeeBranch2CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n teeState.canceled2 = true;\n teeState.reason2 = reason;\n if (teeState.canceled1 === true) {\n var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\n teeState._resolve(cancelResult);\n }\n return teeState.promise;\n }\n return f;\n }\n function ReadableStreamAddReadIntoRequest(stream) {\n assert(IsReadableStreamBYOBReader(stream._reader) === true);\n assert(stream._state === 'readable' || stream._state === 'closed');\n var promise = new Promise(function (resolve, reject) {\n var readIntoRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._reader._readIntoRequests.push(readIntoRequest);\n });\n return promise;\n }\n function ReadableStreamAddReadRequest(stream) {\n assert(IsReadableStreamDefaultReader(stream._reader) === true);\n assert(stream._state === 'readable');\n var promise = new Promise(function (resolve, reject) {\n var readRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._reader._readRequests.push(readRequest);\n });\n return promise;\n }\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n ReadableStreamClose(stream);\n var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n return sourceCancelPromise.then(function () {\n return undefined;\n });\n }\n function ReadableStreamClose(stream) {\n assert(stream._state === 'readable');\n stream._state = 'closed';\n var reader = stream._reader;\n if (reader === undefined) {\n return undefined;\n }\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var _resolve = reader._readRequests[i]._resolve;\n _resolve(CreateIterResultObject(undefined, true));\n }\n reader._readRequests = [];\n }\n defaultReaderClosedPromiseResolve(reader);\n return undefined;\n }\n function ReadableStreamError(stream, e) {\n assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n assert(stream._state === 'readable', 'state must be readable');\n stream._state = 'errored';\n stream._storedError = e;\n var reader = stream._reader;\n if (reader === undefined) {\n return undefined;\n }\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var readRequest = reader._readRequests[i];\n readRequest._reject(e);\n }\n reader._readRequests = [];\n } else {\n assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n var readIntoRequest = reader._readIntoRequests[_i];\n readIntoRequest._reject(e);\n }\n reader._readIntoRequests = [];\n }\n defaultReaderClosedPromiseReject(reader, e);\n reader._closedPromise.catch(function () {});\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readIntoRequests.length > 0);\n var readIntoRequest = reader._readIntoRequests.shift();\n readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n assert(reader._readRequests.length > 0);\n var readRequest = reader._readRequests.shift();\n readRequest._resolve(CreateIterResultObject(chunk, done));\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (IsReadableStreamBYOBReader(reader) === false) {\n return false;\n }\n return true;\n }\n function ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (IsReadableStreamDefaultReader(reader) === false) {\n return false;\n }\n return true;\n }\n var ReadableStreamDefaultReader = function () {\n function ReadableStreamDefaultReader(stream) {\n _classCallCheck(this, ReadableStreamDefaultReader);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n }\n if (IsReadableStreamLocked(stream) === true) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = [];\n }\n _createClass(ReadableStreamDefaultReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n return ReadableStreamDefaultReaderRead(this);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (IsReadableStreamDefaultReader(this) === false) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (IsReadableStreamDefaultReader(this) === false) {\n return Promise.reject(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }]);\n return ReadableStreamDefaultReader;\n }();\n var ReadableStreamBYOBReader = function () {\n function ReadableStreamBYOBReader(stream) {\n _classCallCheck(this, ReadableStreamBYOBReader);\n if (!IsReadableStream(stream)) {\n throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');\n }\n if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n }\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = [];\n }\n _createClass(ReadableStreamBYOBReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n }, {\n key: 'read',\n value: function read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n if (!ArrayBuffer.isView(view)) {\n return Promise.reject(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return Promise.reject(new TypeError('view must have non-zero byteLength'));\n }\n return ReadableStreamBYOBReaderRead(this, view);\n }\n }, {\n key: 'releaseLock',\n value: function releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n }]);\n return ReadableStreamBYOBReader;\n }();\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return true;\n }\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n } else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n } else {\n assert(stream._state === 'errored', 'state must be errored');\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n reader._closedPromise.catch(function () {});\n }\n }\n function ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n assert(reader._ownerReadableStream !== undefined);\n assert(reader._ownerReadableStream._reader === reader);\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n } else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n }\n reader._closedPromise.catch(function () {});\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n function ReadableStreamBYOBReaderRead(reader, view) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n }\n function ReadableStreamDefaultReaderRead(reader) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return Promise.resolve(CreateIterResultObject(undefined, true));\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n assert(stream._state === 'readable');\n return stream._readableStreamController.__pullSteps();\n }\n var ReadableStreamDefaultController = function () {\n function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n _classCallCheck(this, ReadableStreamDefaultController);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n }\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\n }\n this._controlledReadableStream = stream;\n this._underlyingSource = underlyingSource;\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n this._started = false;\n this._closeRequested = false;\n this._pullAgain = false;\n this._pulling = false;\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n var controller = this;\n var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n _createClass(ReadableStreamDefaultController, [{\n key: 'close',\n value: function close() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n ReadableStreamDefaultControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n ReadableStreamDefaultControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n if (this._closeRequested === true && this._queue.length === 0) {\n ReadableStreamClose(stream);\n } else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n return Promise.resolve(CreateIterResultObject(chunk, false));\n }\n var pendingPromise = ReadableStreamAddReadRequest(stream);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n return pendingPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n }]);\n return ReadableStreamDefaultController;\n }();\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n assert(controller._pullAgain === false);\n controller._pulling = true;\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n return ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n return undefined;\n }, function (e) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n }).catch(rethrowAssertionErrorRejection);\n return undefined;\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return false;\n }\n if (controller._closeRequested === true) {\n return false;\n }\n if (controller._started === false) {\n return false;\n }\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n } else {\n var chunkSize = 1;\n if (controller._strategySize !== undefined) {\n var strategySize = controller._strategySize;\n try {\n chunkSize = strategySize(chunk);\n } catch (chunkSizeE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n throw chunkSizeE;\n }\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n return undefined;\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n assert(stream._state === 'readable');\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableStreamDefaultControllerError(controller, e);\n }\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n var ReadableStreamBYOBRequest = function () {\n function ReadableStreamBYOBRequest(controller, view) {\n _classCallCheck(this, ReadableStreamBYOBRequest);\n this._associatedReadableByteStreamController = controller;\n this._view = view;\n }\n _createClass(ReadableStreamBYOBRequest, [{\n key: 'respond',\n value: function respond(bytesWritten) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n }, {\n key: 'respondWithNewView',\n value: function respondWithNewView(view) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }, {\n key: 'view',\n get: function get() {\n return this._view;\n }\n }]);\n return ReadableStreamBYOBRequest;\n }();\n var ReadableByteStreamController = function () {\n function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n _classCallCheck(this, ReadableByteStreamController);\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\n }\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');\n }\n this._controlledReadableStream = stream;\n this._underlyingByteSource = underlyingByteSource;\n this._pullAgain = false;\n this._pulling = false;\n ReadableByteStreamControllerClearPendingPullIntos(this);\n this._queue = this._queueTotalSize = undefined;\n ResetQueue(this);\n this._closeRequested = false;\n this._started = false;\n this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n throw new RangeError('autoAllocateChunkSize must be a positive integer');\n }\n }\n this._autoAllocateChunkSize = autoAllocateChunkSize;\n this._pendingPullIntos = [];\n var controller = this;\n var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n if (stream._state === 'readable') {\n ReadableByteStreamControllerError(controller, r);\n }\n }).catch(rethrowAssertionErrorRejection);\n }\n _createClass(ReadableByteStreamController, [{\n key: 'close',\n value: function close() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n }\n ReadableByteStreamControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\n var state = this._controlledReadableStream._state;\n if (state !== 'readable') {\n throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n }\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n }, {\n key: 'error',\n value: function error(e) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('error');\n }\n var stream = this._controlledReadableStream;\n if (stream._state !== 'readable') {\n throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n }\n ReadableByteStreamControllerError(this, e);\n }\n }, {\n key: '__cancelSteps',\n value: function __cancelSteps(reason) {\n if (this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n firstDescriptor.bytesFilled = 0;\n }\n ResetQueue(this);\n return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);\n }\n }, {\n key: '__pullSteps',\n value: function __pullSteps() {\n var stream = this._controlledReadableStream;\n assert(ReadableStreamHasDefaultReader(stream) === true);\n if (this._queueTotalSize > 0) {\n assert(ReadableStreamGetNumReadRequests(stream) === 0);\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n var view = void 0;\n try {\n view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n } catch (viewE) {\n return Promise.reject(viewE);\n }\n return Promise.resolve(CreateIterResultObject(view, false));\n }\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n var buffer = void 0;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n } catch (bufferE) {\n return Promise.reject(bufferE);\n }\n var pullIntoDescriptor = {\n buffer: buffer,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n ctor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n var promise = ReadableStreamAddReadRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n return promise;\n }\n }, {\n key: 'byobRequest',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n var firstDescriptor = this._pendingPullIntos[0];\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n this._byobRequest = new ReadableStreamBYOBRequest(this, view);\n }\n return this._byobRequest;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n }]);\n return ReadableByteStreamController;\n }();\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n return false;\n }\n return true;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return true;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n assert(controller._pullAgain === false);\n controller._pulling = true;\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n if (controller._pullAgain === true) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, function (e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableByteStreamControllerError(controller, e);\n }\n }).catch(rethrowAssertionErrorRejection);\n return undefined;\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = [];\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n assert(stream._state !== 'errored', 'state must not be errored');\n var done = false;\n if (stream._state === 'closed') {\n assert(pullIntoDescriptor.bytesFilled === 0);\n done = true;\n }\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n } else {\n assert(pullIntoDescriptor.readerType === 'byob');\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n assert(bytesFilled <= pullIntoDescriptor.byteLength);\n assert(bytesFilled % elementSize === 0);\n return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength\n });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n var queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue[0];\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n } else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n if (ready === false) {\n assert(controller._queueTotalSize === 0, 'queue must be empty');\n assert(pullIntoDescriptor.bytesFilled > 0);\n assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n assert(controller._controlledReadableStream._state === 'readable');\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n ReadableStreamClose(controller._controlledReadableStream);\n } else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === undefined) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = undefined;\n controller._byobRequest = undefined;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n assert(controller._closeRequested === false);\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n var pullIntoDescriptor = controller._pendingPullIntos[0];\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view) {\n var stream = controller._controlledReadableStream;\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n var ctor = view.constructor;\n var pullIntoDescriptor = {\n buffer: view.buffer,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize: elementSize,\n ctor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n return ReadableStreamAddReadIntoRequest(stream);\n }\n if (stream._state === 'closed') {\n var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n return Promise.resolve(CreateIterResultObject(emptyView, true));\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n return Promise.resolve(CreateIterResultObject(filledView, false));\n }\n if (controller._closeRequested === true) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n return Promise.reject(e);\n }\n }\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n var promise = ReadableStreamAddReadIntoRequest(stream);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n return promise;\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n var stream = controller._controlledReadableStream;\n if (ReadableStreamHasBYOBReader(stream) === true) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos[0];\n var stream = controller._controlledReadableStream;\n if (stream._state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n } else {\n assert(stream._state === 'readable');\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested === true) {\n return false;\n }\n if (controller._started === false) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n var firstPendingPullInto = controller._pendingPullIntos[0];\n if (firstPendingPullInto.bytesFilled > 0) {\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n if (ReadableStreamHasDefaultReader(stream) === true) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n } else {\n assert(controller._queue.length === 0);\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n } else if (ReadableStreamHasBYOBReader(stream) === true) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n } else {\n assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n }\n function ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n assert(stream._state === 'readable');\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n bytesWritten = Number(bytesWritten);\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n throw new RangeError('bytesWritten must be a finite');\n }\n assert(controller._pendingPullIntos.length > 0);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n assert(controller._pendingPullIntos.length > 0);\n var firstDescriptor = controller._pendingPullIntos[0];\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.byteLength !== view.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n firstDescriptor.buffer = view.buffer;\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n }\n function streamBrandCheckException(name) {\n return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n }\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n function defaultReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n }\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = new Promise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n reader._closedPromise = Promise.reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n reader._closedPromise = Promise.resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n assert(reader._closedPromise_resolve === undefined);\n assert(reader._closedPromise_reject === undefined);\n reader._closedPromise = Promise.reject(reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function byobReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n }\n function defaultControllerBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n }\n function byobRequestBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n }\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n }\n function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n try {\n Promise.prototype.then.call(promise, undefined, function () {});\n } catch (e) {}\n }\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var transformStream = __w_pdfjs_require__(6);\n var readableStream = __w_pdfjs_require__(4);\n var writableStream = __w_pdfjs_require__(2);\n exports.TransformStream = transformStream.TransformStream;\n exports.ReadableStream = readableStream.ReadableStream;\n exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\n exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\n exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\n exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\n exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\n exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\n exports.IsWritableStream = writableStream.IsWritableStream;\n exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\n exports.WritableStream = writableStream.WritableStream;\n exports.WritableStreamAbort = writableStream.WritableStreamAbort;\n exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\n exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\n exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\n exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n}, function (module, exports, __w_pdfjs_require__) {\n \"use strict\";\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n var _require2 = __w_pdfjs_require__(0),\n InvokeOrNoop = _require2.InvokeOrNoop,\n PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n typeIsObject = _require2.typeIsObject;\n var _require3 = __w_pdfjs_require__(4),\n ReadableStream = _require3.ReadableStream,\n ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;\n var _require4 = __w_pdfjs_require__(2),\n WritableStream = _require4.WritableStream,\n WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n function TransformStreamCloseReadable(transformStream) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n TransformStreamCloseReadableInternal(transformStream);\n }\n function TransformStreamEnqueueToReadable(transformStream, chunk) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n var controller = transformStream._readableController;\n try {\n ReadableStreamDefaultControllerEnqueue(controller, chunk);\n } catch (e) {\n transformStream._readableClosed = true;\n TransformStreamErrorIfNeeded(transformStream, e);\n throw transformStream._storedError;\n }\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n var maybeBackpressure = desiredSize <= 0;\n if (maybeBackpressure === true && transformStream._backpressure === false) {\n TransformStreamSetBackpressure(transformStream, true);\n }\n }\n function TransformStreamError(transformStream, e) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n TransformStreamErrorInternal(transformStream, e);\n }\n function TransformStreamCloseReadableInternal(transformStream) {\n assert(transformStream._errored === false);\n assert(transformStream._readableClosed === false);\n try {\n ReadableStreamDefaultControllerClose(transformStream._readableController);\n } catch (e) {\n assert(false);\n }\n transformStream._readableClosed = true;\n }\n function TransformStreamErrorIfNeeded(transformStream, e) {\n if (transformStream._errored === false) {\n TransformStreamErrorInternal(transformStream, e);\n }\n }\n function TransformStreamErrorInternal(transformStream, e) {\n assert(transformStream._errored === false);\n transformStream._errored = true;\n transformStream._storedError = e;\n if (transformStream._writableDone === false) {\n WritableStreamDefaultControllerError(transformStream._writableController, e);\n }\n if (transformStream._readableClosed === false) {\n ReadableStreamDefaultControllerError(transformStream._readableController, e);\n }\n }\n function TransformStreamReadableReadyPromise(transformStream) {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n if (transformStream._backpressure === false) {\n return Promise.resolve();\n }\n assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n }\n function TransformStreamSetBackpressure(transformStream, backpressure) {\n assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n if (transformStream._backpressureChangePromise !== undefined) {\n transformStream._backpressureChangePromise_resolve(backpressure);\n }\n transformStream._backpressureChangePromise = new Promise(function (resolve) {\n transformStream._backpressureChangePromise_resolve = resolve;\n });\n transformStream._backpressureChangePromise.then(function (resolution) {\n assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n });\n transformStream._backpressure = backpressure;\n }\n function TransformStreamDefaultTransform(chunk, transformStreamController) {\n var transformStream = transformStreamController._controlledTransformStream;\n TransformStreamEnqueueToReadable(transformStream, chunk);\n return Promise.resolve();\n }\n function TransformStreamTransform(transformStream, chunk) {\n assert(transformStream._errored === false);\n assert(transformStream._transforming === false);\n assert(transformStream._backpressure === false);\n transformStream._transforming = true;\n var transformer = transformStream._transformer;\n var controller = transformStream._transformStreamController;\n var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n return transformPromise.then(function () {\n transformStream._transforming = false;\n return TransformStreamReadableReadyPromise(transformStream);\n }, function (e) {\n TransformStreamErrorIfNeeded(transformStream, e);\n return Promise.reject(e);\n });\n }\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return true;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return true;\n }\n var TransformStreamSink = function () {\n function TransformStreamSink(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSink);\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n _createClass(TransformStreamSink, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n transformStream._writableController = c;\n return this._startPromise.then(function () {\n return TransformStreamReadableReadyPromise(transformStream);\n });\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n var transformStream = this._transformStream;\n return TransformStreamTransform(transformStream, chunk);\n }\n }, {\n key: 'abort',\n value: function abort() {\n var transformStream = this._transformStream;\n transformStream._writableDone = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));\n }\n }, {\n key: 'close',\n value: function close() {\n var transformStream = this._transformStream;\n assert(transformStream._transforming === false);\n transformStream._writableDone = true;\n var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n return flushPromise.then(function () {\n if (transformStream._errored === true) {\n return Promise.reject(transformStream._storedError);\n }\n if (transformStream._readableClosed === false) {\n TransformStreamCloseReadableInternal(transformStream);\n }\n return Promise.resolve();\n }).catch(function (r) {\n TransformStreamErrorIfNeeded(transformStream, r);\n return Promise.reject(transformStream._storedError);\n });\n }\n }]);\n return TransformStreamSink;\n }();\n var TransformStreamSource = function () {\n function TransformStreamSource(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSource);\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n _createClass(TransformStreamSource, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n transformStream._readableController = c;\n return this._startPromise.then(function () {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n if (transformStream._backpressure === true) {\n return Promise.resolve();\n }\n assert(transformStream._backpressure === false, '_backpressure should have been initialized');\n return transformStream._backpressureChangePromise;\n });\n }\n }, {\n key: 'pull',\n value: function pull() {\n var transformStream = this._transformStream;\n assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n TransformStreamSetBackpressure(transformStream, false);\n return transformStream._backpressureChangePromise;\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n var transformStream = this._transformStream;\n transformStream._readableClosed = true;\n TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));\n }\n }]);\n return TransformStreamSource;\n }();\n var TransformStreamDefaultController = function () {\n function TransformStreamDefaultController(transformStream) {\n _classCallCheck(this, TransformStreamDefaultController);\n if (IsTransformStream(transformStream) === false) {\n throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n }\n if (transformStream._transformStreamController !== undefined) {\n throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n }\n this._controlledTransformStream = transformStream;\n }\n _createClass(TransformStreamDefaultController, [{\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);\n }\n }, {\n key: 'close',\n value: function close() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n TransformStreamCloseReadable(this._controlledTransformStream);\n }\n }, {\n key: 'error',\n value: function error(reason) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamError(this._controlledTransformStream, reason);\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n var transformStream = this._controlledTransformStream;\n var readableController = transformStream._readableController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n }]);\n return TransformStreamDefaultController;\n }();\n var TransformStream = function () {\n function TransformStream() {\n var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, TransformStream);\n this._transformer = transformer;\n var readableStrategy = transformer.readableStrategy,\n writableStrategy = transformer.writableStrategy;\n this._transforming = false;\n this._errored = false;\n this._storedError = undefined;\n this._writableController = undefined;\n this._readableController = undefined;\n this._transformStreamController = undefined;\n this._writableDone = false;\n this._readableClosed = false;\n this._backpressure = undefined;\n this._backpressureChangePromise = undefined;\n this._backpressureChangePromise_resolve = undefined;\n this._transformStreamController = new TransformStreamDefaultController(this);\n var startPromise_resolve = void 0;\n var startPromise = new Promise(function (resolve) {\n startPromise_resolve = resolve;\n });\n var source = new TransformStreamSource(this, startPromise);\n this._readable = new ReadableStream(source, readableStrategy);\n var sink = new TransformStreamSink(this, startPromise);\n this._writable = new WritableStream(sink, writableStrategy);\n assert(this._writableController !== undefined);\n assert(this._readableController !== undefined);\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n TransformStreamSetBackpressure(this, desiredSize <= 0);\n var transformStream = this;\n var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n startPromise_resolve(startResult);\n startPromise.catch(function (e) {\n if (transformStream._errored === false) {\n transformStream._errored = true;\n transformStream._storedError = e;\n }\n });\n }\n _createClass(TransformStream, [{\n key: 'readable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n }\n }, {\n key: 'writable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n }\n }]);\n return TransformStream;\n }();\n module.exports = { TransformStream: TransformStream };\n function defaultControllerBrandCheckException(name) {\n return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n }\n function streamBrandCheckException(name) {\n return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n }\n}, function (module, exports, __w_pdfjs_require__) {\n module.exports = __w_pdfjs_require__(5);\n}]));\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(86);\nmodule.exports = __w_pdfjs_require__(18).Uint8ClampedArray;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar UNSCOPABLES = __w_pdfjs_require__(2)('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(6)(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toObject = __w_pdfjs_require__(13);\nvar toAbsoluteIndex = __w_pdfjs_require__(21);\nvar toLength = __w_pdfjs_require__(8);\nmodule.exports = [].copyWithin || function copyWithin(target, start) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];else delete O[to];\n to += inc;\n from += inc;\n }\n return O;\n};\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(25);\nvar IObject = __w_pdfjs_require__(43);\nvar toObject = __w_pdfjs_require__(13);\nvar toLength = __w_pdfjs_require__(8);\nvar asc = __w_pdfjs_require__(68);\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (; length > index; index++) {\n if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {\n case 3:\n return true;\n case 5:\n return val;\n case 6:\n return index;\n case 2:\n result.push(val);\n } else if (IS_EVERY) return false;\n }\n }\n }return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(10);\nvar isArray = __w_pdfjs_require__(71);\nvar SPECIES = __w_pdfjs_require__(2)('species');\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n return C === undefined ? Array : C;\n};\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar speciesConstructor = __w_pdfjs_require__(67);\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar document = __w_pdfjs_require__(4).document;\nmodule.exports = document && document.documentElement;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar Iterators = __w_pdfjs_require__(11);\nvar ITERATOR = __w_pdfjs_require__(2)('iterator');\nvar ArrayProto = Array.prototype;\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(24);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar create = __w_pdfjs_require__(44);\nvar descriptor = __w_pdfjs_require__(20);\nvar setToStringTag = __w_pdfjs_require__(29);\nvar IteratorPrototype = {};\n__w_pdfjs_require__(6)(IteratorPrototype, __w_pdfjs_require__(2)('iterator'), function () {\n return this;\n});\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(27);\nvar $export = __w_pdfjs_require__(41);\nvar redefine = __w_pdfjs_require__(28);\nvar hide = __w_pdfjs_require__(6);\nvar has = __w_pdfjs_require__(7);\nvar Iterators = __w_pdfjs_require__(11);\nvar $iterCreate = __w_pdfjs_require__(72);\nvar setToStringTag = __w_pdfjs_require__(29);\nvar getPrototypeOf = __w_pdfjs_require__(46);\nvar ITERATOR = __w_pdfjs_require__(2)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys());\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar returnThis = function returnThis() {\n return this;\n};\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function getMethod(kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS:\n return function keys() {\n return new Constructor(this, kind);\n };\n case VALUES:\n return function values() {\n return new Constructor(this, kind);\n };\n }\n return function entries() {\n return new Constructor(this, kind);\n };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n setToStringTag(IteratorPrototype, TAG, true);\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() {\n return $native.call(this);\n };\n }\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ITERATOR = __w_pdfjs_require__(2)('iterator');\nvar SAFE_CLOSING = false;\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () {\n SAFE_CLOSING = true;\n };\n Array.from(riter, function () {\n throw 2;\n });\n} catch (e) {}\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () {\n return { done: safe = true };\n };\n arr[ITERATOR] = function () {\n return iter;\n };\n exec(arr);\n } catch (e) {}\n return safe;\n};\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (done, value) {\n return {\n value: value,\n done: !!done\n };\n};\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(9);\nvar anObject = __w_pdfjs_require__(17);\nvar getKeys = __w_pdfjs_require__(78);\nmodule.exports = __w_pdfjs_require__(5) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) {\n dP.f(O, P = keys[i++], Properties[P]);\n }return O;\n};\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pIE = __w_pdfjs_require__(79);\nvar createDesc = __w_pdfjs_require__(20);\nvar toIObject = __w_pdfjs_require__(22);\nvar toPrimitive = __w_pdfjs_require__(31);\nvar has = __w_pdfjs_require__(7);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(42);\nvar gOPD = Object.getOwnPropertyDescriptor;\nexports.f = __w_pdfjs_require__(5) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) {}\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(47);\nvar enumBugKeys = __w_pdfjs_require__(26);\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = {}.propertyIsEnumerable;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(4);\nvar dP = __w_pdfjs_require__(9);\nvar DESCRIPTORS = __w_pdfjs_require__(5);\nvar SPECIES = __w_pdfjs_require__(2)('species');\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function get() {\n return this;\n }\n });\n};\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\nvar aFunction = __w_pdfjs_require__(34);\nvar SPECIES = __w_pdfjs_require__(2)('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nif (__w_pdfjs_require__(5)) {\n var LIBRARY = __w_pdfjs_require__(27);\n var global = __w_pdfjs_require__(4);\n var fails = __w_pdfjs_require__(19);\n var $export = __w_pdfjs_require__(41);\n var $typed = __w_pdfjs_require__(51);\n var $buffer = __w_pdfjs_require__(83);\n var ctx = __w_pdfjs_require__(25);\n var anInstance = __w_pdfjs_require__(35);\n var propertyDesc = __w_pdfjs_require__(20);\n var hide = __w_pdfjs_require__(6);\n var redefineAll = __w_pdfjs_require__(48);\n var toInteger = __w_pdfjs_require__(12);\n var toLength = __w_pdfjs_require__(8);\n var toIndex = __w_pdfjs_require__(50);\n var toAbsoluteIndex = __w_pdfjs_require__(21);\n var toPrimitive = __w_pdfjs_require__(31);\n var has = __w_pdfjs_require__(7);\n var classof = __w_pdfjs_require__(38);\n var isObject = __w_pdfjs_require__(10);\n var toObject = __w_pdfjs_require__(13);\n var isArrayIter = __w_pdfjs_require__(70);\n var create = __w_pdfjs_require__(44);\n var getPrototypeOf = __w_pdfjs_require__(46);\n var gOPN = __w_pdfjs_require__(45).f;\n var getIterFn = __w_pdfjs_require__(84);\n var uid = __w_pdfjs_require__(14);\n var wks = __w_pdfjs_require__(2);\n var createArrayMethod = __w_pdfjs_require__(66);\n var createArrayIncludes = __w_pdfjs_require__(37);\n var speciesConstructor = __w_pdfjs_require__(81);\n var ArrayIterators = __w_pdfjs_require__(85);\n var Iterators = __w_pdfjs_require__(11);\n var $iterDetect = __w_pdfjs_require__(74);\n var setSpecies = __w_pdfjs_require__(80);\n var arrayFill = __w_pdfjs_require__(36);\n var arrayCopyWithin = __w_pdfjs_require__(65);\n var $DP = __w_pdfjs_require__(9);\n var $GOPD = __w_pdfjs_require__(77);\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n var LITTLE_ENDIAN = fails(function () {\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n var toOffset = function toOffset(it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n var validate = function validate(it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n var allocate = function allocate(C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n }\n return new C(length);\n };\n var speciesFromList = function speciesFromList(O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n var fromList = function fromList(C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) {\n result[index] = list[index++];\n }return result;\n };\n var addGetter = function addGetter(it, key, internal) {\n dP(it, key, {\n get: function get() {\n return this._d[internal];\n }\n });\n };\n var $from = function from(source) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n }\n O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n var $of = function of() {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) {\n result[index] = arguments[index++];\n }return result;\n };\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () {\n arrayToLocaleString.call(new Uint8Array(1));\n });\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n var proto = {\n copyWithin: function copyWithin(target, start) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value) {\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) {\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement) {\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn) {\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn) {\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n }\n return that;\n },\n some: function some(callbackfn) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(O.buffer, O.byteOffset + $begin * O.BYTES_PER_ELEMENT, toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin));\n }\n };\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n var $set = function set(arrayLike) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) {\n this[offset + index] = src[index++];\n }\n };\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n var isTAIndex = function isTAIndex(target, key) {\n return isObject(target) && target[TYPED_ARRAY] && (typeof key === 'undefined' ? 'undefined' : _typeof(key)) != 'symbol' && key in target && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true)) ? propertyDesc(2, target[key]) : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true)) && isObject(desc) && has(desc, 'value') && !has(desc, 'get') && !has(desc, 'set') && !desc.configurable && (!has(desc, 'writable') || desc.writable) && (!has(desc, 'enumerable') || desc.enumerable)) {\n target[key] = desc.value;\n return target;\n }\n return dP(target, key, desc);\n };\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n if (fails(function () {\n arrayToString.call({});\n })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function constructor() {},\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function get() {\n return this[TYPED_ARRAY];\n }\n });\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function getter(that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function setter(that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function addElement(that, index) {\n dP(that, index, {\n get: function get() {\n return getter(this, index);\n },\n set: function set(value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) {\n addElement(that, index++);\n }\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1);\n }) || !$iterDetect(function (iter) {\n new TypedArray();\n new TypedArray(null);\n new TypedArray(1.5);\n new TypedArray(iter);\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined ? new Base(data, toOffset($offset, BYTES), $length) : $offset !== undefined ? new Base(data, toOffset($offset, BYTES)) : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function get() {\n return NAME;\n }\n });\n }\n O[NAME] = TypedArray;\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n $export($export.S, NAME, { BYTES_PER_ELEMENT: BYTES });\n $export($export.S + $export.F * fails(function () {\n Base.of.call(TypedArray, 1);\n }), NAME, {\n from: $from,\n of: $of\n });\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n $export($export.P, NAME, proto);\n setSpecies(NAME);\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () {};\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(4);\nvar DESCRIPTORS = __w_pdfjs_require__(5);\nvar LIBRARY = __w_pdfjs_require__(27);\nvar $typed = __w_pdfjs_require__(51);\nvar hide = __w_pdfjs_require__(6);\nvar redefineAll = __w_pdfjs_require__(48);\nvar fails = __w_pdfjs_require__(19);\nvar anInstance = __w_pdfjs_require__(35);\nvar toInteger = __w_pdfjs_require__(12);\nvar toLength = __w_pdfjs_require__(8);\nvar toIndex = __w_pdfjs_require__(50);\nvar gOPN = __w_pdfjs_require__(45).f;\nvar dP = __w_pdfjs_require__(9).f;\nvar arrayFill = __w_pdfjs_require__(36);\nvar setToStringTag = __w_pdfjs_require__(29);\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n if (value != value || value === Infinity) {\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8) {}\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8) {}\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8) {}\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8) {}\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, {\n get: function get() {\n return this[internal];\n }\n });\n}\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) {\n store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n }\n}\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1);\n }) || fails(function () {\n new $ArrayBuffer();\n new $ArrayBuffer(1.5);\n new $ArrayBuffer(NaN);\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(38);\nvar ITERATOR = __w_pdfjs_require__(2)('iterator');\nvar Iterators = __w_pdfjs_require__(11);\nmodule.exports = __w_pdfjs_require__(18).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar addToUnscopables = __w_pdfjs_require__(64);\nvar step = __w_pdfjs_require__(75);\nvar Iterators = __w_pdfjs_require__(11);\nvar toIObject = __w_pdfjs_require__(22);\nmodule.exports = __w_pdfjs_require__(73)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated);\n this._i = 0;\n this._k = kind;\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\nIterators.Arguments = Iterators.Array;\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(82)('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _obj = __w_pdfjs_require__(58);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _colorspace = __w_pdfjs_require__(15);\n\nvar _evaluator = __w_pdfjs_require__(56);\n\nvar _stream = __w_pdfjs_require__(3);\n\nfunction AnnotationFactory() {}\nAnnotationFactory.prototype = {\n create: function AnnotationFactory_create(xref, ref, pdfManager, idFactory) {\n var dict = xref.fetchIfRef(ref);\n if (!(0, _primitives.isDict)(dict)) {\n return;\n }\n var id = (0, _primitives.isRef)(ref) ? ref.toString() : 'annot_' + idFactory.createObjId();\n var subtype = dict.get('Subtype');\n subtype = (0, _primitives.isName)(subtype) ? subtype.name : null;\n var parameters = {\n xref: xref,\n dict: dict,\n ref: (0, _primitives.isRef)(ref) ? ref : null,\n subtype: subtype,\n id: id,\n pdfManager: pdfManager\n };\n switch (subtype) {\n case 'Link':\n return new LinkAnnotation(parameters);\n case 'Text':\n return new TextAnnotation(parameters);\n case 'Widget':\n var fieldType = _util.Util.getInheritableProperty(dict, 'FT');\n fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n switch (fieldType) {\n case 'Tx':\n return new TextWidgetAnnotation(parameters);\n case 'Btn':\n return new ButtonWidgetAnnotation(parameters);\n case 'Ch':\n return new ChoiceWidgetAnnotation(parameters);\n }\n (0, _util.warn)('Unimplemented widget field type \"' + fieldType + '\", ' + 'falling back to base field type.');\n return new WidgetAnnotation(parameters);\n case 'Popup':\n return new PopupAnnotation(parameters);\n case 'Line':\n return new LineAnnotation(parameters);\n case 'Highlight':\n return new HighlightAnnotation(parameters);\n case 'Underline':\n return new UnderlineAnnotation(parameters);\n case 'Squiggly':\n return new SquigglyAnnotation(parameters);\n case 'StrikeOut':\n return new StrikeOutAnnotation(parameters);\n case 'FileAttachment':\n return new FileAttachmentAnnotation(parameters);\n default:\n if (!subtype) {\n (0, _util.warn)('Annotation is missing the required /Subtype.');\n } else {\n (0, _util.warn)('Unimplemented annotation type \"' + subtype + '\", ' + 'falling back to base annotation.');\n }\n return new Annotation(parameters);\n }\n }\n};\nvar Annotation = function AnnotationClosure() {\n function getTransformMatrix(rect, bbox, matrix) {\n var bounds = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);\n var minX = bounds[0];\n var minY = bounds[1];\n var maxX = bounds[2];\n var maxY = bounds[3];\n if (minX === maxX || minY === maxY) {\n return [1, 0, 0, 1, rect[0], rect[1]];\n }\n var xRatio = (rect[2] - rect[0]) / (maxX - minX);\n var yRatio = (rect[3] - rect[1]) / (maxY - minY);\n return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n }\n function Annotation(params) {\n var dict = params.dict;\n this.setFlags(dict.get('F'));\n this.setRectangle(dict.getArray('Rect'));\n this.setColor(dict.getArray('C'));\n this.setBorderStyle(dict);\n this.setAppearance(dict);\n this.data = {};\n this.data.id = params.id;\n this.data.subtype = params.subtype;\n this.data.annotationFlags = this.flags;\n this.data.rect = this.rectangle;\n this.data.color = this.color;\n this.data.borderStyle = this.borderStyle;\n this.data.hasAppearance = !!this.appearance;\n }\n Annotation.prototype = {\n _hasFlag: function Annotation_hasFlag(flags, flag) {\n return !!(flags & flag);\n },\n _isViewable: function Annotation_isViewable(flags) {\n return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW);\n },\n _isPrintable: function AnnotationFlag_isPrintable(flags) {\n return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN);\n },\n get viewable() {\n if (this.flags === 0) {\n return true;\n }\n return this._isViewable(this.flags);\n },\n get printable() {\n if (this.flags === 0) {\n return false;\n }\n return this._isPrintable(this.flags);\n },\n setFlags: function Annotation_setFlags(flags) {\n this.flags = (0, _util.isInt)(flags) && flags > 0 ? flags : 0;\n },\n hasFlag: function Annotation_hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n },\n setRectangle: function Annotation_setRectangle(rectangle) {\n if ((0, _util.isArray)(rectangle) && rectangle.length === 4) {\n this.rectangle = _util.Util.normalizeRect(rectangle);\n } else {\n this.rectangle = [0, 0, 0, 0];\n }\n },\n setColor: function Annotation_setColor(color) {\n var rgbColor = new Uint8Array(3);\n if (!(0, _util.isArray)(color)) {\n this.color = rgbColor;\n return;\n }\n switch (color.length) {\n case 0:\n this.color = null;\n break;\n case 1:\n _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n this.color = rgbColor;\n break;\n case 3:\n _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n this.color = rgbColor;\n break;\n case 4:\n _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n this.color = rgbColor;\n break;\n default:\n this.color = rgbColor;\n break;\n }\n },\n setBorderStyle: function Annotation_setBorderStyle(borderStyle) {\n this.borderStyle = new AnnotationBorderStyle();\n if (!(0, _primitives.isDict)(borderStyle)) {\n return;\n }\n if (borderStyle.has('BS')) {\n var dict = borderStyle.get('BS');\n var dictType = dict.get('Type');\n if (!dictType || (0, _primitives.isName)(dictType, 'Border')) {\n this.borderStyle.setWidth(dict.get('W'));\n this.borderStyle.setStyle(dict.get('S'));\n this.borderStyle.setDashArray(dict.getArray('D'));\n }\n } else if (borderStyle.has('Border')) {\n var array = borderStyle.getArray('Border');\n if ((0, _util.isArray)(array) && array.length >= 3) {\n this.borderStyle.setHorizontalCornerRadius(array[0]);\n this.borderStyle.setVerticalCornerRadius(array[1]);\n this.borderStyle.setWidth(array[2]);\n if (array.length === 4) {\n this.borderStyle.setDashArray(array[3]);\n }\n }\n } else {\n this.borderStyle.setWidth(0);\n }\n },\n setAppearance: function Annotation_setAppearance(dict) {\n this.appearance = null;\n var appearanceStates = dict.get('AP');\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n var normalAppearanceState = appearanceStates.get('N');\n if ((0, _primitives.isStream)(normalAppearanceState)) {\n this.appearance = normalAppearanceState;\n return;\n }\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n var as = dict.get('AS');\n if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) {\n return;\n }\n this.appearance = normalAppearanceState.get(as.name);\n },\n _preparePopup: function Annotation_preparePopup(dict) {\n if (!dict.has('C')) {\n this.data.color = null;\n }\n this.data.hasPopup = dict.has('Popup');\n this.data.title = (0, _util.stringToPDFString)(dict.get('T') || '');\n this.data.contents = (0, _util.stringToPDFString)(dict.get('Contents') || '');\n },\n loadResources: function Annotation_loadResources(keys) {\n return this.appearance.dict.getAsync('Resources').then(function (resources) {\n if (!resources) {\n return;\n }\n var objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n },\n getOperatorList: function Annotation_getOperatorList(evaluator, task, renderForms) {\n var _this = this;\n\n if (!this.appearance) {\n return Promise.resolve(new _evaluator.OperatorList());\n }\n var data = this.data;\n var appearanceDict = this.appearance.dict;\n var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);\n var bbox = appearanceDict.getArray('BBox') || [0, 0, 1, 1];\n var matrix = appearanceDict.getArray('Matrix') || [1, 0, 0, 1, 0, 0];\n var transform = getTransformMatrix(data.rect, bbox, matrix);\n return resourcesPromise.then(function (resources) {\n var opList = new _evaluator.OperatorList();\n opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]);\n return evaluator.getOperatorList({\n stream: _this.appearance,\n task: task,\n resources: resources,\n operatorList: opList\n }).then(function () {\n opList.addOp(_util.OPS.endAnnotation, []);\n _this.appearance.reset();\n return opList;\n });\n });\n }\n };\n return Annotation;\n}();\nvar AnnotationBorderStyle = function AnnotationBorderStyleClosure() {\n function AnnotationBorderStyle() {\n this.width = 1;\n this.style = _util.AnnotationBorderStyleType.SOLID;\n this.dashArray = [3];\n this.horizontalCornerRadius = 0;\n this.verticalCornerRadius = 0;\n }\n AnnotationBorderStyle.prototype = {\n setWidth: function AnnotationBorderStyle_setWidth(width) {\n if (width === (width | 0)) {\n this.width = width;\n }\n },\n setStyle: function AnnotationBorderStyle_setStyle(style) {\n if (!style) {\n return;\n }\n switch (style.name) {\n case 'S':\n this.style = _util.AnnotationBorderStyleType.SOLID;\n break;\n case 'D':\n this.style = _util.AnnotationBorderStyleType.DASHED;\n break;\n case 'B':\n this.style = _util.AnnotationBorderStyleType.BEVELED;\n break;\n case 'I':\n this.style = _util.AnnotationBorderStyleType.INSET;\n break;\n case 'U':\n this.style = _util.AnnotationBorderStyleType.UNDERLINE;\n break;\n default:\n break;\n }\n },\n setDashArray: function AnnotationBorderStyle_setDashArray(dashArray) {\n if ((0, _util.isArray)(dashArray) && dashArray.length > 0) {\n var isValid = true;\n var allZeros = true;\n for (var i = 0, len = dashArray.length; i < len; i++) {\n var element = dashArray[i];\n var validNumber = +element >= 0;\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n } else {\n this.width = 0;\n }\n } else if (dashArray) {\n this.width = 0;\n }\n },\n setHorizontalCornerRadius: function AnnotationBorderStyle_setHorizontalCornerRadius(radius) {\n if (radius === (radius | 0)) {\n this.horizontalCornerRadius = radius;\n }\n },\n setVerticalCornerRadius: function AnnotationBorderStyle_setVerticalCornerRadius(radius) {\n if (radius === (radius | 0)) {\n this.verticalCornerRadius = radius;\n }\n }\n };\n return AnnotationBorderStyle;\n}();\nvar WidgetAnnotation = function WidgetAnnotationClosure() {\n function WidgetAnnotation(params) {\n Annotation.call(this, params);\n var dict = params.dict;\n var data = this.data;\n data.annotationType = _util.AnnotationType.WIDGET;\n data.fieldName = this._constructFieldName(dict);\n data.fieldValue = _util.Util.getInheritableProperty(dict, 'V', true);\n data.alternativeText = (0, _util.stringToPDFString)(dict.get('TU') || '');\n data.defaultAppearance = _util.Util.getInheritableProperty(dict, 'DA') || '';\n var fieldType = _util.Util.getInheritableProperty(dict, 'FT');\n data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n this.fieldResources = _util.Util.getInheritableProperty(dict, 'DR') || _primitives.Dict.empty;\n data.fieldFlags = _util.Util.getInheritableProperty(dict, 'Ff');\n if (!(0, _util.isInt)(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n data.readOnly = this.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);\n if (data.fieldType === 'Sig') {\n this.setFlags(_util.AnnotationFlag.HIDDEN);\n }\n }\n _util.Util.inherit(WidgetAnnotation, Annotation, {\n _constructFieldName: function WidgetAnnotation_constructFieldName(dict) {\n if (!dict.has('T') && !dict.has('Parent')) {\n (0, _util.warn)('Unknown field name, falling back to empty field name.');\n return '';\n }\n if (!dict.has('Parent')) {\n return (0, _util.stringToPDFString)(dict.get('T'));\n }\n var fieldName = [];\n if (dict.has('T')) {\n fieldName.unshift((0, _util.stringToPDFString)(dict.get('T')));\n }\n var loopDict = dict;\n while (loopDict.has('Parent')) {\n loopDict = loopDict.get('Parent');\n if (!(0, _primitives.isDict)(loopDict)) {\n break;\n }\n if (loopDict.has('T')) {\n fieldName.unshift((0, _util.stringToPDFString)(loopDict.get('T')));\n }\n }\n return fieldName.join('.');\n },\n hasFieldFlag: function WidgetAnnotation_hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n });\n return WidgetAnnotation;\n}();\nvar TextWidgetAnnotation = function TextWidgetAnnotationClosure() {\n function TextWidgetAnnotation(params) {\n WidgetAnnotation.call(this, params);\n this.data.fieldValue = (0, _util.stringToPDFString)(this.data.fieldValue || '');\n var alignment = _util.Util.getInheritableProperty(params.dict, 'Q');\n if (!(0, _util.isInt)(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n this.data.textAlignment = alignment;\n var maximumLength = _util.Util.getInheritableProperty(params.dict, 'MaxLen');\n if (!(0, _util.isInt)(maximumLength) || maximumLength < 0) {\n maximumLength = null;\n }\n this.data.maxLen = maximumLength;\n this.data.multiLine = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);\n this.data.comb = this.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !this.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== null;\n }\n _util.Util.inherit(TextWidgetAnnotation, WidgetAnnotation, {\n getOperatorList: function TextWidgetAnnotation_getOperatorList(evaluator, task, renderForms) {\n var operatorList = new _evaluator.OperatorList();\n if (renderForms) {\n return Promise.resolve(operatorList);\n }\n if (this.appearance) {\n return Annotation.prototype.getOperatorList.call(this, evaluator, task, renderForms);\n }\n if (!this.data.defaultAppearance) {\n return Promise.resolve(operatorList);\n }\n var stream = new _stream.Stream((0, _util.stringToBytes)(this.data.defaultAppearance));\n return evaluator.getOperatorList({\n stream: stream,\n task: task,\n resources: this.fieldResources,\n operatorList: operatorList\n }).then(function () {\n return operatorList;\n });\n }\n });\n return TextWidgetAnnotation;\n}();\nvar ButtonWidgetAnnotation = function ButtonWidgetAnnotationClosure() {\n function ButtonWidgetAnnotation(params) {\n WidgetAnnotation.call(this, params);\n this.data.checkBox = !this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n if (this.data.checkBox) {\n if (!(0, _primitives.isName)(this.data.fieldValue)) {\n return;\n }\n this.data.fieldValue = this.data.fieldValue.name;\n }\n this.data.radioButton = this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n if (this.data.radioButton) {\n this.data.fieldValue = this.data.buttonValue = null;\n var fieldParent = params.dict.get('Parent');\n if ((0, _primitives.isDict)(fieldParent) && fieldParent.has('V')) {\n var fieldParentValue = fieldParent.get('V');\n if ((0, _primitives.isName)(fieldParentValue)) {\n this.data.fieldValue = fieldParentValue.name;\n }\n }\n var appearanceStates = params.dict.get('AP');\n if (!(0, _primitives.isDict)(appearanceStates)) {\n return;\n }\n var normalAppearanceState = appearanceStates.get('N');\n if (!(0, _primitives.isDict)(normalAppearanceState)) {\n return;\n }\n var keys = normalAppearanceState.getKeys();\n for (var i = 0, ii = keys.length; i < ii; i++) {\n if (keys[i] !== 'Off') {\n this.data.buttonValue = keys[i];\n break;\n }\n }\n }\n }\n _util.Util.inherit(ButtonWidgetAnnotation, WidgetAnnotation, {\n getOperatorList: function ButtonWidgetAnnotation_getOperatorList(evaluator, task, renderForms) {\n var operatorList = new _evaluator.OperatorList();\n if (renderForms) {\n return Promise.resolve(operatorList);\n }\n if (this.appearance) {\n return Annotation.prototype.getOperatorList.call(this, evaluator, task, renderForms);\n }\n return Promise.resolve(operatorList);\n }\n });\n return ButtonWidgetAnnotation;\n}();\nvar ChoiceWidgetAnnotation = function ChoiceWidgetAnnotationClosure() {\n function ChoiceWidgetAnnotation(params) {\n WidgetAnnotation.call(this, params);\n this.data.options = [];\n var options = _util.Util.getInheritableProperty(params.dict, 'Opt');\n if ((0, _util.isArray)(options)) {\n var xref = params.xref;\n for (var i = 0, ii = options.length; i < ii; i++) {\n var option = xref.fetchIfRef(options[i]);\n var isOptionArray = (0, _util.isArray)(option);\n this.data.options[i] = {\n exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option,\n displayValue: isOptionArray ? xref.fetchIfRef(option[1]) : option\n };\n }\n }\n if (!(0, _util.isArray)(this.data.fieldValue)) {\n this.data.fieldValue = [this.data.fieldValue];\n }\n this.data.combo = this.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n }\n _util.Util.inherit(ChoiceWidgetAnnotation, WidgetAnnotation, {\n getOperatorList: function ChoiceWidgetAnnotation_getOperatorList(evaluator, task, renderForms) {\n var operatorList = new _evaluator.OperatorList();\n if (renderForms) {\n return Promise.resolve(operatorList);\n }\n return Annotation.prototype.getOperatorList.call(this, evaluator, task, renderForms);\n }\n });\n return ChoiceWidgetAnnotation;\n}();\nvar TextAnnotation = function TextAnnotationClosure() {\n var DEFAULT_ICON_SIZE = 22;\n function TextAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.TEXT;\n if (this.data.hasAppearance) {\n this.data.name = 'NoIcon';\n } else {\n this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n this.data.name = parameters.dict.has('Name') ? parameters.dict.get('Name').name : 'Note';\n }\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(TextAnnotation, Annotation, {});\n return TextAnnotation;\n}();\nvar LinkAnnotation = function LinkAnnotationClosure() {\n function LinkAnnotation(params) {\n Annotation.call(this, params);\n var data = this.data;\n data.annotationType = _util.AnnotationType.LINK;\n _obj.Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: data,\n docBaseUrl: params.pdfManager.docBaseUrl\n });\n }\n _util.Util.inherit(LinkAnnotation, Annotation, {});\n return LinkAnnotation;\n}();\nvar PopupAnnotation = function PopupAnnotationClosure() {\n function PopupAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.POPUP;\n var dict = parameters.dict;\n var parentItem = dict.get('Parent');\n if (!parentItem) {\n (0, _util.warn)('Popup annotation has a missing or invalid parent annotation.');\n return;\n }\n var parentSubtype = parentItem.get('Subtype');\n this.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null;\n this.data.parentId = dict.getRaw('Parent').toString();\n this.data.title = (0, _util.stringToPDFString)(parentItem.get('T') || '');\n this.data.contents = (0, _util.stringToPDFString)(parentItem.get('Contents') || '');\n if (!parentItem.has('C')) {\n this.data.color = null;\n } else {\n this.setColor(parentItem.getArray('C'));\n this.data.color = this.color;\n }\n if (!this.viewable) {\n var parentFlags = parentItem.get('F');\n if (this._isViewable(parentFlags)) {\n this.setFlags(parentFlags);\n }\n }\n }\n _util.Util.inherit(PopupAnnotation, Annotation, {});\n return PopupAnnotation;\n}();\nvar LineAnnotation = function LineAnnotationClosure() {\n function LineAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.LINE;\n var dict = parameters.dict;\n this.data.lineCoordinates = _util.Util.normalizeRect(dict.getArray('L'));\n this._preparePopup(dict);\n }\n _util.Util.inherit(LineAnnotation, Annotation, {});\n return LineAnnotation;\n}();\nvar HighlightAnnotation = function HighlightAnnotationClosure() {\n function HighlightAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.HIGHLIGHT;\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(HighlightAnnotation, Annotation, {});\n return HighlightAnnotation;\n}();\nvar UnderlineAnnotation = function UnderlineAnnotationClosure() {\n function UnderlineAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.UNDERLINE;\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(UnderlineAnnotation, Annotation, {});\n return UnderlineAnnotation;\n}();\nvar SquigglyAnnotation = function SquigglyAnnotationClosure() {\n function SquigglyAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.SQUIGGLY;\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(SquigglyAnnotation, Annotation, {});\n return SquigglyAnnotation;\n}();\nvar StrikeOutAnnotation = function StrikeOutAnnotationClosure() {\n function StrikeOutAnnotation(parameters) {\n Annotation.call(this, parameters);\n this.data.annotationType = _util.AnnotationType.STRIKEOUT;\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(StrikeOutAnnotation, Annotation, {});\n return StrikeOutAnnotation;\n}();\nvar FileAttachmentAnnotation = function FileAttachmentAnnotationClosure() {\n function FileAttachmentAnnotation(parameters) {\n Annotation.call(this, parameters);\n var file = new _obj.FileSpec(parameters.dict.get('FS'), parameters.xref);\n this.data.annotationType = _util.AnnotationType.FILEATTACHMENT;\n this.data.file = file.serializable;\n this._preparePopup(parameters.dict);\n }\n _util.Util.inherit(FileAttachmentAnnotation, Annotation, {});\n return FileAttachmentAnnotation;\n}();\nexports.Annotation = Annotation;\nexports.AnnotationBorderStyle = AnnotationBorderStyle;\nexports.AnnotationFactory = AnnotationFactory;\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bidi = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar baseTypes = ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'ON', 'ES', 'CS', 'ES', 'CS', 'CS', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'CS', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'BN', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON', 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'];\nvar arabicTypes = ['AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ON', 'ON', 'AL', 'ET', 'ET', 'AL', 'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', '', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'NSM', 'NSM', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL'];\nfunction isOdd(i) {\n return (i & 1) !== 0;\n}\nfunction isEven(i) {\n return (i & 1) === 0;\n}\nfunction findUnequal(arr, start, value) {\n for (var j = start, jj = arr.length; j < jj; ++j) {\n if (arr[j] !== value) {\n return j;\n }\n }\n return j;\n}\nfunction setValues(arr, start, end, value) {\n for (var j = start; j < end; ++j) {\n arr[j] = value;\n }\n}\nfunction reverseValues(arr, start, end) {\n for (var i = start, j = end - 1; i < j; ++i, --j) {\n var temp = arr[i];\n arr[i] = arr[j];\n arr[j] = temp;\n }\n}\nfunction createBidiText(str, isLTR, vertical) {\n return {\n str: str,\n dir: vertical ? 'ttb' : isLTR ? 'ltr' : 'rtl'\n };\n}\nvar chars = [];\nvar types = [];\nfunction bidi(str, startLevel, vertical) {\n var isLTR = true;\n var strLength = str.length;\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n chars.length = strLength;\n types.length = strLength;\n var numBidi = 0;\n var i, ii;\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n var charCode = str.charCodeAt(i);\n var charType = 'L';\n if (charCode <= 0x00ff) {\n charType = baseTypes[charCode];\n } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n charType = 'R';\n } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n charType = arabicTypes[charCode & 0xff];\n if (!charType) {\n (0, _util.warn)('Bidi: invalid Unicode character ' + charCode.toString(16));\n }\n } else if (0x0700 <= charCode && charCode <= 0x08AC) {\n charType = 'AL';\n }\n if (charType === 'R' || charType === 'AL' || charType === 'AN') {\n numBidi++;\n }\n types[i] = charType;\n }\n if (numBidi === 0) {\n isLTR = true;\n return createBidiText(str, isLTR);\n }\n if (startLevel === -1) {\n if (numBidi / strLength < 0.3) {\n isLTR = true;\n startLevel = 0;\n } else {\n isLTR = false;\n startLevel = 1;\n }\n }\n var levels = [];\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n var e = isOdd(startLevel) ? 'R' : 'L';\n var sor = e;\n var eor = sor;\n var lastType = sor;\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'NSM') {\n types[i] = lastType;\n } else {\n lastType = types[i];\n }\n }\n lastType = sor;\n var t;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'EN') {\n types[i] = lastType === 'AL' ? 'AN' : 'EN';\n } else if (t === 'R' || t === 'L' || t === 'AL') {\n lastType = t;\n }\n }\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'AL') {\n types[i] = 'R';\n }\n }\n for (i = 1; i < strLength - 1; ++i) {\n if (types[i] === 'ES' && types[i - 1] === 'EN' && types[i + 1] === 'EN') {\n types[i] = 'EN';\n }\n if (types[i] === 'CS' && (types[i - 1] === 'EN' || types[i - 1] === 'AN') && types[i + 1] === types[i - 1]) {\n types[i] = types[i - 1];\n }\n }\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'EN') {\n var j;\n for (j = i - 1; j >= 0; --j) {\n if (types[j] !== 'ET') {\n break;\n }\n types[j] = 'EN';\n }\n for (j = i + 1; j < strLength; ++j) {\n if (types[j] !== 'ET') {\n break;\n }\n types[j] = 'EN';\n }\n }\n }\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS') {\n types[i] = 'ON';\n }\n }\n lastType = sor;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === 'EN') {\n types[i] = lastType === 'L' ? 'L' : 'EN';\n } else if (t === 'R' || t === 'L') {\n lastType = t;\n }\n }\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'ON') {\n var end = findUnequal(types, i + 1, 'ON');\n var before = sor;\n if (i > 0) {\n before = types[i - 1];\n }\n var after = eor;\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n if (before !== 'L') {\n before = 'R';\n }\n if (after !== 'L') {\n after = 'R';\n }\n if (before === after) {\n setValues(types, i, end, before);\n }\n i = end - 1;\n }\n }\n for (i = 0; i < strLength; ++i) {\n if (types[i] === 'ON') {\n types[i] = e;\n }\n }\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (isEven(levels[i])) {\n if (t === 'R') {\n levels[i] += 1;\n } else if (t === 'AN' || t === 'EN') {\n levels[i] += 2;\n }\n } else {\n if (t === 'L' || t === 'AN' || t === 'EN') {\n levels[i] += 1;\n }\n }\n }\n var highestLevel = -1;\n var lowestOddLevel = 99;\n var level;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n if (highestLevel < level) {\n highestLevel = level;\n }\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n var start = -1;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n if (levels[i] < level) {\n if (start >= 0) {\n reverseValues(chars, start, i);\n start = -1;\n }\n } else if (start < 0) {\n start = i;\n }\n }\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n for (i = 0, ii = chars.length; i < ii; ++i) {\n var ch = chars[i];\n if (ch === '<' || ch === '>') {\n chars[i] = '';\n }\n }\n return createBidiText(chars.join(''), isLTR);\n}\nexports.bidi = bidi;\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar 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'];\nvar 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'];\nvar ExpertSubsetCharset = ['.notdef', 'space', 'dollaroldstyle', 'dollarsuperior', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted', 'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter', 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior'];\nexports.ISOAdobeCharset = ISOAdobeCharset;\nexports.ExpertCharset = ExpertCharset;\nexports.ExpertSubsetCharset = ExpertSubsetCharset;\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CMapFactory = exports.IdentityCMap = exports.CMap = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _parser = __w_pdfjs_require__(23);\n\nvar _stream = __w_pdfjs_require__(3);\n\nvar BUILT_IN_CMAPS = ['Adobe-GB1-UCS2', 'Adobe-CNS1-UCS2', 'Adobe-Japan1-UCS2', 'Adobe-Korea1-UCS2', '78-EUC-H', '78-EUC-V', '78-H', '78-RKSJ-H', '78-RKSJ-V', '78-V', '78ms-RKSJ-H', '78ms-RKSJ-V', '83pv-RKSJ-H', '90ms-RKSJ-H', '90ms-RKSJ-V', '90msp-RKSJ-H', '90msp-RKSJ-V', '90pv-RKSJ-H', '90pv-RKSJ-V', 'Add-H', 'Add-RKSJ-H', 'Add-RKSJ-V', 'Add-V', 'Adobe-CNS1-0', 'Adobe-CNS1-1', 'Adobe-CNS1-2', 'Adobe-CNS1-3', 'Adobe-CNS1-4', 'Adobe-CNS1-5', 'Adobe-CNS1-6', 'Adobe-GB1-0', 'Adobe-GB1-1', 'Adobe-GB1-2', 'Adobe-GB1-3', 'Adobe-GB1-4', 'Adobe-GB1-5', 'Adobe-Japan1-0', 'Adobe-Japan1-1', 'Adobe-Japan1-2', 'Adobe-Japan1-3', 'Adobe-Japan1-4', 'Adobe-Japan1-5', 'Adobe-Japan1-6', 'Adobe-Korea1-0', 'Adobe-Korea1-1', 'Adobe-Korea1-2', 'B5-H', 'B5-V', 'B5pc-H', 'B5pc-V', 'CNS-EUC-H', 'CNS-EUC-V', 'CNS1-H', 'CNS1-V', 'CNS2-H', 'CNS2-V', 'ETHK-B5-H', 'ETHK-B5-V', 'ETen-B5-H', 'ETen-B5-V', 'ETenms-B5-H', 'ETenms-B5-V', 'EUC-H', 'EUC-V', 'Ext-H', 'Ext-RKSJ-H', 'Ext-RKSJ-V', 'Ext-V', 'GB-EUC-H', 'GB-EUC-V', 'GB-H', 'GB-V', 'GBK-EUC-H', 'GBK-EUC-V', 'GBK2K-H', 'GBK2K-V', 'GBKp-EUC-H', 'GBKp-EUC-V', 'GBT-EUC-H', 'GBT-EUC-V', 'GBT-H', 'GBT-V', 'GBTpc-EUC-H', 'GBTpc-EUC-V', 'GBpc-EUC-H', 'GBpc-EUC-V', 'H', 'HKdla-B5-H', 'HKdla-B5-V', 'HKdlb-B5-H', 'HKdlb-B5-V', 'HKgccs-B5-H', 'HKgccs-B5-V', 'HKm314-B5-H', 'HKm314-B5-V', 'HKm471-B5-H', 'HKm471-B5-V', 'HKscs-B5-H', 'HKscs-B5-V', 'Hankaku', 'Hiragana', 'KSC-EUC-H', 'KSC-EUC-V', 'KSC-H', 'KSC-Johab-H', 'KSC-Johab-V', 'KSC-V', 'KSCms-UHC-H', 'KSCms-UHC-HW-H', 'KSCms-UHC-HW-V', 'KSCms-UHC-V', 'KSCpc-EUC-H', 'KSCpc-EUC-V', 'Katakana', 'NWP-H', 'NWP-V', 'RKSJ-H', 'RKSJ-V', 'Roman', 'UniCNS-UCS2-H', 'UniCNS-UCS2-V', 'UniCNS-UTF16-H', 'UniCNS-UTF16-V', 'UniCNS-UTF32-H', 'UniCNS-UTF32-V', 'UniCNS-UTF8-H', 'UniCNS-UTF8-V', 'UniGB-UCS2-H', 'UniGB-UCS2-V', 'UniGB-UTF16-H', 'UniGB-UTF16-V', 'UniGB-UTF32-H', 'UniGB-UTF32-V', 'UniGB-UTF8-H', 'UniGB-UTF8-V', 'UniJIS-UCS2-H', 'UniJIS-UCS2-HW-H', 'UniJIS-UCS2-HW-V', 'UniJIS-UCS2-V', 'UniJIS-UTF16-H', 'UniJIS-UTF16-V', 'UniJIS-UTF32-H', 'UniJIS-UTF32-V', 'UniJIS-UTF8-H', 'UniJIS-UTF8-V', 'UniJIS2004-UTF16-H', 'UniJIS2004-UTF16-V', 'UniJIS2004-UTF32-H', 'UniJIS2004-UTF32-V', 'UniJIS2004-UTF8-H', 'UniJIS2004-UTF8-V', 'UniJISPro-UCS2-HW-V', 'UniJISPro-UCS2-V', 'UniJISPro-UTF8-V', 'UniJISX0213-UTF32-H', 'UniJISX0213-UTF32-V', 'UniJISX02132004-UTF32-H', 'UniJISX02132004-UTF32-V', 'UniKS-UCS2-H', 'UniKS-UCS2-V', 'UniKS-UTF16-H', 'UniKS-UTF16-V', 'UniKS-UTF32-H', 'UniKS-UTF32-V', 'UniKS-UTF8-H', 'UniKS-UTF8-V', 'V', 'WP-Symbol'];\nvar CMap = function CMapClosure() {\n function CMap(builtInCMap) {\n this.codespaceRanges = [[], [], [], []];\n this.numCodespaceRanges = 0;\n this._map = [];\n this.name = '';\n this.vertical = false;\n this.useCMap = null;\n this.builtInCMap = builtInCMap;\n }\n CMap.prototype = {\n addCodespaceRange: function addCodespaceRange(n, low, high) {\n this.codespaceRanges[n - 1].push(low, high);\n this.numCodespaceRanges++;\n },\n mapCidRange: function mapCidRange(low, high, dstLow) {\n while (low <= high) {\n this._map[low++] = dstLow++;\n }\n },\n mapBfRange: function mapBfRange(low, high, dstLow) {\n var lastByte = dstLow.length - 1;\n while (low <= high) {\n this._map[low++] = dstLow;\n dstLow = dstLow.substr(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);\n }\n },\n mapBfRangeToArray: function mapBfRangeToArray(low, high, array) {\n var i = 0,\n ii = array.length;\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n },\n mapOne: function mapOne(src, dst) {\n this._map[src] = dst;\n },\n lookup: function lookup(code) {\n return this._map[code];\n },\n contains: function contains(code) {\n return this._map[code] !== undefined;\n },\n forEach: function forEach(callback) {\n var map = this._map;\n var length = map.length;\n if (length <= 0x10000) {\n for (var i = 0; i < length; i++) {\n if (map[i] !== undefined) {\n callback(i, map[i]);\n }\n }\n } else {\n for (var _i in map) {\n callback(_i, map[_i]);\n }\n }\n },\n charCodeOf: function charCodeOf(value) {\n var map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (var charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n },\n getMap: function getMap() {\n return this._map;\n },\n readCharCode: function readCharCode(str, offset, out) {\n var c = 0;\n var codespaceRanges = this.codespaceRanges;\n var codespaceRangesLen = this.codespaceRanges.length;\n for (var n = 0; n < codespaceRangesLen; n++) {\n c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n var codespaceRange = codespaceRanges[n];\n for (var k = 0, kk = codespaceRange.length; k < kk;) {\n var low = codespaceRange[k++];\n var high = codespaceRange[k++];\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\n }\n }\n out.charcode = 0;\n out.length = 1;\n },\n\n get length() {\n return this._map.length;\n },\n get isIdentityCMap() {\n if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) {\n return false;\n }\n if (this._map.length !== 0x10000) {\n return false;\n }\n for (var i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n return true;\n }\n };\n return CMap;\n}();\nvar IdentityCMap = function IdentityCMapClosure() {\n function IdentityCMap(vertical, n) {\n CMap.call(this);\n this.vertical = vertical;\n this.addCodespaceRange(n, 0, 0xffff);\n }\n _util.Util.inherit(IdentityCMap, CMap, {});\n IdentityCMap.prototype = {\n addCodespaceRange: CMap.prototype.addCodespaceRange,\n mapCidRange: function mapCidRange(low, high, dstLow) {\n throw new Error('should not call mapCidRange');\n },\n mapBfRange: function mapBfRange(low, high, dstLow) {\n throw new Error('should not call mapBfRange');\n },\n mapBfRangeToArray: function mapBfRangeToArray(low, high, array) {\n throw new Error('should not call mapBfRangeToArray');\n },\n mapOne: function mapOne(src, dst) {\n throw new Error('should not call mapCidOne');\n },\n lookup: function lookup(code) {\n return (0, _util.isInt)(code) && code <= 0xffff ? code : undefined;\n },\n contains: function contains(code) {\n return (0, _util.isInt)(code) && code <= 0xffff;\n },\n forEach: function forEach(callback) {\n for (var i = 0; i <= 0xffff; i++) {\n callback(i, i);\n }\n },\n charCodeOf: function charCodeOf(value) {\n return (0, _util.isInt)(value) && value <= 0xffff ? value : -1;\n },\n getMap: function getMap() {\n var map = new Array(0x10000);\n for (var i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n return map;\n },\n\n readCharCode: CMap.prototype.readCharCode,\n get length() {\n return 0x10000;\n },\n get isIdentityCMap() {\n throw new Error('should not access .isIdentityCMap');\n }\n };\n return IdentityCMap;\n}();\nvar BinaryCMapReader = function BinaryCMapReaderClosure() {\n function hexToInt(a, size) {\n var n = 0;\n for (var i = 0; i <= size; i++) {\n n = n << 8 | a[i];\n }\n return n >>> 0;\n }\n function hexToStr(a, size) {\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\n return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n }\n function addHex(a, b, size) {\n var c = 0;\n for (var i = size; i >= 0; i--) {\n c += a[i] + b[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n function incHex(a, size) {\n var c = 1;\n for (var i = size; i >= 0 && c > 0; i--) {\n c += a[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n var MAX_NUM_SIZE = 16;\n var MAX_ENCODED_NUM_SIZE = 19;\n function BinaryCMapStream(data) {\n this.buffer = data;\n this.pos = 0;\n this.end = data.length;\n this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n }\n BinaryCMapStream.prototype = {\n readByte: function readByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.buffer[this.pos++];\n },\n readNumber: function readNumber() {\n var n = 0;\n var last;\n do {\n var b = this.readByte();\n if (b < 0) {\n throw new _util.FormatError('unexpected EOF in bcmap');\n }\n last = !(b & 0x80);\n n = n << 7 | b & 0x7F;\n } while (!last);\n return n;\n },\n readSigned: function readSigned() {\n var n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n },\n readHex: function readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n },\n readHexNumber: function readHexNumber(num, size) {\n var last;\n var stack = this.tmpBuf,\n sp = 0;\n do {\n var b = this.readByte();\n if (b < 0) {\n throw new _util.FormatError('unexpected EOF in bcmap');\n }\n last = !(b & 0x80);\n stack[sp++] = b & 0x7F;\n } while (!last);\n var i = size,\n buffer = 0,\n bufferSize = 0;\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer = stack[--sp] << bufferSize | buffer;\n bufferSize += 7;\n }\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n },\n readHexSigned: function readHexSigned(num, size) {\n this.readHexNumber(num, size);\n var sign = num[size] & 1 ? 255 : 0;\n var c = 0;\n for (var i = 0; i <= size; i++) {\n c = (c & 1) << 8 | num[i];\n num[i] = c >> 1 ^ sign;\n }\n },\n readString: function readString() {\n var len = this.readNumber();\n var s = '';\n for (var i = 0; i < len; i++) {\n s += String.fromCharCode(this.readNumber());\n }\n return s;\n }\n };\n function processBinaryCMap(data, cMap, extend) {\n return new Promise(function (resolve, reject) {\n var stream = new BinaryCMapStream(data);\n var header = stream.readByte();\n cMap.vertical = !!(header & 1);\n var useCMap = null;\n var start = new Uint8Array(MAX_NUM_SIZE);\n var end = new Uint8Array(MAX_NUM_SIZE);\n var char = new Uint8Array(MAX_NUM_SIZE);\n var charCode = new Uint8Array(MAX_NUM_SIZE);\n var tmp = new Uint8Array(MAX_NUM_SIZE);\n var code;\n var b;\n while ((b = stream.readByte()) >= 0) {\n var type = b >> 5;\n if (type === 7) {\n switch (b & 0x1F) {\n case 0:\n stream.readString();\n break;\n case 1:\n useCMap = stream.readString();\n break;\n }\n continue;\n }\n var sequence = !!(b & 0x10);\n var dataSize = b & 15;\n if (dataSize + 1 > MAX_NUM_SIZE) {\n throw new Error('processBinaryCMap: Invalid dataSize.');\n }\n var ucs2DataSize = 1;\n var subitemsCount = stream.readNumber();\n var i;\n switch (type) {\n case 0:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n }\n break;\n case 1:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n }\n break;\n case 2:\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n break;\n case 3:\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n }\n break;\n case 4:\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n for (i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n break;\n case 5:\n stream.readHex(start, ucs2DataSize);\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n for (i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n }\n break;\n default:\n reject(new Error('processBinaryCMap: Unknown type: ' + type));\n return;\n }\n }\n if (useCMap) {\n resolve(extend(useCMap));\n return;\n }\n resolve(cMap);\n });\n }\n function BinaryCMapReader() {}\n BinaryCMapReader.prototype = { process: processBinaryCMap };\n return BinaryCMapReader;\n}();\nvar CMapFactory = function CMapFactoryClosure() {\n function strToInt(str) {\n var a = 0;\n for (var i = 0; i < str.length; i++) {\n a = a << 8 | str.charCodeAt(i);\n }\n return a >>> 0;\n }\n function expectString(obj) {\n if (!(0, _util.isString)(obj)) {\n throw new _util.FormatError('Malformed CMap: expected string.');\n }\n }\n function expectInt(obj) {\n if (!(0, _util.isInt)(obj)) {\n throw new _util.FormatError('Malformed CMap: expected int.');\n }\n }\n function parseBfChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endbfchar')) {\n return;\n }\n expectString(obj);\n var src = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n function parseBfRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endbfrange')) {\n return;\n }\n expectString(obj);\n var low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var high = strToInt(obj);\n obj = lexer.getObj();\n if ((0, _util.isInt)(obj) || (0, _util.isString)(obj)) {\n var dstLow = (0, _util.isInt)(obj) ? String.fromCharCode(obj) : obj;\n cMap.mapBfRange(low, high, dstLow);\n } else if ((0, _primitives.isCmd)(obj, '[')) {\n obj = lexer.getObj();\n var array = [];\n while (!(0, _primitives.isCmd)(obj, ']') && !(0, _primitives.isEOF)(obj)) {\n array.push(obj);\n obj = lexer.getObj();\n }\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n throw new _util.FormatError('Invalid bf range.');\n }\n function parseCidChar(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endcidchar')) {\n return;\n }\n expectString(obj);\n var src = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n var dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n function parseCidRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endcidrange')) {\n return;\n }\n expectString(obj);\n var low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n var high = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n var dstLow = obj;\n cMap.mapCidRange(low, high, dstLow);\n }\n }\n function parseCodespaceRange(cMap, lexer) {\n while (true) {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n }\n if ((0, _primitives.isCmd)(obj, 'endcodespacerange')) {\n return;\n }\n if (!(0, _util.isString)(obj)) {\n break;\n }\n var low = strToInt(obj);\n obj = lexer.getObj();\n if (!(0, _util.isString)(obj)) {\n break;\n }\n var high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n throw new _util.FormatError('Invalid codespace range.');\n }\n function parseWMode(cMap, lexer) {\n var obj = lexer.getObj();\n if ((0, _util.isInt)(obj)) {\n cMap.vertical = !!obj;\n }\n }\n function parseCMapName(cMap, lexer) {\n var obj = lexer.getObj();\n if ((0, _primitives.isName)(obj) && (0, _util.isString)(obj.name)) {\n cMap.name = obj.name;\n }\n }\n function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n var previous;\n var embededUseCMap;\n objLoop: while (true) {\n try {\n var obj = lexer.getObj();\n if ((0, _primitives.isEOF)(obj)) {\n break;\n } else if ((0, _primitives.isName)(obj)) {\n if (obj.name === 'WMode') {\n parseWMode(cMap, lexer);\n } else if (obj.name === 'CMapName') {\n parseCMapName(cMap, lexer);\n }\n previous = obj;\n } else if ((0, _primitives.isCmd)(obj)) {\n switch (obj.cmd) {\n case 'endcmap':\n break objLoop;\n case 'usecmap':\n if ((0, _primitives.isName)(previous)) {\n embededUseCMap = previous.name;\n }\n break;\n case 'begincodespacerange':\n parseCodespaceRange(cMap, lexer);\n break;\n case 'beginbfchar':\n parseBfChar(cMap, lexer);\n break;\n case 'begincidchar':\n parseCidChar(cMap, lexer);\n break;\n case 'beginbfrange':\n parseBfRange(cMap, lexer);\n break;\n case 'begincidrange':\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.warn)('Invalid cMap data: ' + ex);\n continue;\n }\n }\n if (!useCMap && embededUseCMap) {\n useCMap = embededUseCMap;\n }\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n return Promise.resolve(cMap);\n }\n function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) {\n cMap.useCMap = newCMap;\n if (cMap.numCodespaceRanges === 0) {\n var useCodespaceRanges = cMap.useCMap.codespaceRanges;\n for (var i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n cMap.useCMap.forEach(function (key, value) {\n if (!cMap.contains(key)) {\n cMap.mapOne(key, cMap.useCMap.lookup(key));\n }\n });\n return cMap;\n });\n }\n function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === 'Identity-H') {\n return Promise.resolve(new IdentityCMap(false, 2));\n } else if (name === 'Identity-V') {\n return Promise.resolve(new IdentityCMap(true, 2));\n }\n if (BUILT_IN_CMAPS.indexOf(name) === -1) {\n return Promise.reject(new Error('Unknown CMap name: ' + name));\n }\n if (!fetchBuiltInCMap) {\n return Promise.reject(new Error('Built-in CMap parameters are not provided.'));\n }\n return fetchBuiltInCMap(name).then(function (data) {\n var cMapData = data.cMapData,\n compressionType = data.compressionType;\n var cMap = new CMap(true);\n if (compressionType === _util.CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n });\n }\n if (compressionType === _util.CMapCompressionType.NONE) {\n var lexer = new _parser.Lexer(new _stream.Stream(cMapData));\n return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n }\n return Promise.reject(new Error('TODO: Only BINARY/NONE CMap compression is currently supported.'));\n });\n }\n return {\n create: function create(params) {\n var encoding = params.encoding;\n var fetchBuiltInCMap = params.fetchBuiltInCMap;\n var useCMap = params.useCMap;\n if ((0, _primitives.isName)(encoding)) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if ((0, _primitives.isStream)(encoding)) {\n var cMap = new CMap();\n var lexer = new _parser.Lexer(encoding);\n return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (parsedCMap) {\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n return parsedCMap;\n });\n }\n return Promise.reject(new Error('Encoding required.'));\n }\n };\n}();\nexports.CMap = CMap;\nexports.IdentityCMap = IdentityCMap;\nexports.CMapFactory = CMapFactory;\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFDocument = exports.Page = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _obj = __w_pdfjs_require__(58);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _stream = __w_pdfjs_require__(3);\n\nvar _evaluator = __w_pdfjs_require__(56);\n\nvar _annotation = __w_pdfjs_require__(87);\n\nvar _crypto = __w_pdfjs_require__(55);\n\nvar _parser = __w_pdfjs_require__(23);\n\nvar Page = function PageClosure() {\n var DEFAULT_USER_UNIT = 1.0;\n var LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n function isAnnotationRenderable(annotation, intent) {\n return intent === 'display' && annotation.viewable || intent === 'print' && annotation.printable;\n }\n function Page(pdfManager, xref, pageIndex, pageDict, ref, fontCache, builtInCMapCache) {\n this.pdfManager = pdfManager;\n this.pageIndex = pageIndex;\n this.pageDict = pageDict;\n this.xref = xref;\n this.ref = ref;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n var uniquePrefix = 'p' + this.pageIndex + '_';\n var idCounters = { obj: 0 };\n this.idFactory = {\n createObjId: function createObjId() {\n return uniquePrefix + ++idCounters.obj;\n }\n };\n }\n Page.prototype = {\n getPageProp: function Page_getPageProp(key) {\n return this.pageDict.get(key);\n },\n getInheritedPageProp: function Page_getInheritedPageProp(key, getArray) {\n var dict = this.pageDict,\n valueArray = null,\n loopCount = 0;\n var MAX_LOOP_COUNT = 100;\n getArray = getArray || false;\n while (dict) {\n var value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (!valueArray) {\n valueArray = [];\n }\n valueArray.push(value);\n }\n if (++loopCount > MAX_LOOP_COUNT) {\n (0, _util.warn)('getInheritedPageProp: maximum loop count exceeded for ' + key);\n return valueArray ? valueArray[0] : undefined;\n }\n dict = dict.get('Parent');\n }\n if (!valueArray) {\n return undefined;\n }\n if (valueArray.length === 1 || !(0, _primitives.isDict)(valueArray[0])) {\n return valueArray[0];\n }\n return _primitives.Dict.merge(this.xref, valueArray);\n },\n get content() {\n return this.getPageProp('Contents');\n },\n get resources() {\n return (0, _util.shadow)(this, 'resources', this.getInheritedPageProp('Resources') || _primitives.Dict.empty);\n },\n get mediaBox() {\n var mediaBox = this.getInheritedPageProp('MediaBox', true);\n if (!(0, _util.isArray)(mediaBox) || mediaBox.length !== 4) {\n return (0, _util.shadow)(this, 'mediaBox', LETTER_SIZE_MEDIABOX);\n }\n return (0, _util.shadow)(this, 'mediaBox', mediaBox);\n },\n get cropBox() {\n var cropBox = this.getInheritedPageProp('CropBox', true);\n if (!(0, _util.isArray)(cropBox) || cropBox.length !== 4) {\n return (0, _util.shadow)(this, 'cropBox', this.mediaBox);\n }\n return (0, _util.shadow)(this, 'cropBox', cropBox);\n },\n get userUnit() {\n var obj = this.getPageProp('UserUnit');\n if (!(0, _util.isNum)(obj) || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n return (0, _util.shadow)(this, 'userUnit', obj);\n },\n get view() {\n var mediaBox = this.mediaBox,\n cropBox = this.cropBox;\n if (mediaBox === cropBox) {\n return (0, _util.shadow)(this, 'view', mediaBox);\n }\n var intersection = _util.Util.intersect(cropBox, mediaBox);\n return (0, _util.shadow)(this, 'view', intersection || mediaBox);\n },\n get rotate() {\n var rotate = this.getInheritedPageProp('Rotate') || 0;\n if (rotate % 90 !== 0) {\n rotate = 0;\n } else if (rotate >= 360) {\n rotate = rotate % 360;\n } else if (rotate < 0) {\n rotate = (rotate % 360 + 360) % 360;\n }\n return (0, _util.shadow)(this, 'rotate', rotate);\n },\n getContentStream: function Page_getContentStream() {\n var content = this.content;\n var stream;\n if ((0, _util.isArray)(content)) {\n var xref = this.xref;\n var i,\n n = content.length;\n var streams = [];\n for (i = 0; i < n; ++i) {\n streams.push(xref.fetchIfRef(content[i]));\n }\n stream = new _stream.StreamsSequenceStream(streams);\n } else if ((0, _primitives.isStream)(content)) {\n stream = content;\n } else {\n stream = new _stream.NullStream();\n }\n return stream;\n },\n loadResources: function Page_loadResources(keys) {\n var _this = this;\n\n if (!this.resourcesPromise) {\n this.resourcesPromise = this.pdfManager.ensure(this, 'resources');\n }\n return this.resourcesPromise.then(function () {\n var objectLoader = new _obj.ObjectLoader(_this.resources, keys, _this.xref);\n return objectLoader.load();\n });\n },\n getOperatorList: function getOperatorList(_ref) {\n var _this2 = this;\n\n var handler = _ref.handler,\n task = _ref.task,\n intent = _ref.intent,\n renderInteractiveForms = _ref.renderInteractiveForms;\n\n var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');\n var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);\n var partialEvaluator = new _evaluator.PartialEvaluator({\n pdfManager: this.pdfManager,\n xref: this.xref,\n handler: handler,\n pageIndex: this.pageIndex,\n idFactory: this.idFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n options: this.evaluatorOptions\n });\n var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n var pageListPromise = dataPromises.then(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 1),\n contentStream = _ref3[0];\n\n var opList = new _evaluator.OperatorList(intent, handler, _this2.pageIndex);\n handler.send('StartRenderPage', {\n transparency: partialEvaluator.hasBlendModes(_this2.resources),\n pageIndex: _this2.pageIndex,\n intent: intent\n });\n return partialEvaluator.getOperatorList({\n stream: contentStream,\n task: task,\n resources: _this2.resources,\n operatorList: opList\n }).then(function () {\n return opList;\n });\n });\n var annotationsPromise = this.pdfManager.ensure(this, 'annotations');\n return Promise.all([pageListPromise, annotationsPromise]).then(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n pageOpList = _ref5[0],\n annotations = _ref5[1];\n\n if (annotations.length === 0) {\n pageOpList.flush(true);\n return pageOpList;\n }\n var i,\n ii,\n opListPromises = [];\n for (i = 0, ii = annotations.length; i < ii; i++) {\n if (isAnnotationRenderable(annotations[i], intent)) {\n opListPromises.push(annotations[i].getOperatorList(partialEvaluator, task, renderInteractiveForms));\n }\n }\n return Promise.all(opListPromises).then(function (opLists) {\n pageOpList.addOp(_util.OPS.beginAnnotations, []);\n for (i = 0, ii = opLists.length; i < ii; i++) {\n pageOpList.addOpList(opLists[i]);\n }\n pageOpList.addOp(_util.OPS.endAnnotations, []);\n pageOpList.flush(true);\n return pageOpList;\n });\n });\n },\n extractTextContent: function extractTextContent(_ref6) {\n var _this3 = this;\n\n var handler = _ref6.handler,\n task = _ref6.task,\n normalizeWhitespace = _ref6.normalizeWhitespace,\n sink = _ref6.sink,\n combineTextItems = _ref6.combineTextItems;\n\n var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');\n var resourcesPromise = this.loadResources(['ExtGState', 'XObject', 'Font']);\n var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 1),\n contentStream = _ref8[0];\n\n var partialEvaluator = new _evaluator.PartialEvaluator({\n pdfManager: _this3.pdfManager,\n xref: _this3.xref,\n handler: handler,\n pageIndex: _this3.pageIndex,\n idFactory: _this3.idFactory,\n fontCache: _this3.fontCache,\n builtInCMapCache: _this3.builtInCMapCache,\n options: _this3.evaluatorOptions\n });\n return partialEvaluator.getTextContent({\n stream: contentStream,\n task: task,\n resources: _this3.resources,\n normalizeWhitespace: normalizeWhitespace,\n combineTextItems: combineTextItems,\n sink: sink\n });\n });\n },\n\n getAnnotationsData: function Page_getAnnotationsData(intent) {\n var annotations = this.annotations;\n var annotationsData = [];\n for (var i = 0, n = annotations.length; i < n; ++i) {\n if (!intent || isAnnotationRenderable(annotations[i], intent)) {\n annotationsData.push(annotations[i].data);\n }\n }\n return annotationsData;\n },\n get annotations() {\n var annotations = [];\n var annotationRefs = this.getInheritedPageProp('Annots') || [];\n var annotationFactory = new _annotation.AnnotationFactory();\n for (var i = 0, n = annotationRefs.length; i < n; ++i) {\n var annotationRef = annotationRefs[i];\n var annotation = annotationFactory.create(this.xref, annotationRef, this.pdfManager, this.idFactory);\n if (annotation) {\n annotations.push(annotation);\n }\n }\n return (0, _util.shadow)(this, 'annotations', annotations);\n }\n };\n return Page;\n}();\nvar PDFDocument = function PDFDocumentClosure() {\n var FINGERPRINT_FIRST_BYTES = 1024;\n var EMPTY_FINGERPRINT = '\\x00\\x00\\x00\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00';\n function PDFDocument(pdfManager, arg) {\n var stream;\n if ((0, _primitives.isStream)(arg)) {\n stream = arg;\n } else if ((0, _util.isArrayBuffer)(arg)) {\n stream = new _stream.Stream(arg);\n } else {\n throw new Error('PDFDocument: Unknown argument type');\n }\n if (stream.length <= 0) {\n throw new Error('PDFDocument: stream must have data');\n }\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new _obj.XRef(stream, pdfManager);\n }\n function find(stream, needle, limit, backwards) {\n var pos = stream.pos;\n var end = stream.end;\n var strBuf = [];\n if (pos + limit > end) {\n limit = end - pos;\n }\n for (var n = 0; n < limit; ++n) {\n strBuf.push(String.fromCharCode(stream.getByte()));\n }\n var str = strBuf.join('');\n stream.pos = pos;\n var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle);\n if (index === -1) {\n return false;\n }\n stream.pos += index;\n return true;\n }\n var DocumentInfoValidators = {\n get entries() {\n return (0, _util.shadow)(this, 'entries', {\n Title: _util.isString,\n Author: _util.isString,\n Subject: _util.isString,\n Keywords: _util.isString,\n Creator: _util.isString,\n Producer: _util.isString,\n CreationDate: _util.isString,\n ModDate: _util.isString,\n Trapped: _primitives.isName\n });\n }\n };\n PDFDocument.prototype = {\n parse: function PDFDocument_parse(recoveryMode) {\n this.setup(recoveryMode);\n var version = this.catalog.catDict.get('Version');\n if ((0, _primitives.isName)(version)) {\n this.pdfFormatVersion = version.name;\n }\n try {\n this.acroForm = this.catalog.catDict.get('AcroForm');\n if (this.acroForm) {\n this.xfa = this.acroForm.get('XFA');\n var fields = this.acroForm.get('Fields');\n if ((!fields || !(0, _util.isArray)(fields) || fields.length === 0) && !this.xfa) {\n this.acroForm = null;\n }\n }\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n (0, _util.info)('Something wrong with AcroForm entry');\n this.acroForm = null;\n }\n },\n get linearization() {\n var linearization = null;\n if (this.stream.length) {\n try {\n linearization = _parser.Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof _util.MissingDataException) {\n throw err;\n }\n (0, _util.info)(err);\n }\n }\n return (0, _util.shadow)(this, 'linearization', linearization);\n },\n get startXRef() {\n var stream = this.stream;\n var startXRef = 0;\n var linearization = this.linearization;\n if (linearization) {\n stream.reset();\n if (find(stream, 'endobj', 1024)) {\n startXRef = stream.pos + 6;\n }\n } else {\n var step = 1024;\n var found = false,\n pos = stream.end;\n while (!found && pos > 0) {\n pos -= step - 'startxref'.length;\n if (pos < 0) {\n pos = 0;\n }\n stream.pos = pos;\n found = find(stream, 'startxref', step, true);\n }\n if (found) {\n stream.skip(9);\n var ch;\n do {\n ch = stream.getByte();\n } while ((0, _util.isSpace)(ch));\n var str = '';\n while (ch >= 0x20 && ch <= 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n startXRef = parseInt(str, 10);\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n return (0, _util.shadow)(this, 'startXRef', startXRef);\n },\n get mainXRefEntriesOffset() {\n var mainXRefEntriesOffset = 0;\n var linearization = this.linearization;\n if (linearization) {\n mainXRefEntriesOffset = linearization.mainXRefEntriesOffset;\n }\n return (0, _util.shadow)(this, 'mainXRefEntriesOffset', mainXRefEntriesOffset);\n },\n checkHeader: function PDFDocument_checkHeader() {\n var stream = this.stream;\n stream.reset();\n if (find(stream, '%PDF-', 1024)) {\n stream.moveStart();\n var MAX_VERSION_LENGTH = 12;\n var version = '',\n ch;\n while ((ch = stream.getByte()) > 0x20) {\n if (version.length >= MAX_VERSION_LENGTH) {\n break;\n }\n version += String.fromCharCode(ch);\n }\n if (!this.pdfFormatVersion) {\n this.pdfFormatVersion = version.substring(5);\n }\n return;\n }\n },\n parseStartXRef: function PDFDocument_parseStartXRef() {\n var startXRef = this.startXRef;\n this.xref.setStartXRef(startXRef);\n },\n setup: function PDFDocument_setup(recoveryMode) {\n var _this4 = this;\n\n this.xref.parse(recoveryMode);\n var pageFactory = {\n createPage: function createPage(pageIndex, dict, ref, fontCache, builtInCMapCache) {\n return new Page(_this4.pdfManager, _this4.xref, pageIndex, dict, ref, fontCache, builtInCMapCache);\n }\n };\n this.catalog = new _obj.Catalog(this.pdfManager, this.xref, pageFactory);\n },\n get numPages() {\n var linearization = this.linearization;\n var num = linearization ? linearization.numPages : this.catalog.numPages;\n return (0, _util.shadow)(this, 'numPages', num);\n },\n get documentInfo() {\n var docInfo = {\n PDFFormatVersion: this.pdfFormatVersion,\n IsAcroFormPresent: !!this.acroForm,\n IsXFAPresent: !!this.xfa\n };\n var infoDict;\n try {\n infoDict = this.xref.trailer.get('Info');\n } catch (err) {\n if (err instanceof _util.MissingDataException) {\n throw err;\n }\n (0, _util.info)('The document information dictionary is invalid.');\n }\n if (infoDict) {\n var validEntries = DocumentInfoValidators.entries;\n for (var key in validEntries) {\n if (infoDict.has(key)) {\n var value = infoDict.get(key);\n if (validEntries[key](value)) {\n docInfo[key] = typeof value !== 'string' ? value : (0, _util.stringToPDFString)(value);\n } else {\n (0, _util.info)('Bad value in document info for \"' + key + '\"');\n }\n }\n }\n }\n return (0, _util.shadow)(this, 'documentInfo', docInfo);\n },\n get fingerprint() {\n var xref = this.xref,\n hash,\n fileID = '';\n var idArray = xref.trailer.get('ID');\n if (idArray && (0, _util.isArray)(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) {\n hash = (0, _util.stringToBytes)(idArray[0]);\n } else {\n if (this.stream.ensureRange) {\n this.stream.ensureRange(0, Math.min(FINGERPRINT_FIRST_BYTES, this.stream.end));\n }\n hash = (0, _crypto.calculateMD5)(this.stream.bytes.subarray(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n }\n for (var i = 0, n = hash.length; i < n; i++) {\n var hex = hash[i].toString(16);\n fileID += hex.length === 1 ? '0' + hex : hex;\n }\n return (0, _util.shadow)(this, 'fingerprint', fileID);\n },\n getPage: function PDFDocument_getPage(pageIndex) {\n return this.catalog.getPage(pageIndex);\n },\n cleanup: function PDFDocument_cleanup() {\n return this.catalog.cleanup();\n }\n };\n return PDFDocument;\n}();\nexports.Page = Page;\nexports.PDFDocument = PDFDocument;\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontRendererFactory = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _cff_parser = __w_pdfjs_require__(53);\n\nvar _glyphlist = __w_pdfjs_require__(33);\n\nvar _encodings = __w_pdfjs_require__(16);\n\nvar _stream = __w_pdfjs_require__(3);\n\nvar FontRendererFactory = function FontRendererFactoryClosure() {\n function getLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n }\n function getUshort(data, offset) {\n return data[offset] << 8 | data[offset + 1];\n }\n function parseCmap(data, start, end) {\n var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16);\n var format = getUshort(data, start + offset);\n var ranges, p, i;\n if (format === 4) {\n getUshort(data, start + offset + 2);\n var segCount = getUshort(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = { end: getUshort(data, p) };\n }\n p += 2;\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUshort(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUshort(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n var idOffset = getUshort(data, p);\n if (idOffset === 0) {\n continue;\n }\n ranges[i].ids = [];\n for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n ranges[i].ids[j] = getUshort(data, p + idOffset);\n idOffset += 2;\n }\n }\n return ranges;\n } else if (format === 12) {\n getLong(data, start + offset + 4);\n var groups = getLong(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n for (i = 0; i < groups; i++) {\n ranges.push({\n start: getLong(data, p),\n end: getLong(data, p + 4),\n idDelta: getLong(data, p + 8) - getLong(data, p)\n });\n p += 12;\n }\n return ranges;\n }\n throw new _util.FormatError('unsupported cmap: ' + format);\n }\n function parseCff(data, start, end, seacAnalysisEnabled) {\n var properties = {};\n var parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n var cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects,\n gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects\n };\n }\n function parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n var itemSize, itemDecode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n };\n } else {\n itemSize = 2;\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n }\n var glyphs = [];\n var startOffset = itemDecode(loca, 0);\n for (var j = itemSize; j < loca.length; j += itemSize) {\n var endOffset = itemDecode(loca, j);\n glyphs.push(glyf.subarray(startOffset, endOffset));\n startOffset = endOffset;\n }\n return glyphs;\n }\n function lookupCmap(ranges, unicode) {\n var code = unicode.charCodeAt(0),\n gid = 0;\n var l = 0,\n r = ranges.length - 1;\n while (l < r) {\n var c = l + r + 1 >> 1;\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xFFFF;\n }\n return {\n charCode: code,\n glyphId: gid\n };\n }\n function compileGlyf(code, cmds, font) {\n function moveTo(x, y) {\n cmds.push({\n cmd: 'moveTo',\n args: [x, y]\n });\n }\n function lineTo(x, y) {\n cmds.push({\n cmd: 'lineTo',\n args: [x, y]\n });\n }\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({\n cmd: 'quadraticCurveTo',\n args: [xa, ya, x, y]\n });\n }\n var i = 0;\n var numberOfContours = (code[i] << 24 | code[i + 1] << 16) >> 16;\n var flags;\n var x = 0,\n y = 0;\n i += 10;\n if (numberOfContours < 0) {\n do {\n flags = code[i] << 8 | code[i + 1];\n var glyphIndex = code[i + 2] << 8 | code[i + 3];\n i += 4;\n var arg1, arg2;\n if (flags & 0x01) {\n arg1 = (code[i] << 24 | code[i + 1] << 16) >> 16;\n arg2 = (code[i + 2] << 24 | code[i + 3] << 16) >> 16;\n i += 4;\n } else {\n arg1 = code[i++];\n arg2 = code[i++];\n }\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n var scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\n if (flags & 0x08) {\n scaleX = scaleY = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n i += 2;\n } else if (flags & 0x40) {\n scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n scaleY = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n i += 4;\n } else if (flags & 0x80) {\n scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n scale01 = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n scale10 = (code[i + 4] << 24 | code[i + 5] << 16) / 1073741824;\n scaleY = (code[i + 6] << 24 | code[i + 7] << 16) / 1073741824;\n i += 8;\n }\n var subglyph = font.glyphs[glyphIndex];\n if (subglyph) {\n cmds.push({ cmd: 'save' });\n cmds.push({\n cmd: 'transform',\n args: [scaleX, scale01, scale10, scaleY, x, y]\n });\n compileGlyf(subglyph, cmds, font);\n cmds.push({ cmd: 'restore' });\n }\n } while (flags & 0x20);\n } else {\n var endPtsOfContours = [];\n var j, jj;\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(code[i] << 8 | code[i + 1]);\n i += 2;\n }\n var instructionLength = code[i] << 8 | code[i + 1];\n i += 2 + instructionLength;\n var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n var points = [];\n while (points.length < numberOfPoints) {\n flags = code[i++];\n var repeat = 1;\n if (flags & 0x08) {\n repeat += code[i++];\n }\n while (repeat-- > 0) {\n points.push({ flags: flags });\n }\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x12) {\n case 0x00:\n x += (code[i] << 24 | code[i + 1] << 16) >> 16;\n i += 2;\n break;\n case 0x02:\n x -= code[i++];\n break;\n case 0x12:\n x += code[i++];\n break;\n }\n points[j].x = x;\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x24) {\n case 0x00:\n y += (code[i] << 24 | code[i + 1] << 16) >> 16;\n i += 2;\n break;\n case 0x04:\n y -= code[i++];\n break;\n case 0x24:\n y += code[i++];\n break;\n }\n points[j].y = y;\n }\n var startPoint = 0;\n for (i = 0; i < numberOfContours; i++) {\n var endPoint = endPtsOfContours[i];\n var contour = points.slice(startPoint, endPoint + 1);\n if (contour[0].flags & 1) {\n contour.push(contour[0]);\n } else if (contour[contour.length - 1].flags & 1) {\n contour.unshift(contour[contour.length - 1]);\n } else {\n var p = {\n flags: 1,\n x: (contour[0].x + contour[contour.length - 1].x) / 2,\n y: (contour[0].y + contour[contour.length - 1].y) / 2\n };\n contour.unshift(p);\n contour.push(p);\n }\n moveTo(contour[0].x, contour[0].y);\n for (j = 1, jj = contour.length; j < jj; j++) {\n if (contour[j].flags & 1) {\n lineTo(contour[j].x, contour[j].y);\n } else if (contour[j + 1].flags & 1) {\n quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);\n j++;\n } else {\n quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2);\n }\n }\n startPoint = endPoint + 1;\n }\n }\n }\n function compileCharString(code, cmds, font) {\n var stack = [];\n var x = 0,\n y = 0;\n var stems = 0;\n function moveTo(x, y) {\n cmds.push({\n cmd: 'moveTo',\n args: [x, y]\n });\n }\n function lineTo(x, y) {\n cmds.push({\n cmd: 'lineTo',\n args: [x, y]\n });\n }\n function bezierCurveTo(x1, y1, x2, y2, x, y) {\n cmds.push({\n cmd: 'bezierCurveTo',\n args: [x1, y1, x2, y2, x, y]\n });\n }\n function parse(code) {\n var i = 0;\n while (i < code.length) {\n var stackClean = false;\n var v = code[i++];\n var xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n switch (v) {\n case 1:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 3:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 4:\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 5:\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 6:\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 7:\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n x += stack.shift();\n lineTo(x, y);\n }\n break;\n case 8:\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 10:\n n = stack.pop() + font.subrsBias;\n subrCode = font.subrs[n];\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 11:\n return;\n case 12:\n v = code[i++];\n switch (v) {\n case 34:\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y1 = y + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y, xb, y1, x, y1);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y, x, y);\n break;\n case 35:\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n stack.pop();\n break;\n case 36:\n xa = x + stack.shift();\n y1 = y + stack.shift();\n xb = xa + stack.shift();\n y2 = y1 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y2, x, y2);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y3 = y2 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y2, xb, y3, x, y);\n break;\n case 37:\n var x0 = x,\n y0 = y;\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb;\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n default:\n throw new _util.FormatError('unknown operator: 12 ' + v);\n }\n break;\n case 14:\n if (stack.length >= 4) {\n var achar = stack.pop();\n var bchar = stack.pop();\n y = stack.pop();\n x = stack.pop();\n cmds.push({ cmd: 'save' });\n cmds.push({\n cmd: 'translate',\n args: [x, y]\n });\n var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font);\n cmds.push({ cmd: 'restore' });\n cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));\n compileCharString(font.glyphs[cmap.glyphId], cmds, font);\n }\n return;\n case 18:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 19:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n case 20:\n stems += stack.length >> 1;\n i += stems + 7 >> 3;\n stackClean = true;\n break;\n case 21:\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 22:\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 23:\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 24:\n while (stack.length > 2) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n case 25:\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n case 26:\n if (stack.length % 2) {\n x += stack.shift();\n }\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 27:\n if (stack.length % 2) {\n y += stack.shift();\n }\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb;\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 28:\n stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);\n i += 2;\n break;\n case 29:\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 30:\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 31:\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n default:\n if (v < 32) {\n throw new _util.FormatError('unknown operator: ' + v);\n }\n if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n stack.push((v - 247) * 256 + code[i++] + 108);\n } else if (v < 255) {\n stack.push(-(v - 251) * 256 - code[i++] - 108);\n } else {\n stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536);\n i += 4;\n }\n break;\n }\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n parse(code);\n }\n var noop = '';\n function CompiledFont(fontMatrix) {\n this.compiledGlyphs = Object.create(null);\n this.compiledCharCodeToGlyphId = Object.create(null);\n this.fontMatrix = fontMatrix;\n }\n CompiledFont.prototype = {\n getPathJs: function getPathJs(unicode) {\n var cmap = lookupCmap(this.cmap, unicode);\n var fn = this.compiledGlyphs[cmap.glyphId];\n if (!fn) {\n fn = this.compileGlyph(this.glyphs[cmap.glyphId]);\n this.compiledGlyphs[cmap.glyphId] = fn;\n }\n if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) {\n this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId;\n }\n return fn;\n },\n compileGlyph: function compileGlyph(code) {\n if (!code || code.length === 0 || code[0] === 14) {\n return noop;\n }\n var cmds = [];\n cmds.push({ cmd: 'save' });\n cmds.push({\n cmd: 'transform',\n args: this.fontMatrix.slice()\n });\n cmds.push({\n cmd: 'scale',\n args: ['size', '-size']\n });\n this.compileGlyphImpl(code, cmds);\n cmds.push({ cmd: 'restore' });\n return cmds;\n },\n compileGlyphImpl: function compileGlyphImpl() {\n throw new Error('Children classes should implement this.');\n },\n hasBuiltPath: function hasBuiltPath(unicode) {\n var cmap = lookupCmap(this.cmap, unicode);\n return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined;\n }\n };\n function TrueTypeCompiled(glyphs, cmap, fontMatrix) {\n fontMatrix = fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0];\n CompiledFont.call(this, fontMatrix);\n this.glyphs = glyphs;\n this.cmap = cmap;\n }\n _util.Util.inherit(TrueTypeCompiled, CompiledFont, {\n compileGlyphImpl: function compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\n });\n function Type2Compiled(cffInfo, cmap, fontMatrix, glyphNameMap) {\n fontMatrix = fontMatrix || [0.001, 0, 0, 0.001, 0, 0];\n CompiledFont.call(this, fontMatrix);\n this.glyphs = cffInfo.glyphs;\n this.gsubrs = cffInfo.gsubrs || [];\n this.subrs = cffInfo.subrs || [];\n this.cmap = cmap;\n this.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)();\n this.gsubrsBias = this.gsubrs.length < 1240 ? 107 : this.gsubrs.length < 33900 ? 1131 : 32768;\n this.subrsBias = this.subrs.length < 1240 ? 107 : this.subrs.length < 33900 ? 1131 : 32768;\n }\n _util.Util.inherit(Type2Compiled, CompiledFont, {\n compileGlyphImpl: function compileGlyphImpl(code, cmds) {\n compileCharString(code, cmds, this);\n }\n });\n return {\n create: function FontRendererFactory_create(font, seacAnalysisEnabled) {\n var data = new Uint8Array(font.data);\n var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n var numTables = getUshort(data, 4);\n for (var i = 0, p = 12; i < numTables; i++, p += 16) {\n var tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n var offset = getLong(data, p + 8);\n var length = getLong(data, p + 12);\n switch (tag) {\n case 'cmap':\n cmap = parseCmap(data, offset, offset + length);\n break;\n case 'glyf':\n glyf = data.subarray(offset, offset + length);\n break;\n case 'loca':\n loca = data.subarray(offset, offset + length);\n break;\n case 'head':\n unitsPerEm = getUshort(data, offset + 18);\n indexToLocFormat = getUshort(data, offset + 50);\n break;\n case 'CFF ':\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n if (glyf) {\n var fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n }\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n };\n}();\nexports.FontRendererFactory = FontRendererFactory;\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFontType = exports.ProblematicCharRanges = exports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.PRIVATE_USE_OFFSET_END = exports.PRIVATE_USE_OFFSET_START = exports.SEAC_ANALYSIS_ENABLED = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _cff_parser = __w_pdfjs_require__(53);\n\nvar _glyphlist = __w_pdfjs_require__(33);\n\nvar _encodings = __w_pdfjs_require__(16);\n\nvar _standard_fonts = __w_pdfjs_require__(59);\n\nvar _unicode = __w_pdfjs_require__(60);\n\nvar _font_renderer = __w_pdfjs_require__(92);\n\nvar _stream = __w_pdfjs_require__(3);\n\nvar _type1_parser = __w_pdfjs_require__(102);\n\nvar PRIVATE_USE_OFFSET_START = 0xE000;\nvar PRIVATE_USE_OFFSET_END = 0xF8FF;\nvar SKIP_PRIVATE_USE_RANGE_F000_TO_F01F = false;\nvar PDF_GLYPH_SPACE_UNITS = 1000;\nvar SEAC_ANALYSIS_ENABLED = false;\nvar FontFlags = {\n FixedPitch: 1,\n Serif: 2,\n Symbolic: 4,\n Script: 8,\n Nonsymbolic: 32,\n Italic: 64,\n AllCap: 65536,\n SmallCap: 131072,\n ForceBold: 262144\n};\nvar MacStandardGlyphOrdering = ['.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', 'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', 'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter', 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', 'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'];\nfunction adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n var scale = 0.001 / properties.fontMatrix[0];\n var glyphsWidths = properties.widths;\n for (var glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n properties.defaultWidth *= scale;\n}\nfunction adjustToUnicode(properties, builtInEncoding) {\n if (properties.hasIncludedToUnicodeMap) {\n return;\n }\n if (properties.hasEncoding) {\n return;\n }\n if (builtInEncoding === properties.defaultEncoding) {\n return;\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n var toUnicode = [],\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n for (var charCode in builtInEncoding) {\n var glyphName = builtInEncoding[charCode];\n var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n properties.toUnicode.amend(toUnicode);\n}\nfunction getFontType(type, subtype) {\n switch (type) {\n case 'Type1':\n return subtype === 'Type1C' ? _util.FontType.TYPE1C : _util.FontType.TYPE1;\n case 'CIDFontType0':\n return subtype === 'CIDFontType0C' ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0;\n case 'OpenType':\n return _util.FontType.OPENTYPE;\n case 'TrueType':\n return _util.FontType.TRUETYPE;\n case 'CIDFontType2':\n return _util.FontType.CIDFONTTYPE2;\n case 'MMType1':\n return _util.FontType.MMTYPE1;\n case 'Type0':\n return _util.FontType.TYPE0;\n default:\n return _util.FontType.UNKNOWN;\n }\n}\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n var unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap);\n if (unicode !== -1) {\n for (var key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n (0, _util.info)('Unable to recover a standard glyph name for: ' + name);\n return name;\n}\nvar Glyph = function GlyphClosure() {\n function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n this.fontChar = fontChar;\n this.unicode = unicode;\n this.accent = accent;\n this.width = width;\n this.vmetric = vmetric;\n this.operatorListId = operatorListId;\n this.isSpace = isSpace;\n this.isInFont = isInFont;\n }\n Glyph.prototype.matchesForCache = function (fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n return this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont;\n };\n return Glyph;\n}();\nvar ToUnicodeMap = function ToUnicodeMapClosure() {\n function ToUnicodeMap(cmap) {\n this._map = cmap;\n }\n ToUnicodeMap.prototype = {\n get length() {\n return this._map.length;\n },\n forEach: function forEach(callback) {\n for (var charCode in this._map) {\n callback(charCode, this._map[charCode].charCodeAt(0));\n }\n },\n has: function has(i) {\n return this._map[i] !== undefined;\n },\n get: function get(i) {\n return this._map[i];\n },\n charCodeOf: function charCodeOf(value) {\n var map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (var charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n },\n amend: function amend(map) {\n for (var charCode in map) {\n this._map[charCode] = map[charCode];\n }\n }\n };\n return ToUnicodeMap;\n}();\nvar IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() {\n function IdentityToUnicodeMap(firstChar, lastChar) {\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n }\n IdentityToUnicodeMap.prototype = {\n get length() {\n return this.lastChar + 1 - this.firstChar;\n },\n forEach: function forEach(callback) {\n for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n callback(i, i);\n }\n },\n has: function has(i) {\n return this.firstChar <= i && i <= this.lastChar;\n },\n get: function get(i) {\n if (this.firstChar <= i && i <= this.lastChar) {\n return String.fromCharCode(i);\n }\n return undefined;\n },\n charCodeOf: function charCodeOf(v) {\n return (0, _util.isInt)(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n },\n amend: function amend(map) {\n throw new Error('Should not call amend()');\n }\n };\n return IdentityToUnicodeMap;\n}();\nvar OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() {\n function writeInt16(dest, offset, num) {\n dest[offset] = num >> 8 & 0xFF;\n dest[offset + 1] = num & 0xFF;\n }\n function writeInt32(dest, offset, num) {\n dest[offset] = num >> 24 & 0xFF;\n dest[offset + 1] = num >> 16 & 0xFF;\n dest[offset + 2] = num >> 8 & 0xFF;\n dest[offset + 3] = num & 0xFF;\n }\n function writeData(dest, offset, data) {\n var i, ii;\n if (data instanceof Uint8Array) {\n dest.set(data, offset);\n } else if (typeof data === 'string') {\n for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data.charCodeAt(i) & 0xFF;\n }\n } else {\n for (i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data[i] & 0xFF;\n }\n }\n }\n function OpenTypeFileBuilder(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) {\n var maxPower2 = 1,\n log2 = 0;\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\n var searchRange = maxPower2 * entrySize;\n return {\n range: searchRange,\n entry: log2,\n rangeShift: entrySize * entriesCount - searchRange\n };\n };\n var OTF_HEADER_SIZE = 12;\n var OTF_TABLE_ENTRY_SIZE = 16;\n OpenTypeFileBuilder.prototype = {\n toArray: function OpenTypeFileBuilder_toArray() {\n var sfnt = this.sfnt;\n var tables = this.tables;\n var tablesNames = Object.keys(tables);\n tablesNames.sort();\n var numTables = tablesNames.length;\n var i, j, jj, table, tableName;\n var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n var tableOffsets = [offset];\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n var paddedLength = (table.length + 3 & ~3) >>> 0;\n offset += paddedLength;\n tableOffsets.push(offset);\n }\n var file = new Uint8Array(offset);\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n if (sfnt === 'true') {\n sfnt = (0, _util.string32)(0x00010000);\n }\n file[0] = sfnt.charCodeAt(0) & 0xFF;\n file[1] = sfnt.charCodeAt(1) & 0xFF;\n file[2] = sfnt.charCodeAt(2) & 0xFF;\n file[3] = sfnt.charCodeAt(3) & 0xFF;\n writeInt16(file, 4, numTables);\n var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n writeInt16(file, 6, searchParams.range);\n writeInt16(file, 8, searchParams.entry);\n writeInt16(file, 10, searchParams.rangeShift);\n offset = OTF_HEADER_SIZE;\n for (i = 0; i < numTables; i++) {\n tableName = tablesNames[i];\n file[offset] = tableName.charCodeAt(0) & 0xFF;\n file[offset + 1] = tableName.charCodeAt(1) & 0xFF;\n file[offset + 2] = tableName.charCodeAt(2) & 0xFF;\n file[offset + 3] = tableName.charCodeAt(3) & 0xFF;\n var checksum = 0;\n for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n var quad = (0, _util.readUint32)(file, j);\n checksum = checksum + quad >>> 0;\n }\n writeInt32(file, offset + 4, checksum);\n writeInt32(file, offset + 8, tableOffsets[i]);\n writeInt32(file, offset + 12, tables[tableName].length);\n offset += OTF_TABLE_ENTRY_SIZE;\n }\n return file;\n },\n addTable: function OpenTypeFileBuilder_addTable(tag, data) {\n if (tag in this.tables) {\n throw new Error('Table ' + tag + ' already exists');\n }\n this.tables[tag] = data;\n }\n };\n return OpenTypeFileBuilder;\n}();\nvar ProblematicCharRanges = new Int32Array([0x0000, 0x0020, 0x007F, 0x00A1, 0x00AD, 0x00AE, 0x0600, 0x0780, 0x08A0, 0x10A0, 0x1780, 0x1800, 0x1C00, 0x1C50, 0x2000, 0x2010, 0x2011, 0x2012, 0x2028, 0x2030, 0x205F, 0x2070, 0x25CC, 0x25CD, 0x3000, 0x3001, 0x3164, 0x3165, 0xAA60, 0xAA80, 0xFFF0, 0x10000]);\nvar Font = function FontClosure() {\n function Font(name, file, properties) {\n var charCode;\n this.name = name;\n this.loadedName = properties.loadedName;\n this.isType3Font = properties.isType3Font;\n this.sizes = [];\n this.missingFile = false;\n this.glyphCache = Object.create(null);\n this.isSerifFont = !!(properties.flags & FontFlags.Serif);\n this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n var type = properties.type;\n var subtype = properties.subtype;\n this.type = type;\n this.subtype = subtype;\n this.fallbackName = this.isMonospace ? 'monospace' : this.isSerifFont ? 'serif' : 'sans-serif';\n this.differences = properties.differences;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.composite = properties.composite;\n this.wideChars = properties.wideChars;\n this.cMap = properties.cMap;\n this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n this.fontMatrix = properties.fontMatrix;\n this.bbox = properties.bbox;\n this.defaultEncoding = properties.defaultEncoding;\n this.toUnicode = properties.toUnicode;\n this.toFontChar = [];\n if (properties.type === 'Type3') {\n for (charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n this.fontType = _util.FontType.TYPE3;\n return;\n }\n this.cidEncoding = properties.cidEncoding;\n this.vertical = properties.vertical;\n if (this.vertical) {\n this.vmetrics = properties.vmetrics;\n this.defaultVMetrics = properties.defaultVMetrics;\n }\n if (!file || file.isEmpty) {\n if (file) {\n (0, _util.warn)('Font file is empty in \"' + name + '\" (' + this.loadedName + ')');\n }\n this.fallbackToSystemFont();\n return;\n }\n if (subtype === 'Type1C') {\n if (type !== 'Type1' && type !== 'MMType1') {\n if (isTrueTypeFile(file)) {\n subtype = 'TrueType';\n } else {\n type = 'Type1';\n }\n } else if (isOpenTypeFile(file)) {\n subtype = 'OpenType';\n }\n }\n if (subtype === 'CIDFontType0C' && type !== 'CIDFontType0') {\n type = 'CIDFontType0';\n }\n if (type === 'CIDFontType0') {\n if (isType1File(file)) {\n subtype = 'CIDFontType0';\n } else if (isOpenTypeFile(file)) {\n subtype = 'OpenType';\n } else {\n subtype = 'CIDFontType0C';\n }\n }\n if (subtype === 'OpenType' && type !== 'OpenType') {\n type = 'OpenType';\n }\n try {\n var data;\n switch (type) {\n case 'MMType1':\n (0, _util.info)('MMType1 font (' + name + '), falling back to Type1.');\n case 'Type1':\n case 'CIDFontType0':\n this.mimetype = 'font/opentype';\n var cff = subtype === 'Type1C' || subtype === 'CIDFontType0C' ? new CFFFont(file, properties) : new Type1Font(name, file, properties);\n adjustWidths(properties);\n data = this.convert(name, cff, properties);\n break;\n case 'OpenType':\n case 'TrueType':\n case 'CIDFontType2':\n this.mimetype = 'font/opentype';\n data = this.checkAndRepair(name, file, properties);\n if (this.isOpenType) {\n adjustWidths(properties);\n type = 'OpenType';\n }\n break;\n default:\n throw new _util.FormatError('Font ' + type + ' is not supported');\n }\n } catch (e) {\n if (!(e instanceof _util.FormatError)) {\n throw e;\n }\n (0, _util.warn)(e);\n this.fallbackToSystemFont();\n return;\n }\n this.data = data;\n this.fontType = getFontType(type, subtype);\n this.fontMatrix = properties.fontMatrix;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.toUnicode = properties.toUnicode;\n this.encoding = properties.baseEncoding;\n this.seacMap = properties.seacMap;\n this.loading = true;\n }\n Font.getFontID = function () {\n var ID = 1;\n return function Font_getFontID() {\n return String(ID++);\n };\n }();\n function int16(b0, b1) {\n return (b0 << 8) + b1;\n }\n function signedInt16(b0, b1) {\n var value = (b0 << 8) + b1;\n return value & 1 << 15 ? value - 0x10000 : value;\n }\n function int32(b0, b1, b2, b3) {\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n function string16(value) {\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n function safeString16(value) {\n value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value;\n return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n }\n function isTrueTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _util.readUint32)(header, 0) === 0x00010000;\n }\n function isOpenTypeFile(file) {\n var header = file.peekBytes(4);\n return (0, _util.bytesToString)(header) === 'OTTO';\n }\n function isType1File(file) {\n var header = file.peekBytes(2);\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n return false;\n }\n function buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n var toFontChar = [],\n unicode;\n for (var i = 0, ii = encoding.length; i < ii; i++) {\n unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n for (var charCode in differences) {\n unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n return toFontChar;\n }\n function isProblematicUnicodeLocation(code) {\n var i = 0,\n j = ProblematicCharRanges.length - 1;\n while (i < j) {\n var c = i + j + 1 >> 1;\n if (code < ProblematicCharRanges[c]) {\n j = c - 1;\n } else {\n i = c;\n }\n }\n return !(i & 1);\n }\n function adjustMapping(charCodeToGlyphId, properties, missingGlyphs) {\n var toUnicode = properties.toUnicode;\n var isSymbolic = !!(properties.flags & FontFlags.Symbolic);\n var isIdentityUnicode = properties.toUnicode instanceof IdentityToUnicodeMap;\n var newMap = Object.create(null);\n var toFontChar = [];\n var usedFontCharCodes = [];\n var nextAvailableFontCharCode = PRIVATE_USE_OFFSET_START;\n for (var originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n var glyphId = charCodeToGlyphId[originalCharCode];\n if (missingGlyphs[glyphId]) {\n continue;\n }\n var fontCharCode = originalCharCode;\n var hasUnicodeValue = false;\n if (!isIdentityUnicode && toUnicode.has(originalCharCode)) {\n hasUnicodeValue = true;\n var unicode = toUnicode.get(fontCharCode);\n if (unicode.length === 1) {\n fontCharCode = unicode.charCodeAt(0);\n }\n }\n if (usedFontCharCodes[fontCharCode] !== undefined || isProblematicUnicodeLocation(fontCharCode) || isSymbolic && !hasUnicodeValue) {\n do {\n if (nextAvailableFontCharCode > PRIVATE_USE_OFFSET_END) {\n (0, _util.warn)('Ran out of space in font private use area.');\n break;\n }\n fontCharCode = nextAvailableFontCharCode++;\n if (SKIP_PRIVATE_USE_RANGE_F000_TO_F01F && fontCharCode === 0xF000) {\n fontCharCode = 0xF020;\n nextAvailableFontCharCode = fontCharCode + 1;\n }\n } while (usedFontCharCodes[fontCharCode] !== undefined);\n }\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n usedFontCharCodes[fontCharCode] = true;\n }\n return {\n toFontChar: toFontChar,\n charCodeToGlyphId: newMap,\n nextAvailableFontCharCode: nextAvailableFontCharCode\n };\n }\n function getRanges(glyphs, numGlyphs) {\n var codes = [];\n for (var charCode in glyphs) {\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n codes.push({\n fontCharCode: charCode | 0,\n glyphId: glyphs[charCode]\n });\n }\n if (codes.length === 0) {\n codes.push({\n fontCharCode: 0,\n glyphId: 0\n });\n }\n codes.sort(function fontGetRangesSort(a, b) {\n return a.fontCharCode - b.fontCharCode;\n });\n var ranges = [];\n var length = codes.length;\n for (var n = 0; n < length;) {\n var start = codes[n].fontCharCode;\n var codeIndices = [codes[n].glyphId];\n ++n;\n var end = start;\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n if (end === 0xFFFF) {\n break;\n }\n }\n ranges.push([start, end, codeIndices]);\n }\n return ranges;\n }\n function createCmapTable(glyphs, numGlyphs) {\n var ranges = getRanges(glyphs, numGlyphs);\n var numTables = ranges[ranges.length - 1][1] > 0xFFFF ? 2 : 1;\n var cmap = '\\x00\\x00' + string16(numTables) + '\\x00\\x03' + '\\x00\\x01' + (0, _util.string32)(4 + numTables * 8);\n var i, ii, j, jj;\n for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xFFFF) {\n break;\n }\n }\n var bmpLength = i + 1;\n if (ranges[i][0] < 0xFFFF && ranges[i][1] === 0xFFFF) {\n ranges[i][1] = 0xFFFE;\n }\n var trailingRangesCount = ranges[i][1] < 0xFFFF ? 1 : 0;\n var segCount = bmpLength + trailingRangesCount;\n var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n var startCount = '';\n var endCount = '';\n var idDeltas = '';\n var idRangeOffsets = '';\n var glyphsIds = '';\n var bias = 0;\n var range, start, end, codes;\n for (i = 0, ii = bmpLength; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n end = range[1];\n startCount += string16(start);\n endCount += string16(end);\n codes = range[2];\n var contiguous = true;\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n contiguous = false;\n break;\n }\n }\n if (!contiguous) {\n var offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\n idDeltas += string16(0);\n idRangeOffsets += string16(offset);\n for (j = 0, jj = codes.length; j < jj; ++j) {\n glyphsIds += string16(codes[j]);\n }\n } else {\n var startCode = codes[0];\n idDeltas += string16(startCode - start & 0xFFFF);\n idRangeOffsets += string16(0);\n }\n }\n if (trailingRangesCount > 0) {\n endCount += '\\xFF\\xFF';\n startCount += '\\xFF\\xFF';\n idDeltas += '\\x00\\x01';\n idRangeOffsets += '\\x00\\x00';\n }\n var format314 = '\\x00\\x00' + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + '\\x00\\x00' + startCount + idDeltas + idRangeOffsets + glyphsIds;\n var format31012 = '';\n var header31012 = '';\n if (numTables > 1) {\n cmap += '\\x00\\x03' + '\\x00\\x0A' + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length);\n format31012 = '';\n for (i = 0, ii = ranges.length; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n codes = range[2];\n var code = codes[0];\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n end = range[0] + j - 1;\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code);\n start = end + 1;\n code = codes[j];\n }\n }\n format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code);\n }\n header31012 = '\\x00\\x0C' + '\\x00\\x00' + (0, _util.string32)(format31012.length + 16) + '\\x00\\x00\\x00\\x00' + (0, _util.string32)(format31012.length / 12);\n }\n return cmap + '\\x00\\x04' + string16(format314.length + 4) + format314 + header31012 + format31012;\n }\n function validateOS2Table(os2) {\n var stream = new _stream.Stream(os2.data);\n var version = stream.getUint16();\n stream.getBytes(60);\n var selection = stream.getUint16();\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n var firstChar = stream.getUint16();\n var lastChar = stream.getUint16();\n if (firstChar > lastChar) {\n return false;\n }\n stream.getBytes(6);\n var usWinAscent = stream.getUint16();\n if (usWinAscent === 0) {\n return false;\n }\n os2.data[8] = os2.data[9] = 0;\n return true;\n }\n function createOS2Table(properties, charstrings, override) {\n override = override || {\n unitsPerEm: 0,\n yMax: 0,\n yMin: 0,\n ascent: 0,\n descent: 0\n };\n var ulUnicodeRange1 = 0;\n var ulUnicodeRange2 = 0;\n var ulUnicodeRange3 = 0;\n var ulUnicodeRange4 = 0;\n var firstCharIndex = null;\n var lastCharIndex = 0;\n if (charstrings) {\n for (var code in charstrings) {\n code |= 0;\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n var position = (0, _unicode.getUnicodeRangeFor)(code);\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << position - 32;\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << position - 64;\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << position - 96;\n } else {\n throw new _util.FormatError('Unicode ranges Bits > 123 are reserved for internal usage');\n }\n }\n } else {\n firstCharIndex = 0;\n lastCharIndex = 255;\n }\n var bbox = properties.bbox || [0, 0, 0, 0];\n var unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n var scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n var typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n var typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1]));\n if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent;\n }\n var winAscent = override.yMax || typoAscent;\n var winDescent = -override.yMin || -typoDescent;\n return '\\x00\\x03' + '\\x02\\x24' + '\\x01\\xF4' + '\\x00\\x05' + '\\x00\\x00' + '\\x02\\x8A' + '\\x02\\xBB' + '\\x00\\x00' + '\\x00\\x8C' + '\\x02\\x8A' + '\\x02\\xBB' + '\\x00\\x00' + '\\x01\\xDF' + '\\x00\\x31' + '\\x01\\x02' + '\\x00\\x00' + '\\x00\\x00\\x06' + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + '\\x00\\x00\\x00\\x00\\x00\\x00' + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.string32)(ulUnicodeRange4) + '\\x2A\\x32\\x31\\x2A' + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + '\\x00\\x64' + string16(winAscent) + string16(winDescent) + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + '\\x00\\x03';\n }\n function createPostTable(properties) {\n var angle = Math.floor(properties.italicAngle * Math.pow(2, 16));\n return '\\x00\\x03\\x00\\x00' + (0, _util.string32)(angle) + '\\x00\\x00' + '\\x00\\x00' + (0, _util.string32)(properties.fixedPitch) + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00';\n }\n function createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []];\n }\n var strings = [proto[0][0] || 'Original licence', proto[0][1] || name, proto[0][2] || 'Unknown', proto[0][3] || 'uniqueID', proto[0][4] || name, proto[0][5] || 'Version 0.11', proto[0][6] || '', proto[0][7] || 'Unknown', proto[0][8] || 'Unknown', proto[0][9] || 'Unknown'];\n var stringsUnicode = [];\n var i, ii, j, jj, str;\n for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n var strBufUnicode = [];\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\n stringsUnicode.push(strBufUnicode.join(''));\n }\n var names = [strings, stringsUnicode];\n var platforms = ['\\x00\\x01', '\\x00\\x03'];\n var encodings = ['\\x00\\x00', '\\x00\\x01'];\n var languages = ['\\x00\\x00', '\\x04\\x09'];\n var namesRecordCount = strings.length * platforms.length;\n var nameTable = '\\x00\\x00' + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6);\n var strOffset = 0;\n for (i = 0, ii = platforms.length; i < ii; i++) {\n var strs = names[i];\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n var nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset);\n nameTable += nameRecord;\n strOffset += str.length;\n }\n }\n nameTable += strings.join('') + stringsUnicode.join('');\n return nameTable;\n }\n Font.prototype = {\n name: null,\n font: null,\n mimetype: null,\n encoding: null,\n get renderer() {\n var renderer = _font_renderer.FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n return (0, _util.shadow)(this, 'renderer', renderer);\n },\n exportData: function Font_exportData() {\n var data = {};\n for (var i in this) {\n if (this.hasOwnProperty(i)) {\n data[i] = this[i];\n }\n }\n return data;\n },\n fallbackToSystemFont: function Font_fallbackToSystemFont() {\n var _this = this;\n\n this.missingFile = true;\n var charCode, unicode;\n var name = this.name;\n var type = this.type;\n var subtype = this.subtype;\n var fontName = name.replace(/[,_]/g, '-');\n var stdFontMap = (0, _standard_fonts.getStdFontMap)(),\n nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)();\n var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n this.bold = fontName.search(/bold/gi) !== -1;\n this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n this.black = name.search(/Black/g) !== -1;\n this.remeasure = Object.keys(this.widths).length > 0;\n if (isStandardFont && type === 'CIDFontType2' && this.cidEncoding.indexOf('Identity-') === 0) {\n var GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n var map = [];\n for (charCode in GlyphMapForStandardFonts) {\n map[+charCode] = GlyphMapForStandardFonts[charCode];\n }\n if (/Arial-?Black/i.test(name)) {\n var SupplementalGlyphMapForArialBlack = (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)();\n for (charCode in SupplementalGlyphMapForArialBlack) {\n map[+charCode] = SupplementalGlyphMapForArialBlack[charCode];\n }\n }\n var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap;\n if (!isIdentityUnicode) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n } else if (/Dingbats/i.test(fontName)) {\n if (/Wingdings/i.test(name)) {\n (0, _util.warn)('Non-embedded Wingdings font, falling back to ZapfDingbats.');\n }\n this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences);\n } else if (isStandardFont) {\n this.toFontChar = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n } else {\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n if (!_this.composite) {\n var glyphName = _this.differences[charCode] || _this.defaultEncoding[charCode];\n unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n _this.toFontChar[charCode] = unicodeCharCode;\n });\n }\n this.loadedName = fontName.split('-')[0];\n this.loading = false;\n this.fontType = getFontType(type, subtype);\n },\n checkAndRepair: function Font_checkAndRepair(name, font, properties) {\n function readTableEntry(file) {\n var tag = (0, _util.bytesToString)(file.getBytes(4));\n var checksum = file.getInt32() >>> 0;\n var offset = file.getInt32() >>> 0;\n var length = file.getInt32() >>> 0;\n var previousPosition = file.pos;\n file.pos = file.start ? file.start : 0;\n file.skip(offset);\n var data = file.getBytes(length);\n file.pos = previousPosition;\n if (tag === 'head') {\n data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20;\n }\n return {\n tag: tag,\n checksum: checksum,\n length: length,\n offset: offset,\n data: data\n };\n }\n function readOpenTypeHeader(ttf) {\n return {\n version: (0, _util.bytesToString)(ttf.getBytes(4)),\n numTables: ttf.getUint16(),\n searchRange: ttf.getUint16(),\n entrySelector: ttf.getUint16(),\n rangeShift: ttf.getUint16()\n };\n }\n function readCmapTable(cmap, font, isSymbolicFont, hasEncoding) {\n if (!cmap) {\n (0, _util.warn)('No cmap table available.');\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n var segment;\n var start = (font.start ? font.start : 0) + cmap.offset;\n font.pos = start;\n font.getUint16();\n var numTables = font.getUint16();\n var potentialTable;\n var canBreak = false;\n for (var i = 0; i < numTables; i++) {\n var platformId = font.getUint16();\n var encodingId = font.getUint16();\n var offset = font.getInt32() >>> 0;\n var useTable = false;\n if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) {\n continue;\n }\n if (platformId === 0 && encodingId === 0) {\n useTable = true;\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n useTable = true;\n if (!isSymbolicFont) {\n canBreak = true;\n }\n } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n useTable = true;\n canBreak = true;\n }\n if (useTable) {\n potentialTable = {\n platformId: platformId,\n encodingId: encodingId,\n offset: offset\n };\n }\n if (canBreak) {\n break;\n }\n }\n if (potentialTable) {\n font.pos = start + potentialTable.offset;\n }\n if (!potentialTable || font.peekByte() === -1) {\n (0, _util.warn)('Could not find a preferred cmap table.');\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n var format = font.getUint16();\n font.getUint16();\n font.getUint16();\n var hasShortCmap = false;\n var mappings = [];\n var j, glyphId;\n if (format === 0) {\n for (j = 0; j < 256; j++) {\n var index = font.getByte();\n if (!index) {\n continue;\n }\n mappings.push({\n charCode: j,\n glyphId: index\n });\n }\n hasShortCmap = true;\n } else if (format === 4) {\n var segCount = font.getUint16() >> 1;\n font.getBytes(6);\n var segIndex,\n segments = [];\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({ end: font.getUint16() });\n }\n font.getUint16();\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].start = font.getUint16();\n }\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].delta = font.getUint16();\n }\n var offsetsCount = 0;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n var rangeOffset = font.getUint16();\n if (!rangeOffset) {\n segment.offsetIndex = -1;\n continue;\n }\n var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n segment.offsetIndex = offsetIndex;\n offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1);\n }\n var offsets = [];\n for (j = 0; j < offsetsCount; j++) {\n offsets.push(font.getUint16());\n }\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n start = segment.start;\n var end = segment.end;\n var delta = segment.delta;\n offsetIndex = segment.offsetIndex;\n for (j = start; j <= end; j++) {\n if (j === 0xFFFF) {\n continue;\n }\n glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n glyphId = glyphId + delta & 0xFFFF;\n mappings.push({\n charCode: j,\n glyphId: glyphId\n });\n }\n }\n } else if (format === 6) {\n var firstCode = font.getUint16();\n var entryCount = font.getUint16();\n for (j = 0; j < entryCount; j++) {\n glyphId = font.getUint16();\n var charCode = firstCode + j;\n mappings.push({\n charCode: charCode,\n glyphId: glyphId\n });\n }\n } else {\n (0, _util.warn)('cmap table has unsupported format: ' + format);\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false\n };\n }\n mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\n for (i = 1; i < mappings.length; i++) {\n if (mappings[i - 1].charCode === mappings[i].charCode) {\n mappings.splice(i, 1);\n i--;\n }\n }\n return {\n platformId: potentialTable.platformId,\n encodingId: potentialTable.encodingId,\n mappings: mappings,\n hasShortCmap: hasShortCmap\n };\n }\n function sanitizeMetrics(font, header, metrics, numGlyphs) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n return;\n }\n font.pos = (font.start ? font.start : 0) + header.offset;\n font.pos += header.length - 2;\n var numOfMetrics = font.getUint16();\n if (numOfMetrics > numGlyphs) {\n (0, _util.info)('The numOfMetrics (' + numOfMetrics + ') should not be ' + 'greater than the numGlyphs (' + numGlyphs + ')');\n numOfMetrics = numGlyphs;\n header.data[34] = (numOfMetrics & 0xff00) >> 8;\n header.data[35] = numOfMetrics & 0x00ff;\n }\n var numOfSidebearings = numGlyphs - numOfMetrics;\n var numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n if (numMissing > 0) {\n var entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n metrics.data = entries;\n }\n }\n function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n if (sourceEnd - sourceStart <= 12) {\n return 0;\n }\n var glyf = source.subarray(sourceStart, sourceEnd);\n var contoursCount = glyf[0] << 8 | glyf[1];\n if (contoursCount & 0x8000) {\n dest.set(glyf, destStart);\n return glyf.length;\n }\n var i,\n j = 10,\n flagsCount = 0;\n for (i = 0; i < contoursCount; i++) {\n var endPoint = glyf[j] << 8 | glyf[j + 1];\n flagsCount = endPoint + 1;\n j += 2;\n }\n var instructionsStart = j;\n var instructionsLength = glyf[j] << 8 | glyf[j + 1];\n j += 2 + instructionsLength;\n var instructionsEnd = j;\n var coordinatesLength = 0;\n for (i = 0; i < flagsCount; i++) {\n var flag = glyf[j++];\n if (flag & 0xC0) {\n glyf[j - 1] = flag & 0x3F;\n }\n var xyLength = (flag & 2 ? 1 : flag & 16 ? 0 : 2) + (flag & 4 ? 1 : flag & 32 ? 0 : 2);\n coordinatesLength += xyLength;\n if (flag & 8) {\n var repeat = glyf[j++];\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n if (coordinatesLength === 0) {\n return 0;\n }\n var glyphDataLength = j + coordinatesLength;\n if (glyphDataLength > glyf.length) {\n return 0;\n }\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n glyphDataLength -= instructionsLength;\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n }\n return glyphDataLength;\n }\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = glyphDataLength + 3 & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n return glyphDataLength;\n }\n dest.set(glyf, destStart);\n return glyf.length;\n }\n function sanitizeHead(head, numGlyphs, locaLength) {\n var data = head.data;\n var version = int32(data[0], data[1], data[2], data[3]);\n if (version >> 16 !== 1) {\n (0, _util.info)('Attempting to fix invalid version in head table: ' + version);\n data[0] = 0;\n data[1] = 1;\n data[2] = 0;\n data[3] = 0;\n }\n var indexToLocFormat = int16(data[50], data[51]);\n if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n (0, _util.info)('Attempting to fix invalid indexToLocFormat in head table: ' + indexToLocFormat);\n var numGlyphsPlusOne = numGlyphs + 1;\n if (locaLength === numGlyphsPlusOne << 1) {\n data[50] = 0;\n data[51] = 0;\n } else if (locaLength === numGlyphsPlusOne << 2) {\n data[50] = 0;\n data[51] = 1;\n } else {\n throw new _util.FormatError('Could not fix indexToLocFormat: ' + indexToLocFormat);\n }\n }\n }\n function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry) {\n var itemSize, itemDecode, itemEncode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = function fontItemDecodeLong(data, offset) {\n return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n };\n itemEncode = function fontItemEncodeLong(data, offset, value) {\n data[offset] = value >>> 24 & 0xFF;\n data[offset + 1] = value >> 16 & 0xFF;\n data[offset + 2] = value >> 8 & 0xFF;\n data[offset + 3] = value & 0xFF;\n };\n } else {\n itemSize = 2;\n itemDecode = function fontItemDecode(data, offset) {\n return data[offset] << 9 | data[offset + 1] << 1;\n };\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = value >> 9 & 0xFF;\n data[offset + 1] = value >> 1 & 0xFF;\n };\n }\n var locaData = loca.data;\n var locaDataSize = itemSize * (1 + numGlyphs);\n if (locaData.length !== locaDataSize) {\n locaData = new Uint8Array(locaDataSize);\n locaData.set(loca.data.subarray(0, locaDataSize));\n loca.data = locaData;\n }\n var oldGlyfData = glyf.data;\n var oldGlyfDataLength = oldGlyfData.length;\n var newGlyfData = new Uint8Array(oldGlyfDataLength);\n var startOffset = itemDecode(locaData, 0);\n var writeOffset = 0;\n var missingGlyphData = Object.create(null);\n itemEncode(locaData, 0, writeOffset);\n var i, j;\n var locaCount = dupFirstEntry ? numGlyphs - 1 : numGlyphs;\n for (i = 0, j = itemSize; i < locaCount; i++, j += itemSize) {\n var endOffset = itemDecode(locaData, j);\n if (endOffset > oldGlyfDataLength && (oldGlyfDataLength + 3 & ~3) === endOffset) {\n endOffset = oldGlyfDataLength;\n }\n if (endOffset > oldGlyfDataLength) {\n startOffset = endOffset;\n }\n var newLength = sanitizeGlyph(oldGlyfData, startOffset, endOffset, newGlyfData, writeOffset, hintsValid);\n if (newLength === 0) {\n missingGlyphData[i] = true;\n }\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n startOffset = endOffset;\n }\n if (writeOffset === 0) {\n var simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n glyf.data = simpleGlyph;\n return missingGlyphData;\n }\n if (dupFirstEntry) {\n var firstEntryLength = itemDecode(locaData, itemSize);\n if (newGlyfData.length > firstEntryLength + writeOffset) {\n glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n } else {\n glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n glyf.data.set(newGlyfData.subarray(0, writeOffset));\n }\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\n return missingGlyphData;\n }\n function readPostScriptTable(post, properties, maxpNumGlyphs) {\n var start = (font.start ? font.start : 0) + post.offset;\n font.pos = start;\n var length = post.length,\n end = start + length;\n var version = font.getInt32();\n font.getBytes(28);\n var glyphNames;\n var valid = true;\n var i;\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n case 0x00020000:\n var numGlyphs = font.getUint16();\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n var glyphNameIndexes = [];\n for (i = 0; i < numGlyphs; ++i) {\n var index = font.getUint16();\n if (index >= 32768) {\n valid = false;\n break;\n }\n glyphNameIndexes.push(index);\n }\n if (!valid) {\n break;\n }\n var customNames = [];\n var strBuf = [];\n while (font.pos < end) {\n var stringLength = font.getByte();\n strBuf.length = stringLength;\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n customNames.push(strBuf.join(''));\n }\n glyphNames = [];\n for (i = 0; i < numGlyphs; ++i) {\n var j = glyphNameIndexes[i];\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n glyphNames.push(customNames[j - 258]);\n }\n break;\n case 0x00030000:\n break;\n default:\n (0, _util.warn)('Unknown/unsupported post table version ' + version);\n valid = false;\n if (properties.defaultEncoding) {\n glyphNames = properties.defaultEncoding;\n }\n break;\n }\n properties.glyphNames = glyphNames;\n return valid;\n }\n function readNameTable(nameTable) {\n var start = (font.start ? font.start : 0) + nameTable.offset;\n font.pos = start;\n var names = [[], []];\n var length = nameTable.length,\n end = start + length;\n var format = font.getUint16();\n var FORMAT_0_HEADER_LENGTH = 6;\n if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n return names;\n }\n var numRecords = font.getUint16();\n var stringsStart = font.getUint16();\n var records = [];\n var NAME_RECORD_LENGTH = 12;\n var i, ii;\n for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n var r = {\n platform: font.getUint16(),\n encoding: font.getUint16(),\n language: font.getUint16(),\n name: font.getUint16(),\n length: font.getUint16(),\n offset: font.getUint16()\n };\n if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) {\n records.push(r);\n }\n }\n for (i = 0, ii = records.length; i < ii; i++) {\n var record = records[i];\n if (record.length <= 0) {\n continue;\n }\n var pos = start + stringsStart + record.offset;\n if (pos + record.length > end) {\n continue;\n }\n font.pos = pos;\n var nameIndex = record.name;\n if (record.encoding) {\n var str = '';\n for (var j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = (0, _util.bytesToString)(font.getBytes(record.length));\n }\n }\n return names;\n }\n var TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n function sanitizeTTProgram(table, ttContext) {\n var data = table.data;\n var i = 0,\n j,\n n,\n b,\n funcId,\n pc,\n lastEndf = 0,\n lastDeff = 0;\n var stack = [];\n var callstack = [];\n var functionsCalled = [];\n var tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n var inFDEF = false,\n ifLevel = 0,\n inELSE = 0;\n for (var ii = data.length; i < ii;) {\n var op = data[i++];\n if (op === 0x40) {\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if (op === 0x41) {\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push(b << 8 | data[i++]);\n }\n }\n } else if ((op & 0xF8) === 0xB0) {\n n = op - 0xB0 + 1;\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if ((op & 0xF8) === 0xB8) {\n n = op - 0xB8 + 1;\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push(b << 8 | data[i++]);\n }\n }\n } else if (op === 0x2B && !tooComplexToFollowFunctions) {\n if (!inFDEF && !inELSE) {\n funcId = stack[stack.length - 1];\n ttContext.functionsUsed[funcId] = true;\n if (funcId in ttContext.functionsStackDeltas) {\n stack.length += ttContext.functionsStackDeltas[funcId];\n } else if (funcId in ttContext.functionsDefined && functionsCalled.indexOf(funcId) < 0) {\n callstack.push({\n data: data,\n i: i,\n stackTop: stack.length - 1\n });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n if (!pc) {\n (0, _util.warn)('TT: CALL non-existent function');\n ttContext.hintsValid = false;\n return;\n }\n data = pc.data;\n i = pc.i;\n }\n }\n } else if (op === 0x2C && !tooComplexToFollowFunctions) {\n if (inFDEF || inELSE) {\n (0, _util.warn)('TT: nested FDEFs not allowed');\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = {\n data: data,\n i: i\n };\n } else if (op === 0x2D) {\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n if (!pc) {\n (0, _util.warn)('TT: ENDF bad stack');\n ttContext.hintsValid = false;\n return;\n }\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n }\n } else if (op === 0x89) {\n if (inFDEF || inELSE) {\n (0, _util.warn)('TT: nested IDEFs not allowed');\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n lastDeff = i;\n } else if (op === 0x58) {\n ++ifLevel;\n } else if (op === 0x1B) {\n inELSE = ifLevel;\n } else if (op === 0x59) {\n if (inELSE === ifLevel) {\n inELSE = 0;\n }\n --ifLevel;\n } else if (op === 0x1C) {\n if (!inFDEF && !inELSE) {\n var offset = stack[stack.length - 1];\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n if (!inFDEF && !inELSE) {\n var stackDelta = op <= 0x8E ? TTOpsStackDeltas[op] : op >= 0xC0 && op <= 0xDF ? -1 : op >= 0xE0 ? -2 : 0;\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n while (stackDelta > 0) {\n stack.push(NaN);\n stackDelta--;\n }\n }\n }\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n var content = [data];\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n if (lastDeff > lastEndf) {\n (0, _util.warn)('TT: complementing a missing function tail');\n content.push(new Uint8Array([0x22, 0x2D]));\n }\n foldTTTable(table, content);\n }\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\n }\n if (ttContext.functionsDefined.length > maxFunctionDefs) {\n (0, _util.warn)('TT: more functions defined than expected');\n ttContext.hintsValid = false;\n return;\n }\n for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n if (j > maxFunctionDefs) {\n (0, _util.warn)('TT: invalid function id: ' + j);\n ttContext.hintsValid = false;\n return;\n }\n if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n (0, _util.warn)('TT: undefined function: ' + j);\n ttContext.hintsValid = false;\n return;\n }\n }\n }\n function foldTTTable(table, content) {\n if (content.length > 1) {\n var newLength = 0;\n var j, jj;\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n newLength = newLength + 3 & ~3;\n var result = new Uint8Array(newLength);\n var pos = 0;\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\n table.data = result;\n table.length = newLength;\n }\n }\n function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n var ttContext = {\n functionsDefined: [],\n functionsUsed: [],\n functionsStackDeltas: [],\n tooComplexToFollowFunctions: false,\n hintsValid: true\n };\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\n if (cvt && cvt.length & 1) {\n var cvtData = new Uint8Array(cvt.length + 1);\n cvtData.set(cvt.data);\n cvt.data = cvtData;\n }\n return ttContext.hintsValid;\n }\n font = new _stream.Stream(new Uint8Array(font.getBytes()));\n var VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF '];\n var header = readOpenTypeHeader(font);\n var numTables = header.numTables;\n var cff, cffFile;\n var tables = Object.create(null);\n tables['OS/2'] = null;\n tables['cmap'] = null;\n tables['head'] = null;\n tables['hhea'] = null;\n tables['hmtx'] = null;\n tables['maxp'] = null;\n tables['name'] = null;\n tables['post'] = null;\n var table;\n for (var i = 0; i < numTables; i++) {\n table = readTableEntry(font);\n if (VALID_TABLES.indexOf(table.tag) < 0) {\n continue;\n }\n if (table.length === 0) {\n continue;\n }\n tables[table.tag] = table;\n }\n var isTrueType = !tables['CFF '];\n if (!isTrueType) {\n if (header.version === 'OTTO' && !(properties.composite && properties.cidToGidMap) || !tables['head'] || !tables['hhea'] || !tables['maxp'] || !tables['post']) {\n cffFile = new _stream.Stream(tables['CFF '].data);\n cff = new CFFFont(cffFile, properties);\n adjustWidths(properties);\n return this.convert(name, cff, properties);\n }\n delete tables['glyf'];\n delete tables['loca'];\n delete tables['fpgm'];\n delete tables['prep'];\n delete tables['cvt '];\n this.isOpenType = true;\n } else {\n if (!tables['loca']) {\n throw new _util.FormatError('Required \"loca\" table is not found');\n }\n if (!tables['glyf']) {\n (0, _util.warn)('Required \"glyf\" table is not found -- trying to recover.');\n tables['glyf'] = {\n tag: 'glyf',\n data: new Uint8Array(0)\n };\n }\n this.isOpenType = false;\n }\n if (!tables['maxp']) {\n throw new _util.FormatError('Required \"maxp\" table is not found');\n }\n font.pos = (font.start || 0) + tables['maxp'].offset;\n var version = font.getInt32();\n var numGlyphs = font.getUint16();\n var maxFunctionDefs = 0;\n if (version >= 0x00010000 && tables['maxp'].length >= 22) {\n font.pos += 8;\n var maxZones = font.getUint16();\n if (maxZones > 2) {\n tables['maxp'].data[14] = 0;\n tables['maxp'].data[15] = 2;\n }\n font.pos += 4;\n maxFunctionDefs = font.getUint16();\n }\n var dupFirstEntry = false;\n if (properties.type === 'CIDFontType2' && properties.toUnicode && properties.toUnicode.get(0) > '\\0') {\n dupFirstEntry = true;\n numGlyphs++;\n tables['maxp'].data[4] = numGlyphs >> 8;\n tables['maxp'].data[5] = numGlyphs & 255;\n }\n var hintsValid = sanitizeTTPrograms(tables['fpgm'], tables['prep'], tables['cvt '], maxFunctionDefs);\n if (!hintsValid) {\n delete tables['fpgm'];\n delete tables['prep'];\n delete tables['cvt '];\n }\n sanitizeMetrics(font, tables['hhea'], tables['hmtx'], numGlyphs);\n if (!tables['head']) {\n throw new _util.FormatError('Required \"head\" table is not found');\n }\n sanitizeHead(tables['head'], numGlyphs, isTrueType ? tables['loca'].length : 0);\n var missingGlyphs = Object.create(null);\n if (isTrueType) {\n var isGlyphLocationsLong = int16(tables['head'].data[50], tables['head'].data[51]);\n missingGlyphs = sanitizeGlyphLocations(tables['loca'], tables['glyf'], numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry);\n }\n if (!tables['hhea']) {\n throw new _util.FormatError('Required \"hhea\" table is not found');\n }\n if (tables['hhea'].data[10] === 0 && tables['hhea'].data[11] === 0) {\n tables['hhea'].data[10] = 0xFF;\n tables['hhea'].data[11] = 0xFF;\n }\n var metricsOverride = {\n unitsPerEm: int16(tables['head'].data[18], tables['head'].data[19]),\n yMax: int16(tables['head'].data[42], tables['head'].data[43]),\n yMin: signedInt16(tables['head'].data[38], tables['head'].data[39]),\n ascent: int16(tables['hhea'].data[4], tables['hhea'].data[5]),\n descent: signedInt16(tables['hhea'].data[6], tables['hhea'].data[7])\n };\n this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n if (tables['post']) {\n var valid = readPostScriptTable(tables['post'], properties, numGlyphs);\n if (!valid) {\n tables['post'] = null;\n }\n }\n var charCodeToGlyphId = [],\n charCode;\n function hasGlyph(glyphId) {\n return !missingGlyphs[glyphId];\n }\n if (properties.composite) {\n var cidToGidMap = properties.cidToGidMap || [];\n var isCidToGidMapEmpty = cidToGidMap.length === 0;\n properties.cMap.forEach(function (charCode, cid) {\n if (cid > 0xffff) {\n throw new _util.FormatError('Max size of CID is 65,535');\n }\n var glyphId = -1;\n if (isCidToGidMapEmpty) {\n glyphId = cid;\n } else if (cidToGidMap[cid] !== undefined) {\n glyphId = cidToGidMap[cid];\n }\n if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n });\n if (dupFirstEntry && (isCidToGidMapEmpty || !charCodeToGlyphId[0])) {\n charCodeToGlyphId[0] = numGlyphs - 1;\n }\n } else {\n var cmapTable = readCmapTable(tables['cmap'], font, this.isSymbolicFont, properties.hasEncoding);\n var cmapPlatformId = cmapTable.platformId;\n var cmapEncodingId = cmapTable.encodingId;\n var cmapMappings = cmapTable.mappings;\n var cmapMappingsLength = cmapMappings.length;\n if (properties.hasEncoding && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0) || cmapPlatformId === -1 && cmapEncodingId === -1 && !!(0, _encodings.getEncoding)(properties.baseEncodingName)) {\n var baseEncoding = [];\n if (properties.baseEncodingName === 'MacRomanEncoding' || properties.baseEncodingName === 'WinAnsiEncoding') {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n }\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n for (charCode = 0; charCode < 256; charCode++) {\n var glyphName, standardGlyphName;\n if (this.differences && charCode in this.differences) {\n glyphName = this.differences[charCode];\n } else if (charCode in baseEncoding && baseEncoding[charCode] !== '') {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = _encodings.StandardEncoding[charCode];\n }\n if (!glyphName) {\n continue;\n }\n standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n var unicodeOrCharCode;\n if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName);\n }\n var found = false;\n for (i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n found = true;\n break;\n }\n if (!found && properties.glyphNames) {\n var glyphId = properties.glyphNames.indexOf(glyphName);\n if (glyphId === -1 && standardGlyphName !== glyphName) {\n glyphId = properties.glyphNames.indexOf(standardGlyphName);\n }\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n found = true;\n }\n }\n }\n } else if (cmapPlatformId === 0 && cmapEncodingId === 0) {\n for (i = 0; i < cmapMappingsLength; ++i) {\n charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n }\n } else {\n for (i = 0; i < cmapMappingsLength; ++i) {\n charCode = cmapMappings[i].charCode;\n if (cmapPlatformId === 3 && charCode >= 0xF000 && charCode <= 0xF0FF) {\n charCode &= 0xFF;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n }\n }\n }\n if (charCodeToGlyphId.length === 0) {\n charCodeToGlyphId[0] = 0;\n }\n var newMapping = adjustMapping(charCodeToGlyphId, properties, missingGlyphs);\n this.toFontChar = newMapping.toFontChar;\n tables['cmap'] = {\n tag: 'cmap',\n data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphs)\n };\n if (!tables['OS/2'] || !validateOS2Table(tables['OS/2'])) {\n tables['OS/2'] = {\n tag: 'OS/2',\n data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)\n };\n }\n if (!tables['post']) {\n tables['post'] = {\n tag: 'post',\n data: createPostTable(properties)\n };\n }\n if (!isTrueType) {\n try {\n cffFile = new _stream.Stream(tables['CFF '].data);\n var parser = new _cff_parser.CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED);\n cff = parser.parse();\n var compiler = new _cff_parser.CFFCompiler(cff);\n tables['CFF '].data = compiler.compile();\n } catch (e) {\n (0, _util.warn)('Failed to compile font ' + properties.loadedName);\n }\n }\n if (!tables['name']) {\n tables['name'] = {\n tag: 'name',\n data: createNameTable(this.name)\n };\n } else {\n var namePrototype = readNameTable(tables['name']);\n tables['name'].data = createNameTable(name, namePrototype);\n }\n var builder = new OpenTypeFileBuilder(header.version);\n for (var tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n return builder.toArray();\n },\n convert: function Font_convert(fontName, font, properties) {\n properties.fixedPitch = false;\n if (properties.builtInEncoding) {\n adjustToUnicode(properties, properties.builtInEncoding);\n }\n var mapping = font.getGlyphMapping(properties);\n var newMapping = adjustMapping(mapping, properties, Object.create(null));\n this.toFontChar = newMapping.toFontChar;\n var numGlyphs = font.numGlyphs;\n function getCharCodes(charCodeToGlyphId, glyphId) {\n var charCodes = null;\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n if (!charCodes) {\n charCodes = [];\n }\n charCodes.push(charCode | 0);\n }\n }\n return charCodes;\n }\n function createCharCode(charCodeToGlyphId, glyphId) {\n for (var charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n return charCode | 0;\n }\n }\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n var seacs = font.seacs;\n if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n var matrix = properties.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var charset = font.getCharset();\n var seacMap = Object.create(null);\n for (var glyphId in seacs) {\n glyphId |= 0;\n var seac = seacs[glyphId];\n var baseGlyphName = _encodings.StandardEncoding[seac[2]];\n var accentGlyphName = _encodings.StandardEncoding[seac[3]];\n var baseGlyphId = charset.indexOf(baseGlyphName);\n var accentGlyphId = charset.indexOf(accentGlyphName);\n if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\n var accentOffset = {\n x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n };\n var charCodes = getCharCodes(mapping, glyphId);\n if (!charCodes) {\n continue;\n }\n for (var i = 0, ii = charCodes.length; i < ii; i++) {\n var charCode = charCodes[i];\n var charCodeToGlyphId = newMapping.charCodeToGlyphId;\n var baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);\n var accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId);\n seacMap[charCode] = {\n baseFontCharCode: baseFontCharCode,\n accentFontCharCode: accentFontCharCode,\n accentOffset: accentOffset\n };\n }\n }\n properties.seacMap = seacMap;\n }\n var unitsPerEm = 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n var builder = new OpenTypeFileBuilder('\\x4F\\x54\\x54\\x4F');\n builder.addTable('CFF ', font.data);\n builder.addTable('OS/2', createOS2Table(properties, newMapping.charCodeToGlyphId));\n builder.addTable('cmap', createCmapTable(newMapping.charCodeToGlyphId, numGlyphs));\n builder.addTable('head', '\\x00\\x01\\x00\\x00' + '\\x00\\x00\\x10\\x00' + '\\x00\\x00\\x00\\x00' + '\\x5F\\x0F\\x3C\\xF5' + '\\x00\\x00' + safeString16(unitsPerEm) + '\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27' + '\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27' + '\\x00\\x00' + safeString16(properties.descent) + '\\x0F\\xFF' + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + '\\x00\\x11' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00');\n builder.addTable('hhea', '\\x00\\x01\\x00\\x00' + safeString16(properties.ascent) + safeString16(properties.descent) + '\\x00\\x00' + '\\xFF\\xFF' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + string16(numGlyphs));\n builder.addTable('hmtx', function fontFieldsHmtx() {\n var charstrings = font.charstrings;\n var cffWidths = font.cff ? font.cff.widths : null;\n var hmtx = '\\x00\\x00\\x00\\x00';\n for (var i = 1, ii = numGlyphs; i < ii; i++) {\n var width = 0;\n if (charstrings) {\n var charstring = charstrings[i - 1];\n width = 'width' in charstring ? charstring.width : 0;\n } else if (cffWidths) {\n width = Math.ceil(cffWidths[i] || 0);\n }\n hmtx += string16(width) + string16(0);\n }\n return hmtx;\n }());\n builder.addTable('maxp', '\\x00\\x00\\x50\\x00' + string16(numGlyphs));\n builder.addTable('name', createNameTable(fontName));\n builder.addTable('post', createPostTable(properties));\n return builder.toArray();\n },\n get spaceWidth() {\n if ('_shadowWidth' in this) {\n return this._shadowWidth;\n }\n var possibleSpaceReplacements = ['space', 'minus', 'one', 'i', 'I'];\n var width;\n for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n var glyphName = possibleSpaceReplacements[i];\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n var glyphUnicode = glyphsUnicodeMap[glyphName];\n var charcode = 0;\n if (this.composite) {\n if (this.cMap.contains(glyphUnicode)) {\n charcode = this.cMap.lookup(glyphUnicode);\n }\n }\n if (!charcode && this.toUnicode) {\n charcode = this.toUnicode.charCodeOf(glyphUnicode);\n }\n if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n width = this.widths[charcode];\n if (width) {\n break;\n }\n }\n width = width || this.defaultWidth;\n this._shadowWidth = width;\n return width;\n },\n charToGlyph: function Font_charToGlyph(charcode, isSpace) {\n var fontCharCode, width, operatorListId;\n var widthCode = charcode;\n if (this.cMap && this.cMap.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n }\n width = this.widths[widthCode];\n width = (0, _util.isNum)(width) ? width : this.defaultWidth;\n var vmetric = this.vmetrics && this.vmetrics[widthCode];\n var unicode = this.toUnicode.get(charcode) || charcode;\n if (typeof unicode === 'number') {\n unicode = String.fromCharCode(unicode);\n }\n var isInFont = charcode in this.toFontChar;\n fontCharCode = this.toFontChar[charcode] || charcode;\n if (this.missingFile) {\n fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode);\n }\n if (this.isType3Font) {\n operatorListId = fontCharCode;\n }\n var accent = null;\n if (this.seacMap && this.seacMap[charcode]) {\n isInFont = true;\n var seac = this.seacMap[charcode];\n fontCharCode = seac.baseFontCharCode;\n accent = {\n fontChar: String.fromCharCode(seac.accentFontCharCode),\n offset: seac.accentOffset\n };\n }\n var fontChar = String.fromCharCode(fontCharCode);\n var glyph = this.glyphCache[charcode];\n if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) {\n glyph = new Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont);\n this.glyphCache[charcode] = glyph;\n }\n return glyph;\n },\n charsToGlyphs: function Font_charsToGlyphs(chars) {\n var charsCache = this.charsCache;\n var glyphs, glyph, charcode;\n if (charsCache) {\n glyphs = charsCache[chars];\n if (glyphs) {\n return glyphs;\n }\n }\n if (!charsCache) {\n charsCache = this.charsCache = Object.create(null);\n }\n glyphs = [];\n var charsCacheKey = chars;\n var i = 0,\n ii;\n if (this.cMap) {\n var c = Object.create(null);\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n charcode = c.charcode;\n var length = c.length;\n i += length;\n var isSpace = length === 1 && chars.charCodeAt(i - 1) === 0x20;\n glyph = this.charToGlyph(charcode, isSpace);\n glyphs.push(glyph);\n }\n } else {\n for (i = 0, ii = chars.length; i < ii; ++i) {\n charcode = chars.charCodeAt(i);\n glyph = this.charToGlyph(charcode, charcode === 0x20);\n glyphs.push(glyph);\n }\n }\n return charsCache[charsCacheKey] = glyphs;\n }\n };\n return Font;\n}();\nvar ErrorFont = function ErrorFontClosure() {\n function ErrorFont(error) {\n this.error = error;\n this.loadedName = 'g_font_error';\n this.loading = false;\n }\n ErrorFont.prototype = {\n charsToGlyphs: function ErrorFont_charsToGlyphs() {\n return [];\n },\n exportData: function ErrorFont_exportData() {\n return { error: this.error };\n }\n };\n return ErrorFont;\n}();\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n var charCodeToGlyphId = Object.create(null);\n var glyphId, charCode, baseEncoding;\n var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n if (properties.baseEncodingName) {\n baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n } else if (isSymbolicFont) {\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n baseEncoding = _encodings.StandardEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n var differences = properties.differences,\n glyphsUnicodeMap;\n if (differences) {\n for (charCode in differences) {\n var glyphName = differences[charCode];\n glyphId = glyphNames.indexOf(glyphName);\n if (glyphId === -1) {\n if (!glyphsUnicodeMap) {\n glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n }\n var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0;\n }\n }\n }\n return charCodeToGlyphId;\n}\nvar Type1Font = function Type1FontClosure() {\n function findBlock(streamBytes, signature, startIndex) {\n var streamBytesLength = streamBytes.length;\n var signatureLength = signature.length;\n var scanLength = streamBytesLength - signatureLength;\n var i = startIndex,\n j,\n found = false;\n while (i < scanLength) {\n j = 0;\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n i += j;\n while (i < streamBytesLength && (0, _util.isSpace)(streamBytes[i])) {\n i++;\n }\n found = true;\n break;\n }\n i++;\n }\n return {\n found: found,\n length: i\n };\n }\n function getHeaderBlock(stream, suggestedLength) {\n var EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n var streamStartPos = stream.pos;\n var headerBytes, headerBytesLength, block;\n try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n }\n if (headerBytesLength === suggestedLength) {\n block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new _stream.Stream(headerBytes),\n length: suggestedLength\n };\n }\n }\n (0, _util.warn)('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n stream.pos = streamStartPos;\n var SCAN_BLOCK_LENGTH = 2048;\n var actualLength;\n while (true) {\n var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n if (block.length === 0) {\n break;\n }\n stream.pos += block.length;\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n stream.pos = streamStartPos;\n if (actualLength) {\n return {\n stream: new _stream.Stream(stream.getBytes(actualLength)),\n length: actualLength\n };\n }\n (0, _util.warn)('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n return {\n stream: new _stream.Stream(stream.getBytes(suggestedLength)),\n length: suggestedLength\n };\n }\n function getEexecBlock(stream, suggestedLength) {\n var eexecBytes = stream.getBytes();\n return {\n stream: new _stream.Stream(eexecBytes),\n length: eexecBytes.length\n };\n }\n function Type1Font(name, file, properties) {\n var PFB_HEADER_SIZE = 6;\n var headerBlockLength = properties.length1;\n var eexecBlockLength = properties.length2;\n var pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n }\n var headerBlock = getHeaderBlock(file, headerBlockLength);\n headerBlockLength = headerBlock.length;\n var headerBlockParser = new _type1_parser.Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED);\n headerBlockParser.extractFontHeader(properties);\n if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n }\n var eexecBlock = getEexecBlock(file, eexecBlockLength);\n eexecBlockLength = eexecBlock.length;\n var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED);\n var data = eexecBlockParser.extractFontProgram();\n for (var info in data.properties) {\n properties[info] = data.properties[info];\n }\n var charstrings = data.charstrings;\n var type2Charstrings = this.getType2Charstrings(charstrings);\n var subrs = this.getType2Subrs(data.subrs);\n this.charstrings = charstrings;\n this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties);\n this.seacs = this.getSeacs(data.charstrings);\n }\n Type1Font.prototype = {\n get numGlyphs() {\n return this.charstrings.length + 1;\n },\n getCharset: function Type1Font_getCharset() {\n var charset = ['.notdef'];\n var charstrings = this.charstrings;\n for (var glyphId = 0; glyphId < charstrings.length; glyphId++) {\n charset.push(charstrings[glyphId].glyphName);\n }\n return charset;\n },\n getGlyphMapping: function Type1Font_getGlyphMapping(properties) {\n var charstrings = this.charstrings;\n var glyphNames = ['.notdef'],\n glyphId;\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n var encoding = properties.builtInEncoding;\n if (encoding) {\n var builtInEncoding = Object.create(null);\n for (var charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n },\n getSeacs: function Type1Font_getSeacs(charstrings) {\n var i, ii;\n var seacMap = [];\n for (i = 0, ii = charstrings.length; i < ii; i++) {\n var charstring = charstrings[i];\n if (charstring.seac) {\n seacMap[i + 1] = charstring.seac;\n }\n }\n return seacMap;\n },\n getType2Charstrings: function Type1Font_getType2Charstrings(type1Charstrings) {\n var type2Charstrings = [];\n for (var i = 0, ii = type1Charstrings.length; i < ii; i++) {\n type2Charstrings.push(type1Charstrings[i].charstring);\n }\n return type2Charstrings;\n },\n getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {\n var bias = 0;\n var count = type1Subrs.length;\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n var type2Subrs = [];\n var i;\n for (i = 0; i < bias; i++) {\n type2Subrs.push([0x0B]);\n }\n for (i = 0; i < count; i++) {\n type2Subrs.push(type1Subrs[i]);\n }\n return type2Subrs;\n },\n wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) {\n var cff = new _cff_parser.CFF();\n cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4);\n cff.names = [name];\n var topDict = new _cff_parser.CFFTopDict();\n topDict.setByName('version', 391);\n topDict.setByName('Notice', 392);\n topDict.setByName('FullName', 393);\n topDict.setByName('FamilyName', 394);\n topDict.setByName('Weight', 395);\n topDict.setByName('Encoding', null);\n topDict.setByName('FontMatrix', properties.fontMatrix);\n topDict.setByName('FontBBox', properties.bbox);\n topDict.setByName('charset', null);\n topDict.setByName('CharStrings', null);\n topDict.setByName('Private', null);\n cff.topDict = topDict;\n var strings = new _cff_parser.CFFStrings();\n strings.add('Version 0.11');\n strings.add('See original notice');\n strings.add(name);\n strings.add(name);\n strings.add('Medium');\n cff.strings = strings;\n cff.globalSubrIndex = new _cff_parser.CFFIndex();\n var count = glyphs.length;\n var charsetArray = [0];\n var i, ii;\n for (i = 0; i < count; i++) {\n var index = _cff_parser.CFFStandardStrings.indexOf(charstrings[i].glyphName);\n if (index === -1) {\n index = 0;\n }\n charsetArray.push(index >> 8 & 0xff, index & 0xff);\n }\n cff.charset = new _cff_parser.CFFCharset(false, 0, [], charsetArray);\n var charStringsIndex = new _cff_parser.CFFIndex();\n charStringsIndex.add([0x8B, 0x0E]);\n for (i = 0; i < count; i++) {\n var glyph = glyphs[i];\n if (glyph.length === 0) {\n charStringsIndex.add([0x8B, 0x0E]);\n continue;\n }\n charStringsIndex.add(glyph);\n }\n cff.charStrings = charStringsIndex;\n var privateDict = new _cff_parser.CFFPrivateDict();\n privateDict.setByName('Subrs', null);\n var fields = ['BlueValues', 'OtherBlues', 'FamilyBlues', 'FamilyOtherBlues', 'StemSnapH', 'StemSnapV', 'BlueShift', 'BlueFuzz', 'BlueScale', 'LanguageGroup', 'ExpansionFactor', 'ForceBold', 'StdHW', 'StdVW'];\n for (i = 0, ii = fields.length; i < ii; i++) {\n var field = fields[i];\n if (!(field in properties.privateData)) {\n continue;\n }\n var value = properties.privateData[field];\n if ((0, _util.isArray)(value)) {\n for (var j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1];\n }\n }\n privateDict.setByName(field, value);\n }\n cff.topDict.privateDict = privateDict;\n var subrIndex = new _cff_parser.CFFIndex();\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n privateDict.subrsIndex = subrIndex;\n var compiler = new _cff_parser.CFFCompiler(cff);\n return compiler.compile();\n }\n };\n return Type1Font;\n}();\nvar CFFFont = function CFFFontClosure() {\n function CFFFont(file, properties) {\n this.properties = properties;\n var parser = new _cff_parser.CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n this.cff = parser.parse();\n var compiler = new _cff_parser.CFFCompiler(this.cff);\n this.seacs = this.cff.seacs;\n try {\n this.data = compiler.compile();\n } catch (e) {\n (0, _util.warn)('Failed to compile font ' + properties.loadedName);\n this.data = file;\n }\n }\n CFFFont.prototype = {\n get numGlyphs() {\n return this.cff.charStrings.count;\n },\n getCharset: function CFFFont_getCharset() {\n return this.cff.charset.charset;\n },\n getGlyphMapping: function CFFFont_getGlyphMapping() {\n var cff = this.cff;\n var properties = this.properties;\n var charsets = cff.charset.charset;\n var charCodeToGlyphId;\n var glyphId;\n if (properties.composite) {\n charCodeToGlyphId = Object.create(null);\n if (cff.isCIDFont) {\n for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n var cid = charsets[glyphId];\n var charCode = properties.cMap.charCodeOf(cid);\n charCodeToGlyphId[charCode] = glyphId;\n }\n } else {\n for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCodeToGlyphId[glyphId] = glyphId;\n }\n }\n return charCodeToGlyphId;\n }\n var encoding = cff.encoding ? cff.encoding.encoding : null;\n charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n return charCodeToGlyphId;\n }\n };\n return CFFFont;\n}();\n(function checkSeacSupport() {\n if (typeof navigator !== 'undefined' && /Windows/.test(navigator.userAgent)) {\n exports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED = true;\n }\n})();\n(function checkChromeWindows() {\n if (typeof navigator !== 'undefined' && /Windows.*Chrome/.test(navigator.userAgent)) {\n SKIP_PRIVATE_USE_RANGE_F000_TO_F01F = true;\n }\n})();\nexports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;\nexports.PRIVATE_USE_OFFSET_START = PRIVATE_USE_OFFSET_START;\nexports.PRIVATE_USE_OFFSET_END = PRIVATE_USE_OFFSET_END;\nexports.ErrorFont = ErrorFont;\nexports.Font = Font;\nexports.FontFlags = FontFlags;\nexports.ToUnicodeMap = ToUnicodeMap;\nexports.IdentityToUnicodeMap = IdentityToUnicodeMap;\nexports.ProblematicCharRanges = ProblematicCharRanges;\nexports.getFontType = getFontType;\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PDFImage = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _stream = __w_pdfjs_require__(3);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _colorspace = __w_pdfjs_require__(15);\n\nvar _jpx = __w_pdfjs_require__(57);\n\nvar PDFImage = function PDFImageClosure() {\n function handleImageData(image, nativeDecoder) {\n if (nativeDecoder && nativeDecoder.canDecode(image)) {\n return nativeDecoder.decode(image);\n }\n return Promise.resolve(image);\n }\n function decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n return value < 0 ? 0 : value > max ? max : value;\n }\n function resizeImageMask(src, bpc, w1, h1, w2, h2) {\n var length = w2 * h2;\n var dest = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n var xRatio = w1 / w2;\n var yRatio = h1 / h2;\n var i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n var xScaled = new Uint16Array(w2);\n var w1Scanline = w1;\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n return dest;\n }\n function PDFImage(xref, res, image, inline, smask, mask, isMask) {\n this.image = image;\n var dict = image.dict;\n if (dict.has('Filter')) {\n var filter = dict.get('Filter').name;\n if (filter === 'JPXDecode') {\n var jpxImage = new _jpx.JpxImage();\n jpxImage.parseImageProperties(image.stream);\n image.stream.reset();\n image.bitsPerComponent = jpxImage.bitsPerComponent;\n image.numComps = jpxImage.componentsCount;\n } else if (filter === 'JBIG2Decode') {\n image.bitsPerComponent = 1;\n image.numComps = 1;\n }\n }\n this.width = dict.get('Width', 'W');\n this.height = dict.get('Height', 'H');\n if (this.width < 1 || this.height < 1) {\n throw new _util.FormatError('Invalid image width: ' + this.width + ' or ' + ('height: ' + this.height));\n }\n this.interpolate = dict.get('Interpolate', 'I') || false;\n this.imageMask = dict.get('ImageMask', 'IM') || false;\n this.matte = dict.get('Matte') || false;\n var bitsPerComponent = image.bitsPerComponent;\n if (!bitsPerComponent) {\n bitsPerComponent = dict.get('BitsPerComponent', 'BPC');\n if (!bitsPerComponent) {\n if (this.imageMask) {\n bitsPerComponent = 1;\n } else {\n throw new _util.FormatError('Bits per component missing in image: ' + this.imageMask);\n }\n }\n }\n this.bpc = bitsPerComponent;\n if (!this.imageMask) {\n var colorSpace = dict.get('ColorSpace', 'CS');\n if (!colorSpace) {\n (0, _util.info)('JPX images (which do not require color spaces)');\n switch (image.numComps) {\n case 1:\n colorSpace = _primitives.Name.get('DeviceGray');\n break;\n case 3:\n colorSpace = _primitives.Name.get('DeviceRGB');\n break;\n case 4:\n colorSpace = _primitives.Name.get('DeviceCMYK');\n break;\n default:\n throw new Error('JPX images with ' + this.numComps + ' ' + 'color components not supported.');\n }\n }\n this.colorSpace = _colorspace.ColorSpace.parse(colorSpace, xref, res);\n this.numComps = this.colorSpace.numComps;\n }\n this.decode = dict.getArray('Decode', 'D');\n this.needsDecode = false;\n if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {\n this.needsDecode = true;\n var max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\n for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n var dmin = this.decode[i];\n var dmax = this.decode[i + 1];\n this.decodeCoefficients[j] = dmax - dmin;\n this.decodeAddends[j] = max * dmin;\n }\n }\n if (smask) {\n this.smask = new PDFImage(xref, res, smask, false);\n } else if (mask) {\n if ((0, _primitives.isStream)(mask)) {\n var maskDict = mask.dict,\n imageMask = maskDict.get('ImageMask', 'IM');\n if (!imageMask) {\n (0, _util.warn)('Ignoring /Mask in image without /ImageMask.');\n } else {\n this.mask = new PDFImage(xref, res, mask, false, null, null, true);\n }\n } else {\n this.mask = mask;\n }\n }\n }\n PDFImage.buildImage = function PDFImage_buildImage(handler, xref, res, image, inline, nativeDecoder) {\n var imagePromise = handleImageData(image, nativeDecoder);\n var smaskPromise;\n var maskPromise;\n var smask = image.dict.get('SMask');\n var mask = image.dict.get('Mask');\n if (smask) {\n smaskPromise = handleImageData(smask, nativeDecoder);\n maskPromise = Promise.resolve(null);\n } else {\n smaskPromise = Promise.resolve(null);\n if (mask) {\n if ((0, _primitives.isStream)(mask)) {\n maskPromise = handleImageData(mask, nativeDecoder);\n } else if ((0, _util.isArray)(mask)) {\n maskPromise = Promise.resolve(mask);\n } else {\n (0, _util.warn)('Unsupported mask format.');\n maskPromise = Promise.resolve(null);\n }\n } else {\n maskPromise = Promise.resolve(null);\n }\n }\n return Promise.all([imagePromise, smaskPromise, maskPromise]).then(function (results) {\n var imageData = results[0];\n var smaskData = results[1];\n var maskData = results[2];\n return new PDFImage(xref, res, imageData, inline, smaskData, maskData);\n });\n };\n PDFImage.createMask = function PDFImage_createMask(imgArray, width, height, imageIsFromDecodeStream, inverseDecode) {\n var computedLength = (width + 7 >> 3) * height;\n var actualLength = imgArray.byteLength;\n var haveFullData = computedLength === actualLength;\n var data, i;\n if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n data = imgArray;\n } else if (!inverseDecode) {\n data = new Uint8Array(actualLength);\n data.set(imgArray);\n } else {\n data = new Uint8Array(computedLength);\n data.set(imgArray);\n for (i = actualLength; i < computedLength; i++) {\n data[i] = 0xff;\n }\n }\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xFF;\n }\n }\n return {\n data: data,\n width: width,\n height: height\n };\n };\n PDFImage.prototype = {\n get drawWidth() {\n return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0);\n },\n get drawHeight() {\n return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);\n },\n decodeBuffer: function PDFImage_decodeBuffer(buffer) {\n var bpc = this.bpc;\n var numComps = this.numComps;\n var decodeAddends = this.decodeAddends;\n var decodeCoefficients = this.decodeCoefficients;\n var max = (1 << bpc) - 1;\n var i, ii;\n if (bpc === 1) {\n for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n return;\n }\n var index = 0;\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (var j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max);\n index++;\n }\n }\n },\n getComponents: function PDFImage_getComponents(buffer) {\n var bpc = this.bpc;\n if (bpc === 8) {\n return buffer;\n }\n var width = this.width;\n var height = this.height;\n var numComps = this.numComps;\n var length = width * height * numComps;\n var bufferPos = 0;\n var output = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n var rowComps = width * numComps;\n var max = (1 << bpc) - 1;\n var i = 0,\n ii,\n buf;\n if (bpc === 1) {\n var mask, loop1End, loop2End;\n for (var j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\n while (i < loop1End) {\n buf = buffer[bufferPos++];\n output[i] = buf >> 7 & 1;\n output[i + 1] = buf >> 6 & 1;\n output[i + 2] = buf >> 5 & 1;\n output[i + 3] = buf >> 4 & 1;\n output[i + 4] = buf >> 3 & 1;\n output[i + 5] = buf >> 2 & 1;\n output[i + 6] = buf >> 1 & 1;\n output[i + 7] = buf & 1;\n i += 8;\n }\n if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n var bits = 0;\n buf = 0;\n for (i = 0, ii = length; i < ii; ++i) {\n if (i % rowComps === 0) {\n buf = 0;\n bits = 0;\n }\n while (bits < bpc) {\n buf = buf << 8 | buffer[bufferPos++];\n bits += 8;\n }\n var remainingBits = bits - bpc;\n var value = buf >> remainingBits;\n output[i] = value < 0 ? 0 : value > max ? max : value;\n buf = buf & (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n return output;\n },\n fillOpacity: function PDFImage_fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n var smask = this.smask;\n var mask = this.mask;\n var alphaBuf, sw, sh, i, ii, j;\n if (smask) {\n sw = smask.width;\n sh = smask.height;\n alphaBuf = new Uint8Array(sw * sh);\n smask.fillGrayBuffer(alphaBuf);\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n }\n } else if (mask) {\n if (mask instanceof PDFImage) {\n sw = mask.width;\n sh = mask.height;\n alphaBuf = new Uint8Array(sw * sh);\n mask.numComps = 1;\n mask.fillGrayBuffer(alphaBuf);\n for (i = 0, ii = sw * sh; i < ii; ++i) {\n alphaBuf[i] = 255 - alphaBuf[i];\n }\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n }\n } else if ((0, _util.isArray)(mask)) {\n alphaBuf = new Uint8Array(width * height);\n var numComps = this.numComps;\n for (i = 0, ii = width * height; i < ii; ++i) {\n var opacity = 0;\n var imageOffset = i * numComps;\n for (j = 0; j < numComps; ++j) {\n var color = image[imageOffset + j];\n var maskOffset = j * 2;\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n alphaBuf[i] = opacity;\n }\n } else {\n throw new _util.FormatError('Unknown mask format.');\n }\n }\n if (alphaBuf) {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = alphaBuf[i];\n }\n } else {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = 255;\n }\n }\n },\n undoPreblend: function PDFImage_undoPreblend(buffer, width, height) {\n var matte = this.smask && this.smask.matte;\n if (!matte) {\n return;\n }\n var matteRgb = this.colorSpace.getRgb(matte, 0);\n var matteR = matteRgb[0];\n var matteG = matteRgb[1];\n var matteB = matteRgb[2];\n var length = width * height * 4;\n var r, g, b;\n for (var i = 0; i < length; i += 4) {\n var alpha = buffer[i + 3];\n if (alpha === 0) {\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\n var k = 255 / alpha;\n r = (buffer[i] - matteR) * k + matteR;\n g = (buffer[i + 1] - matteG) * k + matteG;\n b = (buffer[i + 2] - matteB) * k + matteB;\n buffer[i] = r <= 0 ? 0 : r >= 255 ? 255 : r | 0;\n buffer[i + 1] = g <= 0 ? 0 : g >= 255 ? 255 : g | 0;\n buffer[i + 2] = b <= 0 ? 0 : b >= 255 ? 255 : b | 0;\n }\n },\n createImageData: function PDFImage_createImageData(forceRGBA) {\n var drawWidth = this.drawWidth;\n var drawHeight = this.drawHeight;\n var imgData = {\n width: drawWidth,\n height: drawHeight\n };\n var numComps = this.numComps;\n var originalWidth = this.width;\n var originalHeight = this.height;\n var bpc = this.bpc;\n var rowBytes = originalWidth * numComps * bpc + 7 >> 3;\n var imgArray;\n if (!forceRGBA) {\n var kind;\n if (this.colorSpace.name === 'DeviceGray' && bpc === 1) {\n kind = _util.ImageKind.GRAYSCALE_1BPP;\n } else if (this.colorSpace.name === 'DeviceRGB' && bpc === 8 && !this.needsDecode) {\n kind = _util.ImageKind.RGB_24BPP;\n }\n if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n imgData.kind = kind;\n imgArray = this.getImageBytes(originalHeight * rowBytes);\n if (this.image instanceof _stream.DecodeStream) {\n imgData.data = imgArray;\n } else {\n var newArray = new Uint8Array(imgArray.length);\n newArray.set(imgArray);\n imgData.data = newArray;\n }\n if (this.needsDecode) {\n (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP);\n var buffer = imgData.data;\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n return imgData;\n }\n if (this.image instanceof _stream.JpegStream && !this.smask && !this.mask && (this.colorSpace.name === 'DeviceGray' || this.colorSpace.name === 'DeviceRGB' || this.colorSpace.name === 'DeviceCMYK')) {\n imgData.kind = _util.ImageKind.RGB_24BPP;\n imgData.data = this.getImageBytes(originalHeight * rowBytes, drawWidth, drawHeight, true);\n return imgData;\n }\n }\n imgArray = this.getImageBytes(originalHeight * rowBytes);\n var actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight;\n var comps = this.getComponents(imgArray);\n var alpha01, maybeUndoPreblend;\n if (!forceRGBA && !this.smask && !this.mask) {\n imgData.kind = _util.ImageKind.RGB_24BPP;\n imgData.data = new Uint8Array(drawWidth * drawHeight * 3);\n alpha01 = 0;\n maybeUndoPreblend = false;\n } else {\n imgData.kind = _util.ImageKind.RGBA_32BPP;\n imgData.data = new Uint8Array(drawWidth * drawHeight * 4);\n alpha01 = 1;\n maybeUndoPreblend = true;\n this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps);\n }\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n if (maybeUndoPreblend) {\n this.undoPreblend(imgData.data, drawWidth, actualHeight);\n }\n return imgData;\n },\n fillGrayBuffer: function PDFImage_fillGrayBuffer(buffer) {\n var numComps = this.numComps;\n if (numComps !== 1) {\n throw new _util.FormatError('Reading gray scale from a color image: ' + numComps);\n }\n var width = this.width;\n var height = this.height;\n var bpc = this.bpc;\n var rowBytes = width * numComps * bpc + 7 >> 3;\n var imgArray = this.getImageBytes(height * rowBytes);\n var comps = this.getComponents(imgArray);\n var i, length;\n if (bpc === 1) {\n length = width * height;\n if (this.needsDecode) {\n for (i = 0; i < length; ++i) {\n buffer[i] = comps[i] - 1 & 255;\n }\n } else {\n for (i = 0; i < length; ++i) {\n buffer[i] = -comps[i] & 255;\n }\n }\n return;\n }\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n length = width * height;\n var scale = 255 / ((1 << bpc) - 1);\n for (i = 0; i < length; ++i) {\n buffer[i] = scale * comps[i] | 0;\n }\n },\n getImageBytes: function PDFImage_getImageBytes(length, drawWidth, drawHeight, forceRGB) {\n this.image.reset();\n this.image.drawWidth = drawWidth || this.width;\n this.image.drawHeight = drawHeight || this.height;\n this.image.forceRGB = !!forceRGB;\n return this.image.getBytes(length);\n }\n };\n return PDFImage;\n}();\nexports.PDFImage = PDFImage;\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Jbig2Image = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(52);\n\nvar Jbig2Error = function Jbig2ErrorClosure() {\n function Jbig2Error(msg) {\n this.message = 'JBIG2 error: ' + msg;\n }\n Jbig2Error.prototype = new Error();\n Jbig2Error.prototype.name = 'Jbig2Error';\n Jbig2Error.constructor = Jbig2Error;\n return Jbig2Error;\n}();\nvar Jbig2Image = function Jbig2ImageClosure() {\n function ContextCache() {}\n ContextCache.prototype = {\n getContexts: function getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return this[id] = new Int8Array(1 << 16);\n }\n };\n function DecodingContext(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n DecodingContext.prototype = {\n get decoder() {\n var decoder = new _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end);\n return (0, _util.shadow)(this, 'decoder', decoder);\n },\n get contextCache() {\n var cache = new ContextCache();\n return (0, _util.shadow)(this, 'contextCache', cache);\n }\n };\n function decodeInteger(contextCache, procedure, decoder) {\n var contexts = contextCache.getContexts(procedure);\n var prev = 1;\n function readBits(length) {\n var v = 0;\n for (var i = 0; i < length; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256;\n v = v << 1 | bit;\n }\n return v >>> 0;\n }\n var sign = readBits(1);\n var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2);\n return sign === 0 ? value : value > 0 ? -value : null;\n }\n function decodeIAID(contextCache, decoder, codeLength) {\n var contexts = contextCache.getContexts('IAID');\n var prev = 1;\n for (var i = 0; i < codeLength; i++) {\n var bit = decoder.readBit(contexts, prev);\n prev = prev << 1 | bit;\n }\n if (codeLength < 31) {\n return prev & (1 << codeLength) - 1;\n }\n return prev & 0x7FFFFFFF;\n }\n var SegmentTypes = ['SymbolDictionary', null, null, null, 'IntermediateTextRegion', null, 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null, null, null, null, null, null, 'PatternDictionary', null, null, null, 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion', 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null, null, null, null, null, null, 'IntermediateGenericRegion', null, 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion', 'IntermediateGenericRefinementRegion', null, 'ImmediateGenericRefinementRegion', 'ImmediateLosslessGenericRefinementRegion', null, null, null, null, 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles', 'Tables', null, null, null, null, null, null, null, null, 'Extension'];\n var CodingTemplates = [[{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 2,\n y: -1\n }, {\n x: -4,\n y: 0\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: 2,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 2,\n y: -1\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -1,\n y: -2\n }, {\n x: 0,\n y: -2\n }, {\n x: 1,\n y: -2\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }], [{\n x: -3,\n y: -1\n }, {\n x: -2,\n y: -1\n }, {\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -4,\n y: 0\n }, {\n x: -3,\n y: 0\n }, {\n x: -2,\n y: 0\n }, {\n x: -1,\n y: 0\n }]];\n var RefinementTemplates = [{\n coding: [{\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }],\n reference: [{\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n x: 1,\n y: 0\n }, {\n x: -1,\n y: 1\n }, {\n x: 0,\n y: 1\n }, {\n x: 1,\n y: 1\n }]\n }, {\n coding: [{\n x: -1,\n y: -1\n }, {\n x: 0,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: -1,\n y: 0\n }],\n reference: [{\n x: 0,\n y: -1\n }, {\n x: -1,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n x: 1,\n y: 0\n }, {\n x: 0,\n y: 1\n }, {\n x: 1,\n y: 1\n }]\n }];\n var ReusedContexts = [0x9B25, 0x0795, 0x00E5, 0x0195];\n var RefinementReusedContexts = [0x0020, 0x0008];\n function decodeBitmapTemplate0(width, height, decodingContext) {\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts('GB');\n var contextLabel,\n i,\n j,\n pixel,\n row,\n row1,\n row2,\n bitmap = [];\n var OLD_PIXEL_MASK = 0x7BF7;\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = i < 1 ? row : bitmap[i - 1];\n row2 = i < 2 ? row : bitmap[i - 2];\n contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4;\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel;\n }\n }\n return bitmap;\n }\n function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) {\n if (mmr) {\n throw new Jbig2Error('MMR encoding is not supported');\n }\n if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n var useskip = !!skip;\n var template = CodingTemplates[templateIndex].concat(at);\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\n var templateLength = template.length;\n var templateX = new Int8Array(templateLength);\n var templateY = new Int8Array(templateLength);\n var changingTemplateEntries = [];\n var reuseMask = 0,\n minX = 0,\n maxX = 0,\n minY = 0;\n var c, k;\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) {\n reuseMask |= 1 << templateLength - 1 - k;\n } else {\n changingTemplateEntries.push(k);\n }\n }\n var changingEntriesLength = changingTemplateEntries.length;\n var changingTemplateX = new Int8Array(changingEntriesLength);\n var changingTemplateY = new Int8Array(changingEntriesLength);\n var changingTemplateBit = new Uint16Array(changingEntriesLength);\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << templateLength - 1 - k;\n }\n var sbb_left = -minX;\n var sbb_top = -minY;\n var sbb_right = width - maxX;\n var pseudoPixelContext = ReusedContexts[templateIndex];\n var row = new Uint8Array(width);\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts('GB');\n var ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row);\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n contextLabel = contextLabel << 1 & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n }\n function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) {\n var codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n var codingTemplateLength = codingTemplate.length;\n var codingTemplateX = new Int32Array(codingTemplateLength);\n var codingTemplateY = new Int32Array(codingTemplateLength);\n var k;\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n var referenceTemplate = RefinementTemplates[templateIndex].reference;\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n var referenceTemplateLength = referenceTemplate.length;\n var referenceTemplateX = new Int32Array(referenceTemplateLength);\n var referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n var referenceWidth = referenceBitmap[0].length;\n var referenceHeight = referenceBitmap.length;\n var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n var bitmap = [];\n var decoder = decodingContext.decoder;\n var contexts = decodingContext.contextCache.getContexts('GR');\n var ltp = 0;\n for (var i = 0; i < height; i++) {\n if (prediction) {\n var sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error('prediction is not supported');\n }\n }\n var row = new Uint8Array(width);\n bitmap.push(row);\n for (var j = 0; j < width; j++) {\n var i0, j0;\n var contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1;\n } else {\n contextLabel = contextLabel << 1 | referenceBitmap[i0][j0];\n }\n }\n var pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n }\n function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext) {\n if (huffman) {\n throw new Jbig2Error('huffman is not supported');\n }\n var newSymbols = [];\n var currentHeight = 0;\n var symbolCodeLength = (0, _util.log2)(symbols.length + numberOfNewSymbols);\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n while (newSymbols.length < numberOfNewSymbols) {\n var deltaHeight = decodeInteger(contextCache, 'IADH', decoder);\n currentHeight += deltaHeight;\n var currentWidth = 0;\n while (true) {\n var deltaWidth = decodeInteger(contextCache, 'IADW', decoder);\n if (deltaWidth === null) {\n break;\n }\n currentWidth += deltaWidth;\n var bitmap;\n if (refinement) {\n var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder);\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext);\n } else {\n var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n var rdx = decodeInteger(contextCache, 'IARDX', decoder);\n var rdy = decodeInteger(contextCache, 'IARDY', decoder);\n var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext);\n }\n } else {\n bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext);\n }\n newSymbols.push(bitmap);\n }\n }\n var exportedSymbols = [];\n var flags = [],\n currentFlag = false;\n var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n var runLength = decodeInteger(contextCache, 'IAEX', decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (var i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (var j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n }\n function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext) {\n if (huffman) {\n throw new Jbig2Error('huffman is not supported');\n }\n var bitmap = [];\n var i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (var j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n var decoder = decodingContext.decoder;\n var contextCache = decodingContext.contextCache;\n var stripT = -decodeInteger(contextCache, 'IADT', decoder);\n var firstS = 0;\n i = 0;\n while (i < numberOfSymbolInstances) {\n var deltaT = decodeInteger(contextCache, 'IADT', decoder);\n stripT += deltaT;\n var deltaFirstS = decodeInteger(contextCache, 'IAFS', decoder);\n firstS += deltaFirstS;\n var currentS = firstS;\n do {\n var currentT = stripSize === 1 ? 0 : decodeInteger(contextCache, 'IAIT', decoder);\n var t = stripSize * stripT + currentT;\n var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n var applyRefinement = refinement && decodeInteger(contextCache, 'IARI', decoder);\n var symbolBitmap = inputSymbols[symbolId];\n var symbolWidth = symbolBitmap[0].length;\n var symbolHeight = symbolBitmap.length;\n if (applyRefinement) {\n var rdw = decodeInteger(contextCache, 'IARDW', decoder);\n var rdh = decodeInteger(contextCache, 'IARDH', decoder);\n var rdx = decodeInteger(contextCache, 'IARDX', decoder);\n var rdy = decodeInteger(contextCache, 'IARDY', decoder);\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext);\n }\n var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight);\n var offsetS = currentS - (referenceCorner & 2 ? symbolWidth : 0);\n var s2, t2, symbolRow;\n if (transposed) {\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n var maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2:\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported');\n }\n }\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2:\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported');\n }\n }\n currentS += symbolWidth - 1;\n }\n i++;\n var deltaS = decodeInteger(contextCache, 'IADS', decoder);\n if (deltaS === null) {\n break;\n }\n currentS += deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n }\n function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {\n var at = [];\n at.push({\n x: -patternWidth,\n y: 0\n });\n if (template === 0) {\n at.push({\n x: -3,\n y: -1\n });\n at.push({\n x: 2,\n y: -2\n });\n at.push({\n x: -2,\n y: -2\n });\n }\n var collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n var collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);\n var patterns = [],\n i = 0,\n patternBitmap = void 0,\n xMin = void 0,\n xMax = void 0,\n y = void 0;\n while (i <= maxPatternIndex) {\n patternBitmap = [];\n xMin = patternWidth * i;\n xMax = xMin + patternWidth;\n for (y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n i++;\n }\n return patterns;\n }\n function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {\n var skip = null;\n if (enableSkip) {\n throw new Jbig2Error('skip is not supported');\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported in halftone region');\n }\n var regionBitmap = [];\n var i = void 0,\n j = void 0,\n row = void 0;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n regionBitmap.push(row);\n }\n var numberOfPatterns = patterns.length;\n var pattern0 = patterns[0];\n var patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n var bitsPerValue = (0, _util.log2)(numberOfPatterns);\n var at = [];\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1\n });\n if (template === 0) {\n at.push({\n x: -3,\n y: -1\n });\n at.push({\n x: 2,\n y: -2\n });\n at.push({\n x: -2,\n y: -2\n });\n }\n var grayScaleBitPlanes = [];\n for (i = bitsPerValue - 1; i >= 0; i--) {\n grayScaleBitPlanes[i] = decodeBitmap(mmr, gridWidth, gridHeight, template, false, skip, at, decodingContext);\n }\n var mg = void 0,\n ng = void 0,\n bit = void 0,\n patternIndex = void 0,\n patternBitmap = void 0,\n x = void 0,\n y = void 0,\n patternRow = void 0,\n regionRow = void 0;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit = grayScaleBitPlanes[j][mg][ng] ^ bit;\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;\n y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;\n if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n var regionX = void 0,\n regionY = void 0;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n }\n function readSegmentHeader(data, start) {\n var segmentHeader = {};\n segmentHeader.number = (0, _util.readUint32)(data, start);\n var flags = data[start + 4];\n var segmentType = flags & 0x3F;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error('invalid segment type: ' + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n var pageAssociationFieldSize = !!(flags & 0x40);\n var referredFlags = data[start + 5];\n var referredToCount = referredFlags >> 5 & 7;\n var retainBits = [referredFlags & 31];\n var position = start + 6;\n if (referredFlags === 7) {\n referredToCount = (0, _util.readUint32)(data, position - 1) & 0x1FFFFFFF;\n position += 3;\n var bytes = referredToCount + 7 >> 3;\n retainBits[0] = data[position++];\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error('invalid referred-to flags');\n }\n segmentHeader.retainBits = retainBits;\n var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 : segmentHeader.number <= 65536 ? 2 : 4;\n var referredTo = [];\n var i, ii;\n for (i = 0; i < referredToCount; i++) {\n var number = referredToSegmentNumberSize === 1 ? data[position] : referredToSegmentNumberSize === 2 ? (0, _util.readUint16)(data, position) : (0, _util.readUint32)(data, position);\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = (0, _util.readUint32)(data, position);\n position += 4;\n }\n segmentHeader.length = (0, _util.readUint32)(data, position);\n position += 4;\n if (segmentHeader.length === 0xFFFFFFFF) {\n if (segmentType === 38) {\n var genericRegionInfo = readRegionSegmentInformation(data, position);\n var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength];\n var genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n var searchPatternLength = 6;\n var searchPattern = new Uint8Array(searchPatternLength);\n if (!genericRegionMmr) {\n searchPattern[0] = 0xFF;\n searchPattern[1] = 0xAC;\n }\n searchPattern[2] = genericRegionInfo.height >>> 24 & 0xFF;\n searchPattern[3] = genericRegionInfo.height >> 16 & 0xFF;\n searchPattern[4] = genericRegionInfo.height >> 8 & 0xFF;\n searchPattern[5] = genericRegionInfo.height & 0xFF;\n for (i = position, ii = data.length; i < ii; i++) {\n var j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n if (segmentHeader.length === 0xFFFFFFFF) {\n throw new Jbig2Error('segment end was not found');\n }\n } else {\n throw new Jbig2Error('invalid unknown segment length');\n }\n }\n segmentHeader.headerEnd = position;\n return segmentHeader;\n }\n function readSegments(header, data, start, end) {\n var segments = [];\n var position = start;\n while (position < end) {\n var segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n var segment = {\n header: segmentHeader,\n data: data\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break;\n }\n }\n if (header.randomAccess) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n return segments;\n }\n function readRegionSegmentInformation(data, start) {\n return {\n width: (0, _util.readUint32)(data, start),\n height: (0, _util.readUint32)(data, start + 4),\n x: (0, _util.readUint32)(data, start + 8),\n y: (0, _util.readUint32)(data, start + 12),\n combinationOperator: data[start + 16] & 7\n };\n }\n var RegionSegmentInformationFieldLength = 17;\n function processSegment(segment, visitor) {\n var header = segment.header;\n var data = segment.data,\n position = segment.start,\n end = segment.end;\n var args, at, i, atLength;\n switch (header.type) {\n case 0:\n var dictionary = {};\n var dictionaryFlags = (0, _util.readUint16)(data, position);\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3;\n dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3;\n dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1;\n dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = dictionaryFlags >> 10 & 3;\n dictionary.refinementTemplate = dictionaryFlags >> 12 & 1;\n position += 2;\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = (0, _util.readUint32)(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = (0, _util.readUint32)(data, position);\n position += 4;\n args = [dictionary, header.number, header.referredTo, data, position, end];\n break;\n case 6:\n case 7:\n var textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var textRegionSegmentFlags = (0, _util.readUint16)(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.stripSize = 1 << (textRegionSegmentFlags >> 2 & 3);\n textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3;\n textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1;\n textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27;\n textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1;\n if (textRegion.huffman) {\n var textRegionHuffmanFlags = (0, _util.readUint16)(data, position);\n position += 2;\n textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3;\n textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3;\n textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3;\n textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3;\n textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3;\n textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3;\n textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 14);\n }\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = (0, _util.readUint32)(data, position);\n position += 4;\n if (textRegion.huffman) {\n throw new Jbig2Error('huffman is not supported');\n }\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16:\n var patternDictionary = {};\n var patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = patternDictionaryFlags >> 1 & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = (0, _util.readUint32)(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22:\n case 23:\n var halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = halftoneRegionFlags >> 1 & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7;\n halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1;\n halftoneRegion.gridWidth = (0, _util.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridHeight = (0, _util.readUint32)(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;\n position += 4;\n halftoneRegion.gridOffsetY = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;\n position += 4;\n halftoneRegion.gridVectorX = (0, _util.readUint16)(data, position);\n position += 2;\n halftoneRegion.gridVectorY = (0, _util.readUint16)(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n case 38:\n case 39:\n var genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n var genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = genericRegionSegmentFlags >> 1 & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: (0, _util.readInt8)(data, position),\n y: (0, _util.readInt8)(data, position + 1)\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48:\n var pageInfo = {\n width: (0, _util.readUint32)(data, position),\n height: (0, _util.readUint32)(data, position + 4),\n resolutionX: (0, _util.readUint32)(data, position + 8),\n resolutionY: (0, _util.readUint32)(data, position + 12)\n };\n if (pageInfo.height === 0xFFFFFFFF) {\n delete pageInfo.height;\n }\n var pageSegmentFlags = data[position + 16];\n (0, _util.readUint16)(data, position + 17);\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1;\n pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n case 49:\n break;\n case 50:\n break;\n case 51:\n break;\n case 62:\n break;\n default:\n throw new Jbig2Error('segment type ' + header.typeName + '(' + header.type + ')' + ' is not implemented');\n }\n var callbackName = 'on' + header.typeName;\n if (callbackName in visitor) {\n visitor[callbackName].apply(visitor, args);\n }\n }\n function processSegments(segments, visitor) {\n for (var i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n }\n function parseJbig2(data, start, end) {\n var position = start;\n if (data[position] !== 0x97 || data[position + 1] !== 0x4A || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0D || data[position + 5] !== 0x0A || data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) {\n throw new Jbig2Error('invalid header');\n }\n var header = {};\n position += 8;\n var flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = (0, _util.readUint32)(data, position);\n position += 4;\n }\n readSegments(header, data, position, end);\n throw new Error('Not implemented');\n }\n function parseJbig2Chunks(chunks) {\n var visitor = new SimpleSegmentVisitor();\n for (var i = 0, ii = chunks.length; i < ii; i++) {\n var chunk = chunks[i];\n var segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n return visitor.buffer;\n }\n function SimpleSegmentVisitor() {}\n SimpleSegmentVisitor.prototype = {\n onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) {\n this.currentPageInfo = info;\n var rowSize = info.width + 7 >> 3;\n var buffer = new Uint8ClampedArray(rowSize * info.height);\n if (info.defaultPixelValue) {\n for (var i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = 0xFF;\n }\n }\n this.buffer = buffer;\n },\n drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {\n var pageInfo = this.currentPageInfo;\n var width = regionInfo.width,\n height = regionInfo.height;\n var rowSize = pageInfo.width + 7 >> 3;\n var combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator;\n var buffer = this.buffer;\n var mask0 = 128 >> (regionInfo.x & 7);\n var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n var i, j, mask, offset;\n switch (combinationOperator) {\n case 0:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2:\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error('operator ' + combinationOperator + ' is not supported');\n }\n },\n onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) {\n var regionInfo = region.info;\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion.apply(this, arguments);\n },\n onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) {\n var huffmanTables;\n if (dictionary.huffman) {\n throw new Jbig2Error('huffman is not supported');\n }\n var symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n var inputSymbols = [];\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]);\n }\n var decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext);\n },\n onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) {\n var regionInfo = region.info;\n var huffmanTables;\n var symbols = this.symbols;\n var inputSymbols = [];\n for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]);\n }\n var symbolCodeLength = (0, _util.log2)(inputSymbols.length);\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion.apply(this, arguments);\n },\n onPatternDictionary: function onPatternDictionary(dictionary, currentSegment, data, start, end) {\n var patterns = this.patterns;\n if (!patterns) {\n this.patterns = patterns = {};\n }\n var decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);\n },\n onImmediateHalftoneRegion: function onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n var patterns = this.patterns[referredSegments[0]];\n var regionInfo = region.info;\n var decodingContext = new DecodingContext(data, start, end);\n var bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext);\n this.drawBitmap(regionInfo, bitmap);\n },\n onImmediateLosslessHalftoneRegion: function onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n }\n };\n function Jbig2Image() {}\n Jbig2Image.prototype = {\n parseChunks: function Jbig2Image_parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n }\n };\n return Jbig2Image;\n}();\nexports.Jbig2Image = Jbig2Image;\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.JpegImage = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __w_pdfjs_require__(0);\n\nvar JpegError = function JpegErrorClosure() {\n function JpegError(msg) {\n this.message = 'JPEG error: ' + msg;\n }\n JpegError.prototype = new Error();\n JpegError.prototype.name = 'JpegError';\n JpegError.constructor = JpegError;\n return JpegError;\n}();\nvar JpegImage = function JpegImageClosure() {\n var dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function JpegImage() {\n this.decodeTransform = null;\n this.colorTransform = -1;\n }\n function buildHuffmanTable(codeLengths, values) {\n var k = 0,\n code = [],\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n code.push({\n children: [],\n index: 0\n });\n var p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = {\n children: [],\n index: 0\n });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) {\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var startOffset = offset,\n bitsData = 0,\n bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xFF) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new JpegError('unexpected marker ' + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree;\n while (true) {\n node = node[readBit()];\n if (typeof node === 'number') {\n return node;\n }\n if ((typeof node === 'undefined' ? 'undefined' : _typeof(node)) !== 'object') {\n throw new JpegError('invalid huffman sequence');\n }\n }\n }\n function receive(length) {\n var n = 0;\n while (length > 0) {\n n = n << 1 | readBit();\n length--;\n }\n return n;\n }\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n var n = receive(length);\n if (n >= 1 << length - 1) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n function decodeBaseline(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[offset] = component.pred += diff;\n var k = 1;\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] = receiveAndExtend(s);\n k++;\n }\n }\n function decodeDCFirst(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[offset] = component.pred += diff;\n }\n function decodeDCSuccessive(component, offset) {\n component.blockData[offset] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component, offset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k = spectralStart,\n e = spectralEnd;\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n var successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, offset) {\n var k = spectralStart;\n var e = spectralEnd;\n var r = 0;\n var s;\n var rs;\n while (k <= e) {\n var z = dctZigZag[k];\n switch (successiveACState) {\n case 0:\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError('invalid ACn encoding');\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3:\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n } else {\n component.blockData[offset + z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = mcu / mcusPerLine | 0;\n var mcuCol = mcu % mcusPerLine;\n var blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n function decodeBlock(component, decode, mcu) {\n var blockRow = mcu / component.blocksPerLine | 0;\n var blockCol = mcu % component.blocksPerLine;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0,\n fileMarker;\n var mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n var h, v;\n while (mcu < mcuExpected) {\n var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)('decodeScan - unexpected MCU data, next marker is: ' + fileMarker.invalid);\n offset = fileMarker.offset;\n }\n var marker = fileMarker && fileMarker.marker;\n if (!marker || marker <= 0xFF00) {\n throw new JpegError('marker was not found');\n }\n if (marker >= 0xFFD0 && marker <= 0xFFD7) {\n offset += 2;\n } else {\n break;\n }\n }\n fileMarker = findNextFileMarker(data, offset);\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)('decodeScan - unexpected Scan data, next marker is: ' + fileMarker.invalid);\n offset = fileMarker.offset;\n }\n return offset - startOffset;\n }\n function quantizeAndInverse(component, blockBufferOffset, p) {\n var qt = component.quantizationTable,\n blockData = component.blockData;\n var v0, v1, v2, v3, v4, v5, v6, v7;\n var p0, p1, p2, p3, p4, p5, p6, p7;\n var t;\n if (!qt) {\n throw new JpegError('missing required Quantization Table.');\n }\n for (var row = 0; row < 64; row += 8) {\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n p0 *= qt[row];\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = dctSqrt2 * p0 + 512 >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n v0 = dctSqrt2 * p0 + 128 >> 8;\n v1 = dctSqrt2 * p4 + 128 >> 8;\n v2 = p2;\n v3 = p6;\n v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;\n v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n v0 = v0 + v1 + 1 >> 1;\n v1 = v0 - v1;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n v4 = v4 + v6 + 1 >> 1;\n v6 = v4 - v6;\n v7 = v7 + v5 + 1 >> 1;\n v5 = v7 - v5;\n v0 = v0 + v3 + 1 >> 1;\n v3 = v0 - v3;\n v1 = v1 + v2 + 1 >> 1;\n v2 = v1 - v2;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n for (var col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = dctSqrt2 * p0 + 8192 >> 14;\n t = t < -2040 ? 0 : t >= 2024 ? 255 : t + 2056 >> 4;\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n v0 = dctSqrt2 * p0 + 2048 >> 12;\n v1 = dctSqrt2 * p4 + 2048 >> 12;\n v2 = p2;\n v3 = p6;\n v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;\n v5 = p3;\n v6 = p5;\n v0 = (v0 + v1 + 1 >> 1) + 4112;\n v1 = v0 - v1;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n v4 = v4 + v6 + 1 >> 1;\n v6 = v4 - v6;\n v7 = v7 + v5 + 1 >> 1;\n v5 = v7 - v5;\n v0 = v0 + v3 + 1 >> 1;\n v3 = v0 - v3;\n v1 = v1 + v2 + 1 >> 1;\n v2 = v1 - v2;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n p0 = p0 < 16 ? 0 : p0 >= 4080 ? 255 : p0 >> 4;\n p1 = p1 < 16 ? 0 : p1 >= 4080 ? 255 : p1 >> 4;\n p2 = p2 < 16 ? 0 : p2 >= 4080 ? 255 : p2 >> 4;\n p3 = p3 < 16 ? 0 : p3 >= 4080 ? 255 : p3 >> 4;\n p4 = p4 < 16 ? 0 : p4 >= 4080 ? 255 : p4 >> 4;\n p5 = p5 < 16 ? 0 : p5 >= 4080 ? 255 : p5 >> 4;\n p6 = p6 < 16 ? 0 : p6 >= 4080 ? 255 : p6 >> 4;\n p7 = p7 < 16 ? 0 : p7 >= 4080 ? 255 : p7 >> 4;\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n }\n function buildComponentData(frame, component) {\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var computationBuffer = new Int16Array(64);\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n }\n function findNextFileMarker(data, currentPos, startPos) {\n function peekUint16(pos) {\n return data[pos] << 8 | data[pos + 1];\n }\n var maxPos = data.length - 1;\n var newPos = startPos < currentPos ? startPos : currentPos;\n if (currentPos >= maxPos) {\n return null;\n }\n var currentMarker = peekUint16(currentPos);\n if (currentMarker >= 0xFFC0 && currentMarker <= 0xFFFE) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos\n };\n }\n var newMarker = peekUint16(newPos);\n while (!(newMarker >= 0xFFC0 && newMarker <= 0xFFFE)) {\n if (++newPos >= maxPos) {\n return null;\n }\n newMarker = peekUint16(newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos\n };\n }\n JpegImage.prototype = {\n parse: function parse(data) {\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length = readUint16();\n var endOffset = offset + length - 2;\n var fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker && fileMarker.invalid) {\n (0, _util.warn)('readDataBlock - incorrect length, next marker is: ' + fileMarker.invalid);\n endOffset = fileMarker.offset;\n }\n var array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame) {\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (var i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);\n var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n var offset = 0;\n var jfif = null;\n var adobe = null;\n var frame, resetInterval;\n var quantizationTables = [];\n var huffmanTablesAC = [],\n huffmanTablesDC = [];\n var fileMarker = readUint16();\n if (fileMarker !== 0xFFD8) {\n throw new JpegError('SOI not found');\n }\n fileMarker = readUint16();\n while (fileMarker !== 0xFFD9) {\n var i, j, l;\n switch (fileMarker) {\n case 0xFFE0:\n case 0xFFE1:\n case 0xFFE2:\n case 0xFFE3:\n case 0xFFE4:\n case 0xFFE5:\n case 0xFFE6:\n case 0xFFE7:\n case 0xFFE8:\n case 0xFFE9:\n case 0xFFEA:\n case 0xFFEB:\n case 0xFFEC:\n case 0xFFED:\n case 0xFFEE:\n case 0xFFEF:\n case 0xFFFE:\n var appData = readDataBlock();\n if (fileMarker === 0xFFE0) {\n if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {\n jfif = {\n version: {\n major: appData[5],\n minor: appData[6]\n },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 0xFFEE) {\n if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F && appData[3] === 0x62 && appData[4] === 0x65) {\n adobe = {\n version: appData[5] << 8 | appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 0xFFDB:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n var z;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n var tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else {\n throw new JpegError('DQT - invalid table spec');\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 0xFFC0:\n case 0xFFC1:\n case 0xFFC2:\n if (frame) {\n throw new JpegError('Only single frame JPEGs supported');\n }\n readUint16();\n frame = {};\n frame.extended = fileMarker === 0xFFC1;\n frame.progressive = fileMarker === 0xFFC2;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = [];\n frame.componentIds = {};\n var componentsCount = data[offset++],\n componentId;\n var maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n var qId = data[offset + 2];\n l = frame.components.push({\n h: h,\n v: v,\n quantizationId: qId,\n quantizationTable: null\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n case 0xFFC4:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength;) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n case 0xFFDD:\n readUint16();\n resetInterval = readUint16();\n break;\n case 0xFFDA:\n readUint16();\n var selectorsCount = data[offset++];\n var components = [],\n component;\n for (i = 0; i < selectorsCount; i++) {\n var componentIndex = frame.componentIds[data[offset++]];\n component = frame.components[componentIndex];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n break;\n case 0xFFFF:\n if (data[offset] !== 0xFF) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] === 0xFF && data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n offset -= 3;\n break;\n }\n throw new JpegError('unknown marker ' + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n this.components.push({\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn\n });\n }\n this.numComponents = this.components.length;\n },\n _getLinearizedBlockData: function getLinearizedBlockData(width, height) {\n var scaleX = this.width / width,\n scaleY = this.height / height;\n var component, componentScaleX, componentScaleY, blocksPerScanline;\n var x, y, i, j, k;\n var index;\n var offset = 0;\n var output;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint8ClampedArray(dataLength);\n var xScaleBlockOffset = new Uint32Array(width);\n var mask3LSB = 0xfffffff8;\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = component.blocksPerLine + 1 << 3;\n for (x = 0; x < width; x++) {\n j = 0 | x * componentScaleX;\n xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;\n }\n for (y = 0; y < height; y++) {\n j = 0 | y * componentScaleY;\n index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n var transform = this.decodeTransform;\n if (transform) {\n for (i = 0; i < dataLength;) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n },\n _isColorConversionNeeded: function _isColorConversionNeeded() {\n if (this.adobe) {\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this.colorTransform === 0) {\n return false;\n }\n return true;\n }\n if (this.colorTransform === 1) {\n return true;\n }\n return false;\n },\n\n _convertYccToRgb: function convertYccToRgb(data) {\n var Y, Cb, Cr;\n for (var i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n },\n _convertYcckToRgb: function convertYcckToRgb(data) {\n var Y, Cb, Cr, k;\n var offset = 0;\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776);\n data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665);\n data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n return data;\n },\n _convertYcckToCmyk: function convertYcckToCmyk(data) {\n var Y, Cb, Cr;\n for (var i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n }\n return data;\n },\n _convertCmykToRgb: function convertCmykToRgb(data) {\n var c, m, y, k;\n var offset = 0;\n var scale = 1 / 255;\n for (var i = 0, length = data.length; i < length; i += 4) {\n c = data[i] * scale;\n m = data[i + 1] * scale;\n y = data[i + 2] * scale;\n k = data[i + 3] * scale;\n data[offset++] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k - 285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y - 17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) - k * (21.86122147463605 * k + 189.48180835922747);\n data[offset++] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k - 79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) - k * (20.737325471181034 * k + 187.80453709719578);\n data[offset++] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k - 14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k - 193.58209356861505) - k * (22.33816807309886 * k + 180.12613974708367);\n }\n return data;\n },\n getData: function getData(width, height, forceRGBoutput) {\n if (this.numComponents > 4) {\n throw new JpegError('Unsupported color mode');\n }\n var data = this._getLinearizedBlockData(width, height);\n if (this.numComponents === 1 && forceRGBoutput) {\n var dataLength = data.length;\n var rgbData = new Uint8ClampedArray(dataLength * 3);\n var offset = 0;\n for (var i = 0; i < dataLength; i++) {\n var grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded()) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded()) {\n if (forceRGBoutput) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGBoutput) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n };\n return JpegImage;\n}();\nexports.JpegImage = JpegImage;\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getMetrics = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar getMetrics = (0, _util.getLookupTableFactory)(function (t) {\n t['Courier'] = 600;\n t['Courier-Bold'] = 600;\n t['Courier-BoldOblique'] = 600;\n t['Courier-Oblique'] = 600;\n t['Helvetica'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 278;\n t['exclam'] = 278;\n t['quotedbl'] = 355;\n t['numbersign'] = 556;\n t['dollar'] = 556;\n t['percent'] = 889;\n t['ampersand'] = 667;\n t['quoteright'] = 222;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 389;\n t['plus'] = 584;\n t['comma'] = 278;\n t['hyphen'] = 333;\n t['period'] = 278;\n t['slash'] = 278;\n t['zero'] = 556;\n t['one'] = 556;\n t['two'] = 556;\n t['three'] = 556;\n t['four'] = 556;\n t['five'] = 556;\n t['six'] = 556;\n t['seven'] = 556;\n t['eight'] = 556;\n t['nine'] = 556;\n t['colon'] = 278;\n t['semicolon'] = 278;\n t['less'] = 584;\n t['equal'] = 584;\n t['greater'] = 584;\n t['question'] = 556;\n t['at'] = 1015;\n t['A'] = 667;\n t['B'] = 667;\n t['C'] = 722;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 611;\n t['G'] = 778;\n t['H'] = 722;\n t['I'] = 278;\n t['J'] = 500;\n t['K'] = 667;\n t['L'] = 556;\n t['M'] = 833;\n t['N'] = 722;\n t['O'] = 778;\n t['P'] = 667;\n t['Q'] = 778;\n t['R'] = 722;\n t['S'] = 667;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 667;\n t['W'] = 944;\n t['X'] = 667;\n t['Y'] = 667;\n t['Z'] = 611;\n t['bracketleft'] = 278;\n t['backslash'] = 278;\n t['bracketright'] = 278;\n t['asciicircum'] = 469;\n t['underscore'] = 556;\n t['quoteleft'] = 222;\n t['a'] = 556;\n t['b'] = 556;\n t['c'] = 500;\n t['d'] = 556;\n t['e'] = 556;\n t['f'] = 278;\n t['g'] = 556;\n t['h'] = 556;\n t['i'] = 222;\n t['j'] = 222;\n t['k'] = 500;\n t['l'] = 222;\n t['m'] = 833;\n t['n'] = 556;\n t['o'] = 556;\n t['p'] = 556;\n t['q'] = 556;\n t['r'] = 333;\n t['s'] = 500;\n t['t'] = 278;\n t['u'] = 556;\n t['v'] = 500;\n t['w'] = 722;\n t['x'] = 500;\n t['y'] = 500;\n t['z'] = 500;\n t['braceleft'] = 334;\n t['bar'] = 260;\n t['braceright'] = 334;\n t['asciitilde'] = 584;\n t['exclamdown'] = 333;\n t['cent'] = 556;\n t['sterling'] = 556;\n t['fraction'] = 167;\n t['yen'] = 556;\n t['florin'] = 556;\n t['section'] = 556;\n t['currency'] = 556;\n t['quotesingle'] = 191;\n t['quotedblleft'] = 333;\n t['guillemotleft'] = 556;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 500;\n t['fl'] = 500;\n t['endash'] = 556;\n t['dagger'] = 556;\n t['daggerdbl'] = 556;\n t['periodcentered'] = 278;\n t['paragraph'] = 537;\n t['bullet'] = 350;\n t['quotesinglbase'] = 222;\n t['quotedblbase'] = 333;\n t['quotedblright'] = 333;\n t['guillemotright'] = 556;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 611;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 1000;\n t['ordfeminine'] = 370;\n t['Lslash'] = 556;\n t['Oslash'] = 778;\n t['OE'] = 1000;\n t['ordmasculine'] = 365;\n t['ae'] = 889;\n t['dotlessi'] = 278;\n t['lslash'] = 222;\n t['oslash'] = 611;\n t['oe'] = 944;\n t['germandbls'] = 611;\n t['Idieresis'] = 278;\n t['eacute'] = 556;\n t['abreve'] = 556;\n t['uhungarumlaut'] = 556;\n t['ecaron'] = 556;\n t['Ydieresis'] = 667;\n t['divide'] = 584;\n t['Yacute'] = 667;\n t['Acircumflex'] = 667;\n t['aacute'] = 556;\n t['Ucircumflex'] = 722;\n t['yacute'] = 500;\n t['scommaaccent'] = 500;\n t['ecircumflex'] = 556;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 556;\n t['Uacute'] = 722;\n t['uogonek'] = 556;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 737;\n t['Emacron'] = 667;\n t['ccaron'] = 500;\n t['aring'] = 556;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 222;\n t['agrave'] = 556;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 722;\n t['atilde'] = 556;\n t['Edotaccent'] = 667;\n t['scaron'] = 500;\n t['scedilla'] = 500;\n t['iacute'] = 278;\n t['lozenge'] = 471;\n t['Rcaron'] = 722;\n t['Gcommaaccent'] = 778;\n t['ucircumflex'] = 556;\n t['acircumflex'] = 556;\n t['Amacron'] = 667;\n t['rcaron'] = 333;\n t['ccedilla'] = 500;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 667;\n t['Omacron'] = 778;\n t['Racute'] = 722;\n t['Sacute'] = 667;\n t['dcaron'] = 643;\n t['Umacron'] = 722;\n t['uring'] = 556;\n t['threesuperior'] = 333;\n t['Ograve'] = 778;\n t['Agrave'] = 667;\n t['Abreve'] = 667;\n t['multiply'] = 584;\n t['uacute'] = 556;\n t['Tcaron'] = 611;\n t['partialdiff'] = 476;\n t['ydieresis'] = 500;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 556;\n t['edieresis'] = 556;\n t['cacute'] = 500;\n t['nacute'] = 556;\n t['umacron'] = 556;\n t['Ncaron'] = 722;\n t['Iacute'] = 278;\n t['plusminus'] = 584;\n t['brokenbar'] = 260;\n t['registered'] = 737;\n t['Gbreve'] = 778;\n t['Idotaccent'] = 278;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 333;\n t['omacron'] = 556;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 722;\n t['lcommaaccent'] = 222;\n t['tcaron'] = 317;\n t['eogonek'] = 556;\n t['Uogonek'] = 722;\n t['Aacute'] = 667;\n t['Adieresis'] = 667;\n t['egrave'] = 556;\n t['zacute'] = 500;\n t['iogonek'] = 222;\n t['Oacute'] = 778;\n t['oacute'] = 556;\n t['amacron'] = 556;\n t['sacute'] = 500;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 778;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 556;\n t['twosuperior'] = 333;\n t['Odieresis'] = 778;\n t['mu'] = 556;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 556;\n t['Eogonek'] = 667;\n t['dcroat'] = 556;\n t['threequarters'] = 834;\n t['Scedilla'] = 667;\n t['lcaron'] = 299;\n t['Kcommaaccent'] = 667;\n t['Lacute'] = 556;\n t['trademark'] = 1000;\n t['edotaccent'] = 556;\n t['Igrave'] = 278;\n t['Imacron'] = 278;\n t['Lcaron'] = 556;\n t['onehalf'] = 834;\n t['lessequal'] = 549;\n t['ocircumflex'] = 556;\n t['ntilde'] = 556;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 556;\n t['gbreve'] = 556;\n t['onequarter'] = 834;\n t['Scaron'] = 667;\n t['Scommaaccent'] = 667;\n t['Ohungarumlaut'] = 778;\n t['degree'] = 400;\n t['ograve'] = 556;\n t['Ccaron'] = 722;\n t['ugrave'] = 556;\n t['radical'] = 453;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 333;\n t['Ntilde'] = 722;\n t['otilde'] = 556;\n t['Rcommaaccent'] = 722;\n t['Lcommaaccent'] = 556;\n t['Atilde'] = 667;\n t['Aogonek'] = 667;\n t['Aring'] = 667;\n t['Otilde'] = 778;\n t['zdotaccent'] = 500;\n t['Ecaron'] = 667;\n t['Iogonek'] = 278;\n t['kcommaaccent'] = 500;\n t['minus'] = 584;\n t['Icircumflex'] = 278;\n t['ncaron'] = 556;\n t['tcommaaccent'] = 278;\n t['logicalnot'] = 584;\n t['odieresis'] = 556;\n t['udieresis'] = 556;\n t['notequal'] = 549;\n t['gcommaaccent'] = 556;\n t['eth'] = 556;\n t['zcaron'] = 500;\n t['ncommaaccent'] = 556;\n t['onesuperior'] = 333;\n t['imacron'] = 278;\n t['Euro'] = 556;\n });\n t['Helvetica-Bold'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 278;\n t['exclam'] = 333;\n t['quotedbl'] = 474;\n t['numbersign'] = 556;\n t['dollar'] = 556;\n t['percent'] = 889;\n t['ampersand'] = 722;\n t['quoteright'] = 278;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 389;\n t['plus'] = 584;\n t['comma'] = 278;\n t['hyphen'] = 333;\n t['period'] = 278;\n t['slash'] = 278;\n t['zero'] = 556;\n t['one'] = 556;\n t['two'] = 556;\n t['three'] = 556;\n t['four'] = 556;\n t['five'] = 556;\n t['six'] = 556;\n t['seven'] = 556;\n t['eight'] = 556;\n t['nine'] = 556;\n t['colon'] = 333;\n t['semicolon'] = 333;\n t['less'] = 584;\n t['equal'] = 584;\n t['greater'] = 584;\n t['question'] = 611;\n t['at'] = 975;\n t['A'] = 722;\n t['B'] = 722;\n t['C'] = 722;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 611;\n t['G'] = 778;\n t['H'] = 722;\n t['I'] = 278;\n t['J'] = 556;\n t['K'] = 722;\n t['L'] = 611;\n t['M'] = 833;\n t['N'] = 722;\n t['O'] = 778;\n t['P'] = 667;\n t['Q'] = 778;\n t['R'] = 722;\n t['S'] = 667;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 667;\n t['W'] = 944;\n t['X'] = 667;\n t['Y'] = 667;\n t['Z'] = 611;\n t['bracketleft'] = 333;\n t['backslash'] = 278;\n t['bracketright'] = 333;\n t['asciicircum'] = 584;\n t['underscore'] = 556;\n t['quoteleft'] = 278;\n t['a'] = 556;\n t['b'] = 611;\n t['c'] = 556;\n t['d'] = 611;\n t['e'] = 556;\n t['f'] = 333;\n t['g'] = 611;\n t['h'] = 611;\n t['i'] = 278;\n t['j'] = 278;\n t['k'] = 556;\n t['l'] = 278;\n t['m'] = 889;\n t['n'] = 611;\n t['o'] = 611;\n t['p'] = 611;\n t['q'] = 611;\n t['r'] = 389;\n t['s'] = 556;\n t['t'] = 333;\n t['u'] = 611;\n t['v'] = 556;\n t['w'] = 778;\n t['x'] = 556;\n t['y'] = 556;\n t['z'] = 500;\n t['braceleft'] = 389;\n t['bar'] = 280;\n t['braceright'] = 389;\n t['asciitilde'] = 584;\n t['exclamdown'] = 333;\n t['cent'] = 556;\n t['sterling'] = 556;\n t['fraction'] = 167;\n t['yen'] = 556;\n t['florin'] = 556;\n t['section'] = 556;\n t['currency'] = 556;\n t['quotesingle'] = 238;\n t['quotedblleft'] = 500;\n t['guillemotleft'] = 556;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 611;\n t['fl'] = 611;\n t['endash'] = 556;\n t['dagger'] = 556;\n t['daggerdbl'] = 556;\n t['periodcentered'] = 278;\n t['paragraph'] = 556;\n t['bullet'] = 350;\n t['quotesinglbase'] = 278;\n t['quotedblbase'] = 500;\n t['quotedblright'] = 500;\n t['guillemotright'] = 556;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 611;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 1000;\n t['ordfeminine'] = 370;\n t['Lslash'] = 611;\n t['Oslash'] = 778;\n t['OE'] = 1000;\n t['ordmasculine'] = 365;\n t['ae'] = 889;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 611;\n t['oe'] = 944;\n t['germandbls'] = 611;\n t['Idieresis'] = 278;\n t['eacute'] = 556;\n t['abreve'] = 556;\n t['uhungarumlaut'] = 611;\n t['ecaron'] = 556;\n t['Ydieresis'] = 667;\n t['divide'] = 584;\n t['Yacute'] = 667;\n t['Acircumflex'] = 722;\n t['aacute'] = 556;\n t['Ucircumflex'] = 722;\n t['yacute'] = 556;\n t['scommaaccent'] = 556;\n t['ecircumflex'] = 556;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 556;\n t['Uacute'] = 722;\n t['uogonek'] = 611;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 737;\n t['Emacron'] = 667;\n t['ccaron'] = 556;\n t['aring'] = 556;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 278;\n t['agrave'] = 556;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 722;\n t['atilde'] = 556;\n t['Edotaccent'] = 667;\n t['scaron'] = 556;\n t['scedilla'] = 556;\n t['iacute'] = 278;\n t['lozenge'] = 494;\n t['Rcaron'] = 722;\n t['Gcommaaccent'] = 778;\n t['ucircumflex'] = 611;\n t['acircumflex'] = 556;\n t['Amacron'] = 722;\n t['rcaron'] = 389;\n t['ccedilla'] = 556;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 667;\n t['Omacron'] = 778;\n t['Racute'] = 722;\n t['Sacute'] = 667;\n t['dcaron'] = 743;\n t['Umacron'] = 722;\n t['uring'] = 611;\n t['threesuperior'] = 333;\n t['Ograve'] = 778;\n t['Agrave'] = 722;\n t['Abreve'] = 722;\n t['multiply'] = 584;\n t['uacute'] = 611;\n t['Tcaron'] = 611;\n t['partialdiff'] = 494;\n t['ydieresis'] = 556;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 556;\n t['edieresis'] = 556;\n t['cacute'] = 556;\n t['nacute'] = 611;\n t['umacron'] = 611;\n t['Ncaron'] = 722;\n t['Iacute'] = 278;\n t['plusminus'] = 584;\n t['brokenbar'] = 280;\n t['registered'] = 737;\n t['Gbreve'] = 778;\n t['Idotaccent'] = 278;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 389;\n t['omacron'] = 611;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 722;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 389;\n t['eogonek'] = 556;\n t['Uogonek'] = 722;\n t['Aacute'] = 722;\n t['Adieresis'] = 722;\n t['egrave'] = 556;\n t['zacute'] = 500;\n t['iogonek'] = 278;\n t['Oacute'] = 778;\n t['oacute'] = 611;\n t['amacron'] = 556;\n t['sacute'] = 556;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 778;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 611;\n t['twosuperior'] = 333;\n t['Odieresis'] = 778;\n t['mu'] = 611;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 611;\n t['Eogonek'] = 667;\n t['dcroat'] = 611;\n t['threequarters'] = 834;\n t['Scedilla'] = 667;\n t['lcaron'] = 400;\n t['Kcommaaccent'] = 722;\n t['Lacute'] = 611;\n t['trademark'] = 1000;\n t['edotaccent'] = 556;\n t['Igrave'] = 278;\n t['Imacron'] = 278;\n t['Lcaron'] = 611;\n t['onehalf'] = 834;\n t['lessequal'] = 549;\n t['ocircumflex'] = 611;\n t['ntilde'] = 611;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 556;\n t['gbreve'] = 611;\n t['onequarter'] = 834;\n t['Scaron'] = 667;\n t['Scommaaccent'] = 667;\n t['Ohungarumlaut'] = 778;\n t['degree'] = 400;\n t['ograve'] = 611;\n t['Ccaron'] = 722;\n t['ugrave'] = 611;\n t['radical'] = 549;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 389;\n t['Ntilde'] = 722;\n t['otilde'] = 611;\n t['Rcommaaccent'] = 722;\n t['Lcommaaccent'] = 611;\n t['Atilde'] = 722;\n t['Aogonek'] = 722;\n t['Aring'] = 722;\n t['Otilde'] = 778;\n t['zdotaccent'] = 500;\n t['Ecaron'] = 667;\n t['Iogonek'] = 278;\n t['kcommaaccent'] = 556;\n t['minus'] = 584;\n t['Icircumflex'] = 278;\n t['ncaron'] = 611;\n t['tcommaaccent'] = 333;\n t['logicalnot'] = 584;\n t['odieresis'] = 611;\n t['udieresis'] = 611;\n t['notequal'] = 549;\n t['gcommaaccent'] = 611;\n t['eth'] = 611;\n t['zcaron'] = 500;\n t['ncommaaccent'] = 611;\n t['onesuperior'] = 333;\n t['imacron'] = 278;\n t['Euro'] = 556;\n });\n t['Helvetica-BoldOblique'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 278;\n t['exclam'] = 333;\n t['quotedbl'] = 474;\n t['numbersign'] = 556;\n t['dollar'] = 556;\n t['percent'] = 889;\n t['ampersand'] = 722;\n t['quoteright'] = 278;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 389;\n t['plus'] = 584;\n t['comma'] = 278;\n t['hyphen'] = 333;\n t['period'] = 278;\n t['slash'] = 278;\n t['zero'] = 556;\n t['one'] = 556;\n t['two'] = 556;\n t['three'] = 556;\n t['four'] = 556;\n t['five'] = 556;\n t['six'] = 556;\n t['seven'] = 556;\n t['eight'] = 556;\n t['nine'] = 556;\n t['colon'] = 333;\n t['semicolon'] = 333;\n t['less'] = 584;\n t['equal'] = 584;\n t['greater'] = 584;\n t['question'] = 611;\n t['at'] = 975;\n t['A'] = 722;\n t['B'] = 722;\n t['C'] = 722;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 611;\n t['G'] = 778;\n t['H'] = 722;\n t['I'] = 278;\n t['J'] = 556;\n t['K'] = 722;\n t['L'] = 611;\n t['M'] = 833;\n t['N'] = 722;\n t['O'] = 778;\n t['P'] = 667;\n t['Q'] = 778;\n t['R'] = 722;\n t['S'] = 667;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 667;\n t['W'] = 944;\n t['X'] = 667;\n t['Y'] = 667;\n t['Z'] = 611;\n t['bracketleft'] = 333;\n t['backslash'] = 278;\n t['bracketright'] = 333;\n t['asciicircum'] = 584;\n t['underscore'] = 556;\n t['quoteleft'] = 278;\n t['a'] = 556;\n t['b'] = 611;\n t['c'] = 556;\n t['d'] = 611;\n t['e'] = 556;\n t['f'] = 333;\n t['g'] = 611;\n t['h'] = 611;\n t['i'] = 278;\n t['j'] = 278;\n t['k'] = 556;\n t['l'] = 278;\n t['m'] = 889;\n t['n'] = 611;\n t['o'] = 611;\n t['p'] = 611;\n t['q'] = 611;\n t['r'] = 389;\n t['s'] = 556;\n t['t'] = 333;\n t['u'] = 611;\n t['v'] = 556;\n t['w'] = 778;\n t['x'] = 556;\n t['y'] = 556;\n t['z'] = 500;\n t['braceleft'] = 389;\n t['bar'] = 280;\n t['braceright'] = 389;\n t['asciitilde'] = 584;\n t['exclamdown'] = 333;\n t['cent'] = 556;\n t['sterling'] = 556;\n t['fraction'] = 167;\n t['yen'] = 556;\n t['florin'] = 556;\n t['section'] = 556;\n t['currency'] = 556;\n t['quotesingle'] = 238;\n t['quotedblleft'] = 500;\n t['guillemotleft'] = 556;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 611;\n t['fl'] = 611;\n t['endash'] = 556;\n t['dagger'] = 556;\n t['daggerdbl'] = 556;\n t['periodcentered'] = 278;\n t['paragraph'] = 556;\n t['bullet'] = 350;\n t['quotesinglbase'] = 278;\n t['quotedblbase'] = 500;\n t['quotedblright'] = 500;\n t['guillemotright'] = 556;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 611;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 1000;\n t['ordfeminine'] = 370;\n t['Lslash'] = 611;\n t['Oslash'] = 778;\n t['OE'] = 1000;\n t['ordmasculine'] = 365;\n t['ae'] = 889;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 611;\n t['oe'] = 944;\n t['germandbls'] = 611;\n t['Idieresis'] = 278;\n t['eacute'] = 556;\n t['abreve'] = 556;\n t['uhungarumlaut'] = 611;\n t['ecaron'] = 556;\n t['Ydieresis'] = 667;\n t['divide'] = 584;\n t['Yacute'] = 667;\n t['Acircumflex'] = 722;\n t['aacute'] = 556;\n t['Ucircumflex'] = 722;\n t['yacute'] = 556;\n t['scommaaccent'] = 556;\n t['ecircumflex'] = 556;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 556;\n t['Uacute'] = 722;\n t['uogonek'] = 611;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 737;\n t['Emacron'] = 667;\n t['ccaron'] = 556;\n t['aring'] = 556;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 278;\n t['agrave'] = 556;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 722;\n t['atilde'] = 556;\n t['Edotaccent'] = 667;\n t['scaron'] = 556;\n t['scedilla'] = 556;\n t['iacute'] = 278;\n t['lozenge'] = 494;\n t['Rcaron'] = 722;\n t['Gcommaaccent'] = 778;\n t['ucircumflex'] = 611;\n t['acircumflex'] = 556;\n t['Amacron'] = 722;\n t['rcaron'] = 389;\n t['ccedilla'] = 556;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 667;\n t['Omacron'] = 778;\n t['Racute'] = 722;\n t['Sacute'] = 667;\n t['dcaron'] = 743;\n t['Umacron'] = 722;\n t['uring'] = 611;\n t['threesuperior'] = 333;\n t['Ograve'] = 778;\n t['Agrave'] = 722;\n t['Abreve'] = 722;\n t['multiply'] = 584;\n t['uacute'] = 611;\n t['Tcaron'] = 611;\n t['partialdiff'] = 494;\n t['ydieresis'] = 556;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 556;\n t['edieresis'] = 556;\n t['cacute'] = 556;\n t['nacute'] = 611;\n t['umacron'] = 611;\n t['Ncaron'] = 722;\n t['Iacute'] = 278;\n t['plusminus'] = 584;\n t['brokenbar'] = 280;\n t['registered'] = 737;\n t['Gbreve'] = 778;\n t['Idotaccent'] = 278;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 389;\n t['omacron'] = 611;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 722;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 389;\n t['eogonek'] = 556;\n t['Uogonek'] = 722;\n t['Aacute'] = 722;\n t['Adieresis'] = 722;\n t['egrave'] = 556;\n t['zacute'] = 500;\n t['iogonek'] = 278;\n t['Oacute'] = 778;\n t['oacute'] = 611;\n t['amacron'] = 556;\n t['sacute'] = 556;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 778;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 611;\n t['twosuperior'] = 333;\n t['Odieresis'] = 778;\n t['mu'] = 611;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 611;\n t['Eogonek'] = 667;\n t['dcroat'] = 611;\n t['threequarters'] = 834;\n t['Scedilla'] = 667;\n t['lcaron'] = 400;\n t['Kcommaaccent'] = 722;\n t['Lacute'] = 611;\n t['trademark'] = 1000;\n t['edotaccent'] = 556;\n t['Igrave'] = 278;\n t['Imacron'] = 278;\n t['Lcaron'] = 611;\n t['onehalf'] = 834;\n t['lessequal'] = 549;\n t['ocircumflex'] = 611;\n t['ntilde'] = 611;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 556;\n t['gbreve'] = 611;\n t['onequarter'] = 834;\n t['Scaron'] = 667;\n t['Scommaaccent'] = 667;\n t['Ohungarumlaut'] = 778;\n t['degree'] = 400;\n t['ograve'] = 611;\n t['Ccaron'] = 722;\n t['ugrave'] = 611;\n t['radical'] = 549;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 389;\n t['Ntilde'] = 722;\n t['otilde'] = 611;\n t['Rcommaaccent'] = 722;\n t['Lcommaaccent'] = 611;\n t['Atilde'] = 722;\n t['Aogonek'] = 722;\n t['Aring'] = 722;\n t['Otilde'] = 778;\n t['zdotaccent'] = 500;\n t['Ecaron'] = 667;\n t['Iogonek'] = 278;\n t['kcommaaccent'] = 556;\n t['minus'] = 584;\n t['Icircumflex'] = 278;\n t['ncaron'] = 611;\n t['tcommaaccent'] = 333;\n t['logicalnot'] = 584;\n t['odieresis'] = 611;\n t['udieresis'] = 611;\n t['notequal'] = 549;\n t['gcommaaccent'] = 611;\n t['eth'] = 611;\n t['zcaron'] = 500;\n t['ncommaaccent'] = 611;\n t['onesuperior'] = 333;\n t['imacron'] = 278;\n t['Euro'] = 556;\n });\n t['Helvetica-Oblique'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 278;\n t['exclam'] = 278;\n t['quotedbl'] = 355;\n t['numbersign'] = 556;\n t['dollar'] = 556;\n t['percent'] = 889;\n t['ampersand'] = 667;\n t['quoteright'] = 222;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 389;\n t['plus'] = 584;\n t['comma'] = 278;\n t['hyphen'] = 333;\n t['period'] = 278;\n t['slash'] = 278;\n t['zero'] = 556;\n t['one'] = 556;\n t['two'] = 556;\n t['three'] = 556;\n t['four'] = 556;\n t['five'] = 556;\n t['six'] = 556;\n t['seven'] = 556;\n t['eight'] = 556;\n t['nine'] = 556;\n t['colon'] = 278;\n t['semicolon'] = 278;\n t['less'] = 584;\n t['equal'] = 584;\n t['greater'] = 584;\n t['question'] = 556;\n t['at'] = 1015;\n t['A'] = 667;\n t['B'] = 667;\n t['C'] = 722;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 611;\n t['G'] = 778;\n t['H'] = 722;\n t['I'] = 278;\n t['J'] = 500;\n t['K'] = 667;\n t['L'] = 556;\n t['M'] = 833;\n t['N'] = 722;\n t['O'] = 778;\n t['P'] = 667;\n t['Q'] = 778;\n t['R'] = 722;\n t['S'] = 667;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 667;\n t['W'] = 944;\n t['X'] = 667;\n t['Y'] = 667;\n t['Z'] = 611;\n t['bracketleft'] = 278;\n t['backslash'] = 278;\n t['bracketright'] = 278;\n t['asciicircum'] = 469;\n t['underscore'] = 556;\n t['quoteleft'] = 222;\n t['a'] = 556;\n t['b'] = 556;\n t['c'] = 500;\n t['d'] = 556;\n t['e'] = 556;\n t['f'] = 278;\n t['g'] = 556;\n t['h'] = 556;\n t['i'] = 222;\n t['j'] = 222;\n t['k'] = 500;\n t['l'] = 222;\n t['m'] = 833;\n t['n'] = 556;\n t['o'] = 556;\n t['p'] = 556;\n t['q'] = 556;\n t['r'] = 333;\n t['s'] = 500;\n t['t'] = 278;\n t['u'] = 556;\n t['v'] = 500;\n t['w'] = 722;\n t['x'] = 500;\n t['y'] = 500;\n t['z'] = 500;\n t['braceleft'] = 334;\n t['bar'] = 260;\n t['braceright'] = 334;\n t['asciitilde'] = 584;\n t['exclamdown'] = 333;\n t['cent'] = 556;\n t['sterling'] = 556;\n t['fraction'] = 167;\n t['yen'] = 556;\n t['florin'] = 556;\n t['section'] = 556;\n t['currency'] = 556;\n t['quotesingle'] = 191;\n t['quotedblleft'] = 333;\n t['guillemotleft'] = 556;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 500;\n t['fl'] = 500;\n t['endash'] = 556;\n t['dagger'] = 556;\n t['daggerdbl'] = 556;\n t['periodcentered'] = 278;\n t['paragraph'] = 537;\n t['bullet'] = 350;\n t['quotesinglbase'] = 222;\n t['quotedblbase'] = 333;\n t['quotedblright'] = 333;\n t['guillemotright'] = 556;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 611;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 1000;\n t['ordfeminine'] = 370;\n t['Lslash'] = 556;\n t['Oslash'] = 778;\n t['OE'] = 1000;\n t['ordmasculine'] = 365;\n t['ae'] = 889;\n t['dotlessi'] = 278;\n t['lslash'] = 222;\n t['oslash'] = 611;\n t['oe'] = 944;\n t['germandbls'] = 611;\n t['Idieresis'] = 278;\n t['eacute'] = 556;\n t['abreve'] = 556;\n t['uhungarumlaut'] = 556;\n t['ecaron'] = 556;\n t['Ydieresis'] = 667;\n t['divide'] = 584;\n t['Yacute'] = 667;\n t['Acircumflex'] = 667;\n t['aacute'] = 556;\n t['Ucircumflex'] = 722;\n t['yacute'] = 500;\n t['scommaaccent'] = 500;\n t['ecircumflex'] = 556;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 556;\n t['Uacute'] = 722;\n t['uogonek'] = 556;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 737;\n t['Emacron'] = 667;\n t['ccaron'] = 500;\n t['aring'] = 556;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 222;\n t['agrave'] = 556;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 722;\n t['atilde'] = 556;\n t['Edotaccent'] = 667;\n t['scaron'] = 500;\n t['scedilla'] = 500;\n t['iacute'] = 278;\n t['lozenge'] = 471;\n t['Rcaron'] = 722;\n t['Gcommaaccent'] = 778;\n t['ucircumflex'] = 556;\n t['acircumflex'] = 556;\n t['Amacron'] = 667;\n t['rcaron'] = 333;\n t['ccedilla'] = 500;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 667;\n t['Omacron'] = 778;\n t['Racute'] = 722;\n t['Sacute'] = 667;\n t['dcaron'] = 643;\n t['Umacron'] = 722;\n t['uring'] = 556;\n t['threesuperior'] = 333;\n t['Ograve'] = 778;\n t['Agrave'] = 667;\n t['Abreve'] = 667;\n t['multiply'] = 584;\n t['uacute'] = 556;\n t['Tcaron'] = 611;\n t['partialdiff'] = 476;\n t['ydieresis'] = 500;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 556;\n t['edieresis'] = 556;\n t['cacute'] = 500;\n t['nacute'] = 556;\n t['umacron'] = 556;\n t['Ncaron'] = 722;\n t['Iacute'] = 278;\n t['plusminus'] = 584;\n t['brokenbar'] = 260;\n t['registered'] = 737;\n t['Gbreve'] = 778;\n t['Idotaccent'] = 278;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 333;\n t['omacron'] = 556;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 722;\n t['lcommaaccent'] = 222;\n t['tcaron'] = 317;\n t['eogonek'] = 556;\n t['Uogonek'] = 722;\n t['Aacute'] = 667;\n t['Adieresis'] = 667;\n t['egrave'] = 556;\n t['zacute'] = 500;\n t['iogonek'] = 222;\n t['Oacute'] = 778;\n t['oacute'] = 556;\n t['amacron'] = 556;\n t['sacute'] = 500;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 778;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 556;\n t['twosuperior'] = 333;\n t['Odieresis'] = 778;\n t['mu'] = 556;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 556;\n t['Eogonek'] = 667;\n t['dcroat'] = 556;\n t['threequarters'] = 834;\n t['Scedilla'] = 667;\n t['lcaron'] = 299;\n t['Kcommaaccent'] = 667;\n t['Lacute'] = 556;\n t['trademark'] = 1000;\n t['edotaccent'] = 556;\n t['Igrave'] = 278;\n t['Imacron'] = 278;\n t['Lcaron'] = 556;\n t['onehalf'] = 834;\n t['lessequal'] = 549;\n t['ocircumflex'] = 556;\n t['ntilde'] = 556;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 556;\n t['gbreve'] = 556;\n t['onequarter'] = 834;\n t['Scaron'] = 667;\n t['Scommaaccent'] = 667;\n t['Ohungarumlaut'] = 778;\n t['degree'] = 400;\n t['ograve'] = 556;\n t['Ccaron'] = 722;\n t['ugrave'] = 556;\n t['radical'] = 453;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 333;\n t['Ntilde'] = 722;\n t['otilde'] = 556;\n t['Rcommaaccent'] = 722;\n t['Lcommaaccent'] = 556;\n t['Atilde'] = 667;\n t['Aogonek'] = 667;\n t['Aring'] = 667;\n t['Otilde'] = 778;\n t['zdotaccent'] = 500;\n t['Ecaron'] = 667;\n t['Iogonek'] = 278;\n t['kcommaaccent'] = 500;\n t['minus'] = 584;\n t['Icircumflex'] = 278;\n t['ncaron'] = 556;\n t['tcommaaccent'] = 278;\n t['logicalnot'] = 584;\n t['odieresis'] = 556;\n t['udieresis'] = 556;\n t['notequal'] = 549;\n t['gcommaaccent'] = 556;\n t['eth'] = 556;\n t['zcaron'] = 500;\n t['ncommaaccent'] = 556;\n t['onesuperior'] = 333;\n t['imacron'] = 278;\n t['Euro'] = 556;\n });\n t['Symbol'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 250;\n t['exclam'] = 333;\n t['universal'] = 713;\n t['numbersign'] = 500;\n t['existential'] = 549;\n t['percent'] = 833;\n t['ampersand'] = 778;\n t['suchthat'] = 439;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asteriskmath'] = 500;\n t['plus'] = 549;\n t['comma'] = 250;\n t['minus'] = 549;\n t['period'] = 250;\n t['slash'] = 278;\n t['zero'] = 500;\n t['one'] = 500;\n t['two'] = 500;\n t['three'] = 500;\n t['four'] = 500;\n t['five'] = 500;\n t['six'] = 500;\n t['seven'] = 500;\n t['eight'] = 500;\n t['nine'] = 500;\n t['colon'] = 278;\n t['semicolon'] = 278;\n t['less'] = 549;\n t['equal'] = 549;\n t['greater'] = 549;\n t['question'] = 444;\n t['congruent'] = 549;\n t['Alpha'] = 722;\n t['Beta'] = 667;\n t['Chi'] = 722;\n t['Delta'] = 612;\n t['Epsilon'] = 611;\n t['Phi'] = 763;\n t['Gamma'] = 603;\n t['Eta'] = 722;\n t['Iota'] = 333;\n t['theta1'] = 631;\n t['Kappa'] = 722;\n t['Lambda'] = 686;\n t['Mu'] = 889;\n t['Nu'] = 722;\n t['Omicron'] = 722;\n t['Pi'] = 768;\n t['Theta'] = 741;\n t['Rho'] = 556;\n t['Sigma'] = 592;\n t['Tau'] = 611;\n t['Upsilon'] = 690;\n t['sigma1'] = 439;\n t['Omega'] = 768;\n t['Xi'] = 645;\n t['Psi'] = 795;\n t['Zeta'] = 611;\n t['bracketleft'] = 333;\n t['therefore'] = 863;\n t['bracketright'] = 333;\n t['perpendicular'] = 658;\n t['underscore'] = 500;\n t['radicalex'] = 500;\n t['alpha'] = 631;\n t['beta'] = 549;\n t['chi'] = 549;\n t['delta'] = 494;\n t['epsilon'] = 439;\n t['phi'] = 521;\n t['gamma'] = 411;\n t['eta'] = 603;\n t['iota'] = 329;\n t['phi1'] = 603;\n t['kappa'] = 549;\n t['lambda'] = 549;\n t['mu'] = 576;\n t['nu'] = 521;\n t['omicron'] = 549;\n t['pi'] = 549;\n t['theta'] = 521;\n t['rho'] = 549;\n t['sigma'] = 603;\n t['tau'] = 439;\n t['upsilon'] = 576;\n t['omega1'] = 713;\n t['omega'] = 686;\n t['xi'] = 493;\n t['psi'] = 686;\n t['zeta'] = 494;\n t['braceleft'] = 480;\n t['bar'] = 200;\n t['braceright'] = 480;\n t['similar'] = 549;\n t['Euro'] = 750;\n t['Upsilon1'] = 620;\n t['minute'] = 247;\n t['lessequal'] = 549;\n t['fraction'] = 167;\n t['infinity'] = 713;\n t['florin'] = 500;\n t['club'] = 753;\n t['diamond'] = 753;\n t['heart'] = 753;\n t['spade'] = 753;\n t['arrowboth'] = 1042;\n t['arrowleft'] = 987;\n t['arrowup'] = 603;\n t['arrowright'] = 987;\n t['arrowdown'] = 603;\n t['degree'] = 400;\n t['plusminus'] = 549;\n t['second'] = 411;\n t['greaterequal'] = 549;\n t['multiply'] = 549;\n t['proportional'] = 713;\n t['partialdiff'] = 494;\n t['bullet'] = 460;\n t['divide'] = 549;\n t['notequal'] = 549;\n t['equivalence'] = 549;\n t['approxequal'] = 549;\n t['ellipsis'] = 1000;\n t['arrowvertex'] = 603;\n t['arrowhorizex'] = 1000;\n t['carriagereturn'] = 658;\n t['aleph'] = 823;\n t['Ifraktur'] = 686;\n t['Rfraktur'] = 795;\n t['weierstrass'] = 987;\n t['circlemultiply'] = 768;\n t['circleplus'] = 768;\n t['emptyset'] = 823;\n t['intersection'] = 768;\n t['union'] = 768;\n t['propersuperset'] = 713;\n t['reflexsuperset'] = 713;\n t['notsubset'] = 713;\n t['propersubset'] = 713;\n t['reflexsubset'] = 713;\n t['element'] = 713;\n t['notelement'] = 713;\n t['angle'] = 768;\n t['gradient'] = 713;\n t['registerserif'] = 790;\n t['copyrightserif'] = 790;\n t['trademarkserif'] = 890;\n t['product'] = 823;\n t['radical'] = 549;\n t['dotmath'] = 250;\n t['logicalnot'] = 713;\n t['logicaland'] = 603;\n t['logicalor'] = 603;\n t['arrowdblboth'] = 1042;\n t['arrowdblleft'] = 987;\n t['arrowdblup'] = 603;\n t['arrowdblright'] = 987;\n t['arrowdbldown'] = 603;\n t['lozenge'] = 494;\n t['angleleft'] = 329;\n t['registersans'] = 790;\n t['copyrightsans'] = 790;\n t['trademarksans'] = 786;\n t['summation'] = 713;\n t['parenlefttp'] = 384;\n t['parenleftex'] = 384;\n t['parenleftbt'] = 384;\n t['bracketlefttp'] = 384;\n t['bracketleftex'] = 384;\n t['bracketleftbt'] = 384;\n t['bracelefttp'] = 494;\n t['braceleftmid'] = 494;\n t['braceleftbt'] = 494;\n t['braceex'] = 494;\n t['angleright'] = 329;\n t['integral'] = 274;\n t['integraltp'] = 686;\n t['integralex'] = 686;\n t['integralbt'] = 686;\n t['parenrighttp'] = 384;\n t['parenrightex'] = 384;\n t['parenrightbt'] = 384;\n t['bracketrighttp'] = 384;\n t['bracketrightex'] = 384;\n t['bracketrightbt'] = 384;\n t['bracerighttp'] = 494;\n t['bracerightmid'] = 494;\n t['bracerightbt'] = 494;\n t['apple'] = 790;\n });\n t['Times-Roman'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 250;\n t['exclam'] = 333;\n t['quotedbl'] = 408;\n t['numbersign'] = 500;\n t['dollar'] = 500;\n t['percent'] = 833;\n t['ampersand'] = 778;\n t['quoteright'] = 333;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 500;\n t['plus'] = 564;\n t['comma'] = 250;\n t['hyphen'] = 333;\n t['period'] = 250;\n t['slash'] = 278;\n t['zero'] = 500;\n t['one'] = 500;\n t['two'] = 500;\n t['three'] = 500;\n t['four'] = 500;\n t['five'] = 500;\n t['six'] = 500;\n t['seven'] = 500;\n t['eight'] = 500;\n t['nine'] = 500;\n t['colon'] = 278;\n t['semicolon'] = 278;\n t['less'] = 564;\n t['equal'] = 564;\n t['greater'] = 564;\n t['question'] = 444;\n t['at'] = 921;\n t['A'] = 722;\n t['B'] = 667;\n t['C'] = 667;\n t['D'] = 722;\n t['E'] = 611;\n t['F'] = 556;\n t['G'] = 722;\n t['H'] = 722;\n t['I'] = 333;\n t['J'] = 389;\n t['K'] = 722;\n t['L'] = 611;\n t['M'] = 889;\n t['N'] = 722;\n t['O'] = 722;\n t['P'] = 556;\n t['Q'] = 722;\n t['R'] = 667;\n t['S'] = 556;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 722;\n t['W'] = 944;\n t['X'] = 722;\n t['Y'] = 722;\n t['Z'] = 611;\n t['bracketleft'] = 333;\n t['backslash'] = 278;\n t['bracketright'] = 333;\n t['asciicircum'] = 469;\n t['underscore'] = 500;\n t['quoteleft'] = 333;\n t['a'] = 444;\n t['b'] = 500;\n t['c'] = 444;\n t['d'] = 500;\n t['e'] = 444;\n t['f'] = 333;\n t['g'] = 500;\n t['h'] = 500;\n t['i'] = 278;\n t['j'] = 278;\n t['k'] = 500;\n t['l'] = 278;\n t['m'] = 778;\n t['n'] = 500;\n t['o'] = 500;\n t['p'] = 500;\n t['q'] = 500;\n t['r'] = 333;\n t['s'] = 389;\n t['t'] = 278;\n t['u'] = 500;\n t['v'] = 500;\n t['w'] = 722;\n t['x'] = 500;\n t['y'] = 500;\n t['z'] = 444;\n t['braceleft'] = 480;\n t['bar'] = 200;\n t['braceright'] = 480;\n t['asciitilde'] = 541;\n t['exclamdown'] = 333;\n t['cent'] = 500;\n t['sterling'] = 500;\n t['fraction'] = 167;\n t['yen'] = 500;\n t['florin'] = 500;\n t['section'] = 500;\n t['currency'] = 500;\n t['quotesingle'] = 180;\n t['quotedblleft'] = 444;\n t['guillemotleft'] = 500;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 556;\n t['fl'] = 556;\n t['endash'] = 500;\n t['dagger'] = 500;\n t['daggerdbl'] = 500;\n t['periodcentered'] = 250;\n t['paragraph'] = 453;\n t['bullet'] = 350;\n t['quotesinglbase'] = 333;\n t['quotedblbase'] = 444;\n t['quotedblright'] = 444;\n t['guillemotright'] = 500;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 444;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 889;\n t['ordfeminine'] = 276;\n t['Lslash'] = 611;\n t['Oslash'] = 722;\n t['OE'] = 889;\n t['ordmasculine'] = 310;\n t['ae'] = 667;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 500;\n t['oe'] = 722;\n t['germandbls'] = 500;\n t['Idieresis'] = 333;\n t['eacute'] = 444;\n t['abreve'] = 444;\n t['uhungarumlaut'] = 500;\n t['ecaron'] = 444;\n t['Ydieresis'] = 722;\n t['divide'] = 564;\n t['Yacute'] = 722;\n t['Acircumflex'] = 722;\n t['aacute'] = 444;\n t['Ucircumflex'] = 722;\n t['yacute'] = 500;\n t['scommaaccent'] = 389;\n t['ecircumflex'] = 444;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 444;\n t['Uacute'] = 722;\n t['uogonek'] = 500;\n t['Edieresis'] = 611;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 760;\n t['Emacron'] = 611;\n t['ccaron'] = 444;\n t['aring'] = 444;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 278;\n t['agrave'] = 444;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 667;\n t['atilde'] = 444;\n t['Edotaccent'] = 611;\n t['scaron'] = 389;\n t['scedilla'] = 389;\n t['iacute'] = 278;\n t['lozenge'] = 471;\n t['Rcaron'] = 667;\n t['Gcommaaccent'] = 722;\n t['ucircumflex'] = 500;\n t['acircumflex'] = 444;\n t['Amacron'] = 722;\n t['rcaron'] = 333;\n t['ccedilla'] = 444;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 556;\n t['Omacron'] = 722;\n t['Racute'] = 667;\n t['Sacute'] = 556;\n t['dcaron'] = 588;\n t['Umacron'] = 722;\n t['uring'] = 500;\n t['threesuperior'] = 300;\n t['Ograve'] = 722;\n t['Agrave'] = 722;\n t['Abreve'] = 722;\n t['multiply'] = 564;\n t['uacute'] = 500;\n t['Tcaron'] = 611;\n t['partialdiff'] = 476;\n t['ydieresis'] = 500;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 611;\n t['adieresis'] = 444;\n t['edieresis'] = 444;\n t['cacute'] = 444;\n t['nacute'] = 500;\n t['umacron'] = 500;\n t['Ncaron'] = 722;\n t['Iacute'] = 333;\n t['plusminus'] = 564;\n t['brokenbar'] = 200;\n t['registered'] = 760;\n t['Gbreve'] = 722;\n t['Idotaccent'] = 333;\n t['summation'] = 600;\n t['Egrave'] = 611;\n t['racute'] = 333;\n t['omacron'] = 500;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 667;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 326;\n t['eogonek'] = 444;\n t['Uogonek'] = 722;\n t['Aacute'] = 722;\n t['Adieresis'] = 722;\n t['egrave'] = 444;\n t['zacute'] = 444;\n t['iogonek'] = 278;\n t['Oacute'] = 722;\n t['oacute'] = 500;\n t['amacron'] = 444;\n t['sacute'] = 389;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 722;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 500;\n t['twosuperior'] = 300;\n t['Odieresis'] = 722;\n t['mu'] = 500;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 500;\n t['Eogonek'] = 611;\n t['dcroat'] = 500;\n t['threequarters'] = 750;\n t['Scedilla'] = 556;\n t['lcaron'] = 344;\n t['Kcommaaccent'] = 722;\n t['Lacute'] = 611;\n t['trademark'] = 980;\n t['edotaccent'] = 444;\n t['Igrave'] = 333;\n t['Imacron'] = 333;\n t['Lcaron'] = 611;\n t['onehalf'] = 750;\n t['lessequal'] = 549;\n t['ocircumflex'] = 500;\n t['ntilde'] = 500;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 611;\n t['emacron'] = 444;\n t['gbreve'] = 500;\n t['onequarter'] = 750;\n t['Scaron'] = 556;\n t['Scommaaccent'] = 556;\n t['Ohungarumlaut'] = 722;\n t['degree'] = 400;\n t['ograve'] = 500;\n t['Ccaron'] = 667;\n t['ugrave'] = 500;\n t['radical'] = 453;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 333;\n t['Ntilde'] = 722;\n t['otilde'] = 500;\n t['Rcommaaccent'] = 667;\n t['Lcommaaccent'] = 611;\n t['Atilde'] = 722;\n t['Aogonek'] = 722;\n t['Aring'] = 722;\n t['Otilde'] = 722;\n t['zdotaccent'] = 444;\n t['Ecaron'] = 611;\n t['Iogonek'] = 333;\n t['kcommaaccent'] = 500;\n t['minus'] = 564;\n t['Icircumflex'] = 333;\n t['ncaron'] = 500;\n t['tcommaaccent'] = 278;\n t['logicalnot'] = 564;\n t['odieresis'] = 500;\n t['udieresis'] = 500;\n t['notequal'] = 549;\n t['gcommaaccent'] = 500;\n t['eth'] = 500;\n t['zcaron'] = 444;\n t['ncommaaccent'] = 500;\n t['onesuperior'] = 300;\n t['imacron'] = 278;\n t['Euro'] = 500;\n });\n t['Times-Bold'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 250;\n t['exclam'] = 333;\n t['quotedbl'] = 555;\n t['numbersign'] = 500;\n t['dollar'] = 500;\n t['percent'] = 1000;\n t['ampersand'] = 833;\n t['quoteright'] = 333;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 500;\n t['plus'] = 570;\n t['comma'] = 250;\n t['hyphen'] = 333;\n t['period'] = 250;\n t['slash'] = 278;\n t['zero'] = 500;\n t['one'] = 500;\n t['two'] = 500;\n t['three'] = 500;\n t['four'] = 500;\n t['five'] = 500;\n t['six'] = 500;\n t['seven'] = 500;\n t['eight'] = 500;\n t['nine'] = 500;\n t['colon'] = 333;\n t['semicolon'] = 333;\n t['less'] = 570;\n t['equal'] = 570;\n t['greater'] = 570;\n t['question'] = 500;\n t['at'] = 930;\n t['A'] = 722;\n t['B'] = 667;\n t['C'] = 722;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 611;\n t['G'] = 778;\n t['H'] = 778;\n t['I'] = 389;\n t['J'] = 500;\n t['K'] = 778;\n t['L'] = 667;\n t['M'] = 944;\n t['N'] = 722;\n t['O'] = 778;\n t['P'] = 611;\n t['Q'] = 778;\n t['R'] = 722;\n t['S'] = 556;\n t['T'] = 667;\n t['U'] = 722;\n t['V'] = 722;\n t['W'] = 1000;\n t['X'] = 722;\n t['Y'] = 722;\n t['Z'] = 667;\n t['bracketleft'] = 333;\n t['backslash'] = 278;\n t['bracketright'] = 333;\n t['asciicircum'] = 581;\n t['underscore'] = 500;\n t['quoteleft'] = 333;\n t['a'] = 500;\n t['b'] = 556;\n t['c'] = 444;\n t['d'] = 556;\n t['e'] = 444;\n t['f'] = 333;\n t['g'] = 500;\n t['h'] = 556;\n t['i'] = 278;\n t['j'] = 333;\n t['k'] = 556;\n t['l'] = 278;\n t['m'] = 833;\n t['n'] = 556;\n t['o'] = 500;\n t['p'] = 556;\n t['q'] = 556;\n t['r'] = 444;\n t['s'] = 389;\n t['t'] = 333;\n t['u'] = 556;\n t['v'] = 500;\n t['w'] = 722;\n t['x'] = 500;\n t['y'] = 500;\n t['z'] = 444;\n t['braceleft'] = 394;\n t['bar'] = 220;\n t['braceright'] = 394;\n t['asciitilde'] = 520;\n t['exclamdown'] = 333;\n t['cent'] = 500;\n t['sterling'] = 500;\n t['fraction'] = 167;\n t['yen'] = 500;\n t['florin'] = 500;\n t['section'] = 500;\n t['currency'] = 500;\n t['quotesingle'] = 278;\n t['quotedblleft'] = 500;\n t['guillemotleft'] = 500;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 556;\n t['fl'] = 556;\n t['endash'] = 500;\n t['dagger'] = 500;\n t['daggerdbl'] = 500;\n t['periodcentered'] = 250;\n t['paragraph'] = 540;\n t['bullet'] = 350;\n t['quotesinglbase'] = 333;\n t['quotedblbase'] = 500;\n t['quotedblright'] = 500;\n t['guillemotright'] = 500;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 500;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 1000;\n t['ordfeminine'] = 300;\n t['Lslash'] = 667;\n t['Oslash'] = 778;\n t['OE'] = 1000;\n t['ordmasculine'] = 330;\n t['ae'] = 722;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 500;\n t['oe'] = 722;\n t['germandbls'] = 556;\n t['Idieresis'] = 389;\n t['eacute'] = 444;\n t['abreve'] = 500;\n t['uhungarumlaut'] = 556;\n t['ecaron'] = 444;\n t['Ydieresis'] = 722;\n t['divide'] = 570;\n t['Yacute'] = 722;\n t['Acircumflex'] = 722;\n t['aacute'] = 500;\n t['Ucircumflex'] = 722;\n t['yacute'] = 500;\n t['scommaaccent'] = 389;\n t['ecircumflex'] = 444;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 500;\n t['Uacute'] = 722;\n t['uogonek'] = 556;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 747;\n t['Emacron'] = 667;\n t['ccaron'] = 444;\n t['aring'] = 500;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 278;\n t['agrave'] = 500;\n t['Tcommaaccent'] = 667;\n t['Cacute'] = 722;\n t['atilde'] = 500;\n t['Edotaccent'] = 667;\n t['scaron'] = 389;\n t['scedilla'] = 389;\n t['iacute'] = 278;\n t['lozenge'] = 494;\n t['Rcaron'] = 722;\n t['Gcommaaccent'] = 778;\n t['ucircumflex'] = 556;\n t['acircumflex'] = 500;\n t['Amacron'] = 722;\n t['rcaron'] = 444;\n t['ccedilla'] = 444;\n t['Zdotaccent'] = 667;\n t['Thorn'] = 611;\n t['Omacron'] = 778;\n t['Racute'] = 722;\n t['Sacute'] = 556;\n t['dcaron'] = 672;\n t['Umacron'] = 722;\n t['uring'] = 556;\n t['threesuperior'] = 300;\n t['Ograve'] = 778;\n t['Agrave'] = 722;\n t['Abreve'] = 722;\n t['multiply'] = 570;\n t['uacute'] = 556;\n t['Tcaron'] = 667;\n t['partialdiff'] = 494;\n t['ydieresis'] = 500;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 500;\n t['edieresis'] = 444;\n t['cacute'] = 444;\n t['nacute'] = 556;\n t['umacron'] = 556;\n t['Ncaron'] = 722;\n t['Iacute'] = 389;\n t['plusminus'] = 570;\n t['brokenbar'] = 220;\n t['registered'] = 747;\n t['Gbreve'] = 778;\n t['Idotaccent'] = 389;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 444;\n t['omacron'] = 500;\n t['Zacute'] = 667;\n t['Zcaron'] = 667;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 722;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 416;\n t['eogonek'] = 444;\n t['Uogonek'] = 722;\n t['Aacute'] = 722;\n t['Adieresis'] = 722;\n t['egrave'] = 444;\n t['zacute'] = 444;\n t['iogonek'] = 278;\n t['Oacute'] = 778;\n t['oacute'] = 500;\n t['amacron'] = 500;\n t['sacute'] = 389;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 778;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 556;\n t['twosuperior'] = 300;\n t['Odieresis'] = 778;\n t['mu'] = 556;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 500;\n t['Eogonek'] = 667;\n t['dcroat'] = 556;\n t['threequarters'] = 750;\n t['Scedilla'] = 556;\n t['lcaron'] = 394;\n t['Kcommaaccent'] = 778;\n t['Lacute'] = 667;\n t['trademark'] = 1000;\n t['edotaccent'] = 444;\n t['Igrave'] = 389;\n t['Imacron'] = 389;\n t['Lcaron'] = 667;\n t['onehalf'] = 750;\n t['lessequal'] = 549;\n t['ocircumflex'] = 500;\n t['ntilde'] = 556;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 444;\n t['gbreve'] = 500;\n t['onequarter'] = 750;\n t['Scaron'] = 556;\n t['Scommaaccent'] = 556;\n t['Ohungarumlaut'] = 778;\n t['degree'] = 400;\n t['ograve'] = 500;\n t['Ccaron'] = 722;\n t['ugrave'] = 556;\n t['radical'] = 549;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 444;\n t['Ntilde'] = 722;\n t['otilde'] = 500;\n t['Rcommaaccent'] = 722;\n t['Lcommaaccent'] = 667;\n t['Atilde'] = 722;\n t['Aogonek'] = 722;\n t['Aring'] = 722;\n t['Otilde'] = 778;\n t['zdotaccent'] = 444;\n t['Ecaron'] = 667;\n t['Iogonek'] = 389;\n t['kcommaaccent'] = 556;\n t['minus'] = 570;\n t['Icircumflex'] = 389;\n t['ncaron'] = 556;\n t['tcommaaccent'] = 333;\n t['logicalnot'] = 570;\n t['odieresis'] = 500;\n t['udieresis'] = 556;\n t['notequal'] = 549;\n t['gcommaaccent'] = 500;\n t['eth'] = 500;\n t['zcaron'] = 444;\n t['ncommaaccent'] = 556;\n t['onesuperior'] = 300;\n t['imacron'] = 278;\n t['Euro'] = 500;\n });\n t['Times-BoldItalic'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 250;\n t['exclam'] = 389;\n t['quotedbl'] = 555;\n t['numbersign'] = 500;\n t['dollar'] = 500;\n t['percent'] = 833;\n t['ampersand'] = 778;\n t['quoteright'] = 333;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 500;\n t['plus'] = 570;\n t['comma'] = 250;\n t['hyphen'] = 333;\n t['period'] = 250;\n t['slash'] = 278;\n t['zero'] = 500;\n t['one'] = 500;\n t['two'] = 500;\n t['three'] = 500;\n t['four'] = 500;\n t['five'] = 500;\n t['six'] = 500;\n t['seven'] = 500;\n t['eight'] = 500;\n t['nine'] = 500;\n t['colon'] = 333;\n t['semicolon'] = 333;\n t['less'] = 570;\n t['equal'] = 570;\n t['greater'] = 570;\n t['question'] = 500;\n t['at'] = 832;\n t['A'] = 667;\n t['B'] = 667;\n t['C'] = 667;\n t['D'] = 722;\n t['E'] = 667;\n t['F'] = 667;\n t['G'] = 722;\n t['H'] = 778;\n t['I'] = 389;\n t['J'] = 500;\n t['K'] = 667;\n t['L'] = 611;\n t['M'] = 889;\n t['N'] = 722;\n t['O'] = 722;\n t['P'] = 611;\n t['Q'] = 722;\n t['R'] = 667;\n t['S'] = 556;\n t['T'] = 611;\n t['U'] = 722;\n t['V'] = 667;\n t['W'] = 889;\n t['X'] = 667;\n t['Y'] = 611;\n t['Z'] = 611;\n t['bracketleft'] = 333;\n t['backslash'] = 278;\n t['bracketright'] = 333;\n t['asciicircum'] = 570;\n t['underscore'] = 500;\n t['quoteleft'] = 333;\n t['a'] = 500;\n t['b'] = 500;\n t['c'] = 444;\n t['d'] = 500;\n t['e'] = 444;\n t['f'] = 333;\n t['g'] = 500;\n t['h'] = 556;\n t['i'] = 278;\n t['j'] = 278;\n t['k'] = 500;\n t['l'] = 278;\n t['m'] = 778;\n t['n'] = 556;\n t['o'] = 500;\n t['p'] = 500;\n t['q'] = 500;\n t['r'] = 389;\n t['s'] = 389;\n t['t'] = 278;\n t['u'] = 556;\n t['v'] = 444;\n t['w'] = 667;\n t['x'] = 500;\n t['y'] = 444;\n t['z'] = 389;\n t['braceleft'] = 348;\n t['bar'] = 220;\n t['braceright'] = 348;\n t['asciitilde'] = 570;\n t['exclamdown'] = 389;\n t['cent'] = 500;\n t['sterling'] = 500;\n t['fraction'] = 167;\n t['yen'] = 500;\n t['florin'] = 500;\n t['section'] = 500;\n t['currency'] = 500;\n t['quotesingle'] = 278;\n t['quotedblleft'] = 500;\n t['guillemotleft'] = 500;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 556;\n t['fl'] = 556;\n t['endash'] = 500;\n t['dagger'] = 500;\n t['daggerdbl'] = 500;\n t['periodcentered'] = 250;\n t['paragraph'] = 500;\n t['bullet'] = 350;\n t['quotesinglbase'] = 333;\n t['quotedblbase'] = 500;\n t['quotedblright'] = 500;\n t['guillemotright'] = 500;\n t['ellipsis'] = 1000;\n t['perthousand'] = 1000;\n t['questiondown'] = 500;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 1000;\n t['AE'] = 944;\n t['ordfeminine'] = 266;\n t['Lslash'] = 611;\n t['Oslash'] = 722;\n t['OE'] = 944;\n t['ordmasculine'] = 300;\n t['ae'] = 722;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 500;\n t['oe'] = 722;\n t['germandbls'] = 500;\n t['Idieresis'] = 389;\n t['eacute'] = 444;\n t['abreve'] = 500;\n t['uhungarumlaut'] = 556;\n t['ecaron'] = 444;\n t['Ydieresis'] = 611;\n t['divide'] = 570;\n t['Yacute'] = 611;\n t['Acircumflex'] = 667;\n t['aacute'] = 500;\n t['Ucircumflex'] = 722;\n t['yacute'] = 444;\n t['scommaaccent'] = 389;\n t['ecircumflex'] = 444;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 500;\n t['Uacute'] = 722;\n t['uogonek'] = 556;\n t['Edieresis'] = 667;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 747;\n t['Emacron'] = 667;\n t['ccaron'] = 444;\n t['aring'] = 500;\n t['Ncommaaccent'] = 722;\n t['lacute'] = 278;\n t['agrave'] = 500;\n t['Tcommaaccent'] = 611;\n t['Cacute'] = 667;\n t['atilde'] = 500;\n t['Edotaccent'] = 667;\n t['scaron'] = 389;\n t['scedilla'] = 389;\n t['iacute'] = 278;\n t['lozenge'] = 494;\n t['Rcaron'] = 667;\n t['Gcommaaccent'] = 722;\n t['ucircumflex'] = 556;\n t['acircumflex'] = 500;\n t['Amacron'] = 667;\n t['rcaron'] = 389;\n t['ccedilla'] = 444;\n t['Zdotaccent'] = 611;\n t['Thorn'] = 611;\n t['Omacron'] = 722;\n t['Racute'] = 667;\n t['Sacute'] = 556;\n t['dcaron'] = 608;\n t['Umacron'] = 722;\n t['uring'] = 556;\n t['threesuperior'] = 300;\n t['Ograve'] = 722;\n t['Agrave'] = 667;\n t['Abreve'] = 667;\n t['multiply'] = 570;\n t['uacute'] = 556;\n t['Tcaron'] = 611;\n t['partialdiff'] = 494;\n t['ydieresis'] = 444;\n t['Nacute'] = 722;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 667;\n t['adieresis'] = 500;\n t['edieresis'] = 444;\n t['cacute'] = 444;\n t['nacute'] = 556;\n t['umacron'] = 556;\n t['Ncaron'] = 722;\n t['Iacute'] = 389;\n t['plusminus'] = 570;\n t['brokenbar'] = 220;\n t['registered'] = 747;\n t['Gbreve'] = 722;\n t['Idotaccent'] = 389;\n t['summation'] = 600;\n t['Egrave'] = 667;\n t['racute'] = 389;\n t['omacron'] = 500;\n t['Zacute'] = 611;\n t['Zcaron'] = 611;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 667;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 366;\n t['eogonek'] = 444;\n t['Uogonek'] = 722;\n t['Aacute'] = 667;\n t['Adieresis'] = 667;\n t['egrave'] = 444;\n t['zacute'] = 389;\n t['iogonek'] = 278;\n t['Oacute'] = 722;\n t['oacute'] = 500;\n t['amacron'] = 500;\n t['sacute'] = 389;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 722;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 500;\n t['twosuperior'] = 300;\n t['Odieresis'] = 722;\n t['mu'] = 576;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 500;\n t['Eogonek'] = 667;\n t['dcroat'] = 500;\n t['threequarters'] = 750;\n t['Scedilla'] = 556;\n t['lcaron'] = 382;\n t['Kcommaaccent'] = 667;\n t['Lacute'] = 611;\n t['trademark'] = 1000;\n t['edotaccent'] = 444;\n t['Igrave'] = 389;\n t['Imacron'] = 389;\n t['Lcaron'] = 611;\n t['onehalf'] = 750;\n t['lessequal'] = 549;\n t['ocircumflex'] = 500;\n t['ntilde'] = 556;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 667;\n t['emacron'] = 444;\n t['gbreve'] = 500;\n t['onequarter'] = 750;\n t['Scaron'] = 556;\n t['Scommaaccent'] = 556;\n t['Ohungarumlaut'] = 722;\n t['degree'] = 400;\n t['ograve'] = 500;\n t['Ccaron'] = 667;\n t['ugrave'] = 556;\n t['radical'] = 549;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 389;\n t['Ntilde'] = 722;\n t['otilde'] = 500;\n t['Rcommaaccent'] = 667;\n t['Lcommaaccent'] = 611;\n t['Atilde'] = 667;\n t['Aogonek'] = 667;\n t['Aring'] = 667;\n t['Otilde'] = 722;\n t['zdotaccent'] = 389;\n t['Ecaron'] = 667;\n t['Iogonek'] = 389;\n t['kcommaaccent'] = 500;\n t['minus'] = 606;\n t['Icircumflex'] = 389;\n t['ncaron'] = 556;\n t['tcommaaccent'] = 278;\n t['logicalnot'] = 606;\n t['odieresis'] = 500;\n t['udieresis'] = 556;\n t['notequal'] = 549;\n t['gcommaaccent'] = 500;\n t['eth'] = 500;\n t['zcaron'] = 389;\n t['ncommaaccent'] = 556;\n t['onesuperior'] = 300;\n t['imacron'] = 278;\n t['Euro'] = 500;\n });\n t['Times-Italic'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 250;\n t['exclam'] = 333;\n t['quotedbl'] = 420;\n t['numbersign'] = 500;\n t['dollar'] = 500;\n t['percent'] = 833;\n t['ampersand'] = 778;\n t['quoteright'] = 333;\n t['parenleft'] = 333;\n t['parenright'] = 333;\n t['asterisk'] = 500;\n t['plus'] = 675;\n t['comma'] = 250;\n t['hyphen'] = 333;\n t['period'] = 250;\n t['slash'] = 278;\n t['zero'] = 500;\n t['one'] = 500;\n t['two'] = 500;\n t['three'] = 500;\n t['four'] = 500;\n t['five'] = 500;\n t['six'] = 500;\n t['seven'] = 500;\n t['eight'] = 500;\n t['nine'] = 500;\n t['colon'] = 333;\n t['semicolon'] = 333;\n t['less'] = 675;\n t['equal'] = 675;\n t['greater'] = 675;\n t['question'] = 500;\n t['at'] = 920;\n t['A'] = 611;\n t['B'] = 611;\n t['C'] = 667;\n t['D'] = 722;\n t['E'] = 611;\n t['F'] = 611;\n t['G'] = 722;\n t['H'] = 722;\n t['I'] = 333;\n t['J'] = 444;\n t['K'] = 667;\n t['L'] = 556;\n t['M'] = 833;\n t['N'] = 667;\n t['O'] = 722;\n t['P'] = 611;\n t['Q'] = 722;\n t['R'] = 611;\n t['S'] = 500;\n t['T'] = 556;\n t['U'] = 722;\n t['V'] = 611;\n t['W'] = 833;\n t['X'] = 611;\n t['Y'] = 556;\n t['Z'] = 556;\n t['bracketleft'] = 389;\n t['backslash'] = 278;\n t['bracketright'] = 389;\n t['asciicircum'] = 422;\n t['underscore'] = 500;\n t['quoteleft'] = 333;\n t['a'] = 500;\n t['b'] = 500;\n t['c'] = 444;\n t['d'] = 500;\n t['e'] = 444;\n t['f'] = 278;\n t['g'] = 500;\n t['h'] = 500;\n t['i'] = 278;\n t['j'] = 278;\n t['k'] = 444;\n t['l'] = 278;\n t['m'] = 722;\n t['n'] = 500;\n t['o'] = 500;\n t['p'] = 500;\n t['q'] = 500;\n t['r'] = 389;\n t['s'] = 389;\n t['t'] = 278;\n t['u'] = 500;\n t['v'] = 444;\n t['w'] = 667;\n t['x'] = 444;\n t['y'] = 444;\n t['z'] = 389;\n t['braceleft'] = 400;\n t['bar'] = 275;\n t['braceright'] = 400;\n t['asciitilde'] = 541;\n t['exclamdown'] = 389;\n t['cent'] = 500;\n t['sterling'] = 500;\n t['fraction'] = 167;\n t['yen'] = 500;\n t['florin'] = 500;\n t['section'] = 500;\n t['currency'] = 500;\n t['quotesingle'] = 214;\n t['quotedblleft'] = 556;\n t['guillemotleft'] = 500;\n t['guilsinglleft'] = 333;\n t['guilsinglright'] = 333;\n t['fi'] = 500;\n t['fl'] = 500;\n t['endash'] = 500;\n t['dagger'] = 500;\n t['daggerdbl'] = 500;\n t['periodcentered'] = 250;\n t['paragraph'] = 523;\n t['bullet'] = 350;\n t['quotesinglbase'] = 333;\n t['quotedblbase'] = 556;\n t['quotedblright'] = 556;\n t['guillemotright'] = 500;\n t['ellipsis'] = 889;\n t['perthousand'] = 1000;\n t['questiondown'] = 500;\n t['grave'] = 333;\n t['acute'] = 333;\n t['circumflex'] = 333;\n t['tilde'] = 333;\n t['macron'] = 333;\n t['breve'] = 333;\n t['dotaccent'] = 333;\n t['dieresis'] = 333;\n t['ring'] = 333;\n t['cedilla'] = 333;\n t['hungarumlaut'] = 333;\n t['ogonek'] = 333;\n t['caron'] = 333;\n t['emdash'] = 889;\n t['AE'] = 889;\n t['ordfeminine'] = 276;\n t['Lslash'] = 556;\n t['Oslash'] = 722;\n t['OE'] = 944;\n t['ordmasculine'] = 310;\n t['ae'] = 667;\n t['dotlessi'] = 278;\n t['lslash'] = 278;\n t['oslash'] = 500;\n t['oe'] = 667;\n t['germandbls'] = 500;\n t['Idieresis'] = 333;\n t['eacute'] = 444;\n t['abreve'] = 500;\n t['uhungarumlaut'] = 500;\n t['ecaron'] = 444;\n t['Ydieresis'] = 556;\n t['divide'] = 675;\n t['Yacute'] = 556;\n t['Acircumflex'] = 611;\n t['aacute'] = 500;\n t['Ucircumflex'] = 722;\n t['yacute'] = 444;\n t['scommaaccent'] = 389;\n t['ecircumflex'] = 444;\n t['Uring'] = 722;\n t['Udieresis'] = 722;\n t['aogonek'] = 500;\n t['Uacute'] = 722;\n t['uogonek'] = 500;\n t['Edieresis'] = 611;\n t['Dcroat'] = 722;\n t['commaaccent'] = 250;\n t['copyright'] = 760;\n t['Emacron'] = 611;\n t['ccaron'] = 444;\n t['aring'] = 500;\n t['Ncommaaccent'] = 667;\n t['lacute'] = 278;\n t['agrave'] = 500;\n t['Tcommaaccent'] = 556;\n t['Cacute'] = 667;\n t['atilde'] = 500;\n t['Edotaccent'] = 611;\n t['scaron'] = 389;\n t['scedilla'] = 389;\n t['iacute'] = 278;\n t['lozenge'] = 471;\n t['Rcaron'] = 611;\n t['Gcommaaccent'] = 722;\n t['ucircumflex'] = 500;\n t['acircumflex'] = 500;\n t['Amacron'] = 611;\n t['rcaron'] = 389;\n t['ccedilla'] = 444;\n t['Zdotaccent'] = 556;\n t['Thorn'] = 611;\n t['Omacron'] = 722;\n t['Racute'] = 611;\n t['Sacute'] = 500;\n t['dcaron'] = 544;\n t['Umacron'] = 722;\n t['uring'] = 500;\n t['threesuperior'] = 300;\n t['Ograve'] = 722;\n t['Agrave'] = 611;\n t['Abreve'] = 611;\n t['multiply'] = 675;\n t['uacute'] = 500;\n t['Tcaron'] = 556;\n t['partialdiff'] = 476;\n t['ydieresis'] = 444;\n t['Nacute'] = 667;\n t['icircumflex'] = 278;\n t['Ecircumflex'] = 611;\n t['adieresis'] = 500;\n t['edieresis'] = 444;\n t['cacute'] = 444;\n t['nacute'] = 500;\n t['umacron'] = 500;\n t['Ncaron'] = 667;\n t['Iacute'] = 333;\n t['plusminus'] = 675;\n t['brokenbar'] = 275;\n t['registered'] = 760;\n t['Gbreve'] = 722;\n t['Idotaccent'] = 333;\n t['summation'] = 600;\n t['Egrave'] = 611;\n t['racute'] = 389;\n t['omacron'] = 500;\n t['Zacute'] = 556;\n t['Zcaron'] = 556;\n t['greaterequal'] = 549;\n t['Eth'] = 722;\n t['Ccedilla'] = 667;\n t['lcommaaccent'] = 278;\n t['tcaron'] = 300;\n t['eogonek'] = 444;\n t['Uogonek'] = 722;\n t['Aacute'] = 611;\n t['Adieresis'] = 611;\n t['egrave'] = 444;\n t['zacute'] = 389;\n t['iogonek'] = 278;\n t['Oacute'] = 722;\n t['oacute'] = 500;\n t['amacron'] = 500;\n t['sacute'] = 389;\n t['idieresis'] = 278;\n t['Ocircumflex'] = 722;\n t['Ugrave'] = 722;\n t['Delta'] = 612;\n t['thorn'] = 500;\n t['twosuperior'] = 300;\n t['Odieresis'] = 722;\n t['mu'] = 500;\n t['igrave'] = 278;\n t['ohungarumlaut'] = 500;\n t['Eogonek'] = 611;\n t['dcroat'] = 500;\n t['threequarters'] = 750;\n t['Scedilla'] = 500;\n t['lcaron'] = 300;\n t['Kcommaaccent'] = 667;\n t['Lacute'] = 556;\n t['trademark'] = 980;\n t['edotaccent'] = 444;\n t['Igrave'] = 333;\n t['Imacron'] = 333;\n t['Lcaron'] = 611;\n t['onehalf'] = 750;\n t['lessequal'] = 549;\n t['ocircumflex'] = 500;\n t['ntilde'] = 500;\n t['Uhungarumlaut'] = 722;\n t['Eacute'] = 611;\n t['emacron'] = 444;\n t['gbreve'] = 500;\n t['onequarter'] = 750;\n t['Scaron'] = 500;\n t['Scommaaccent'] = 500;\n t['Ohungarumlaut'] = 722;\n t['degree'] = 400;\n t['ograve'] = 500;\n t['Ccaron'] = 667;\n t['ugrave'] = 500;\n t['radical'] = 453;\n t['Dcaron'] = 722;\n t['rcommaaccent'] = 389;\n t['Ntilde'] = 667;\n t['otilde'] = 500;\n t['Rcommaaccent'] = 611;\n t['Lcommaaccent'] = 556;\n t['Atilde'] = 611;\n t['Aogonek'] = 611;\n t['Aring'] = 611;\n t['Otilde'] = 722;\n t['zdotaccent'] = 389;\n t['Ecaron'] = 611;\n t['Iogonek'] = 333;\n t['kcommaaccent'] = 444;\n t['minus'] = 675;\n t['Icircumflex'] = 333;\n t['ncaron'] = 500;\n t['tcommaaccent'] = 278;\n t['logicalnot'] = 675;\n t['odieresis'] = 500;\n t['udieresis'] = 500;\n t['notequal'] = 549;\n t['gcommaaccent'] = 500;\n t['eth'] = 500;\n t['zcaron'] = 389;\n t['ncommaaccent'] = 500;\n t['onesuperior'] = 300;\n t['imacron'] = 278;\n t['Euro'] = 500;\n });\n t['ZapfDingbats'] = (0, _util.getLookupTableFactory)(function (t) {\n t['space'] = 278;\n t['a1'] = 974;\n t['a2'] = 961;\n t['a202'] = 974;\n t['a3'] = 980;\n t['a4'] = 719;\n t['a5'] = 789;\n t['a119'] = 790;\n t['a118'] = 791;\n t['a117'] = 690;\n t['a11'] = 960;\n t['a12'] = 939;\n t['a13'] = 549;\n t['a14'] = 855;\n t['a15'] = 911;\n t['a16'] = 933;\n t['a105'] = 911;\n t['a17'] = 945;\n t['a18'] = 974;\n t['a19'] = 755;\n t['a20'] = 846;\n t['a21'] = 762;\n t['a22'] = 761;\n t['a23'] = 571;\n t['a24'] = 677;\n t['a25'] = 763;\n t['a26'] = 760;\n t['a27'] = 759;\n t['a28'] = 754;\n t['a6'] = 494;\n t['a7'] = 552;\n t['a8'] = 537;\n t['a9'] = 577;\n t['a10'] = 692;\n t['a29'] = 786;\n t['a30'] = 788;\n t['a31'] = 788;\n t['a32'] = 790;\n t['a33'] = 793;\n t['a34'] = 794;\n t['a35'] = 816;\n t['a36'] = 823;\n t['a37'] = 789;\n t['a38'] = 841;\n t['a39'] = 823;\n t['a40'] = 833;\n t['a41'] = 816;\n t['a42'] = 831;\n t['a43'] = 923;\n t['a44'] = 744;\n t['a45'] = 723;\n t['a46'] = 749;\n t['a47'] = 790;\n t['a48'] = 792;\n t['a49'] = 695;\n t['a50'] = 776;\n t['a51'] = 768;\n t['a52'] = 792;\n t['a53'] = 759;\n t['a54'] = 707;\n t['a55'] = 708;\n t['a56'] = 682;\n t['a57'] = 701;\n t['a58'] = 826;\n t['a59'] = 815;\n t['a60'] = 789;\n t['a61'] = 789;\n t['a62'] = 707;\n t['a63'] = 687;\n t['a64'] = 696;\n t['a65'] = 689;\n t['a66'] = 786;\n t['a67'] = 787;\n t['a68'] = 713;\n t['a69'] = 791;\n t['a70'] = 785;\n t['a71'] = 791;\n t['a72'] = 873;\n t['a73'] = 761;\n t['a74'] = 762;\n t['a203'] = 762;\n t['a75'] = 759;\n t['a204'] = 759;\n t['a76'] = 892;\n t['a77'] = 892;\n t['a78'] = 788;\n t['a79'] = 784;\n t['a81'] = 438;\n t['a82'] = 138;\n t['a83'] = 277;\n t['a84'] = 415;\n t['a97'] = 392;\n t['a98'] = 392;\n t['a99'] = 668;\n t['a100'] = 668;\n t['a89'] = 390;\n t['a90'] = 390;\n t['a93'] = 317;\n t['a94'] = 317;\n t['a91'] = 276;\n t['a92'] = 276;\n t['a205'] = 509;\n t['a85'] = 509;\n t['a206'] = 410;\n t['a86'] = 410;\n t['a87'] = 234;\n t['a88'] = 234;\n t['a95'] = 334;\n t['a96'] = 334;\n t['a101'] = 732;\n t['a102'] = 544;\n t['a103'] = 544;\n t['a104'] = 910;\n t['a106'] = 667;\n t['a107'] = 760;\n t['a108'] = 760;\n t['a112'] = 776;\n t['a111'] = 595;\n t['a110'] = 694;\n t['a109'] = 626;\n t['a120'] = 788;\n t['a121'] = 788;\n t['a122'] = 788;\n t['a123'] = 788;\n t['a124'] = 788;\n t['a125'] = 788;\n t['a126'] = 788;\n t['a127'] = 788;\n t['a128'] = 788;\n t['a129'] = 788;\n t['a130'] = 788;\n t['a131'] = 788;\n t['a132'] = 788;\n t['a133'] = 788;\n t['a134'] = 788;\n t['a135'] = 788;\n t['a136'] = 788;\n t['a137'] = 788;\n t['a138'] = 788;\n t['a139'] = 788;\n t['a140'] = 788;\n t['a141'] = 788;\n t['a142'] = 788;\n t['a143'] = 788;\n t['a144'] = 788;\n t['a145'] = 788;\n t['a146'] = 788;\n t['a147'] = 788;\n t['a148'] = 788;\n t['a149'] = 788;\n t['a150'] = 788;\n t['a151'] = 788;\n t['a152'] = 788;\n t['a153'] = 788;\n t['a154'] = 788;\n t['a155'] = 788;\n t['a156'] = 788;\n t['a157'] = 788;\n t['a158'] = 788;\n t['a159'] = 788;\n t['a160'] = 894;\n t['a161'] = 838;\n t['a163'] = 1016;\n t['a164'] = 458;\n t['a196'] = 748;\n t['a165'] = 924;\n t['a192'] = 748;\n t['a166'] = 918;\n t['a167'] = 927;\n t['a168'] = 928;\n t['a169'] = 928;\n t['a170'] = 834;\n t['a171'] = 873;\n t['a172'] = 828;\n t['a173'] = 924;\n t['a162'] = 924;\n t['a174'] = 917;\n t['a175'] = 930;\n t['a176'] = 931;\n t['a177'] = 463;\n t['a178'] = 883;\n t['a179'] = 836;\n t['a193'] = 836;\n t['a180'] = 867;\n t['a199'] = 867;\n t['a181'] = 696;\n t['a200'] = 696;\n t['a182'] = 874;\n t['a201'] = 874;\n t['a183'] = 760;\n t['a184'] = 946;\n t['a197'] = 771;\n t['a185'] = 865;\n t['a194'] = 771;\n t['a198'] = 888;\n t['a186'] = 967;\n t['a195'] = 888;\n t['a187'] = 831;\n t['a188'] = 873;\n t['a189'] = 927;\n t['a190'] = 970;\n t['a191'] = 918;\n });\n});\nexports.getMetrics = getMetrics;\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar MurmurHash3_64 = function MurmurHash3_64Closure(seed) {\n var MASK_HIGH = 0xffff0000;\n var MASK_LOW = 0xffff;\n function MurmurHash3_64(seed) {\n var SEED = 0xc3d2e1f0;\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n MurmurHash3_64.prototype = {\n update: function MurmurHash3_64_update(input) {\n var i;\n if (typeof input === 'string') {\n var data = new Uint8Array(input.length * 2);\n var length = 0;\n for (i = 0; i < input.length; i++) {\n var code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object' && 'byteLength' in input) {\n data = input;\n length = data.byteLength;\n } else {\n throw new Error('Wrong data format in MurmurHash3_64_update. ' + 'Input must be a string or array.');\n }\n var blockCounts = length >> 2;\n var tailLength = length - blockCounts * 4;\n var dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n var k1 = 0;\n var k2 = 0;\n var h1 = this.h1;\n var h2 = this.h2;\n var C1 = 0xcc9e2d51;\n var C2 = 0x1b873593;\n var C1_LOW = C1 & MASK_LOW;\n var C2_LOW = C2 & MASK_LOW;\n for (i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n return this;\n },\n hexdigest: function MurmurHash3_64_hexdigest() {\n var h1 = this.h1;\n var h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n for (var i = 0, arr = [h1, h2], str = ''; i < arr.length; i++) {\n var hex = (arr[i] >>> 0).toString(16);\n while (hex.length < 8) {\n hex = '0' + hex;\n }\n str += hex;\n }\n return str;\n }\n };\n return MurmurHash3_64;\n}();\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTilingPatternIR = exports.Pattern = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _colorspace = __w_pdfjs_require__(15);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar _function = __w_pdfjs_require__(32);\n\nvar ShadingType = {\n FUNCTION_BASED: 1,\n AXIAL: 2,\n RADIAL: 3,\n FREE_FORM_MESH: 4,\n LATTICE_FORM_MESH: 5,\n COONS_PATCH_MESH: 6,\n TENSOR_PATCH_MESH: 7\n};\nvar Pattern = function PatternClosure() {\n function Pattern() {\n throw new Error('should not call Pattern constructor');\n }\n Pattern.prototype = {\n getPattern: function Pattern_getPattern(ctx) {\n throw new Error('Should not call Pattern.getStyle: ' + ctx);\n }\n };\n Pattern.parseShading = function Pattern_parseShading(shading, matrix, xref, res, handler) {\n var dict = (0, _primitives.isStream)(shading) ? shading.dict : shading;\n var type = dict.get('ShadingType');\n try {\n switch (type) {\n case ShadingType.AXIAL:\n case ShadingType.RADIAL:\n return new Shadings.RadialAxial(dict, matrix, xref, res);\n case ShadingType.FREE_FORM_MESH:\n case ShadingType.LATTICE_FORM_MESH:\n case ShadingType.COONS_PATCH_MESH:\n case ShadingType.TENSOR_PATCH_MESH:\n return new Shadings.Mesh(shading, matrix, xref, res);\n default:\n throw new _util.FormatError('Unsupported ShadingType: ' + type);\n }\n } catch (ex) {\n if (ex instanceof _util.MissingDataException) {\n throw ex;\n }\n handler.send('UnsupportedFeature', { featureId: _util.UNSUPPORTED_FEATURES.shadingPattern });\n (0, _util.warn)(ex);\n return new Shadings.Dummy();\n }\n };\n return Pattern;\n}();\nvar Shadings = {};\nShadings.SMALL_NUMBER = 1e-6;\nShadings.RadialAxial = function RadialAxialClosure() {\n function RadialAxial(dict, matrix, xref, res) {\n this.matrix = matrix;\n this.coordsArr = dict.getArray('Coords');\n this.shadingType = dict.get('ShadingType');\n this.type = 'Pattern';\n var cs = dict.get('ColorSpace', 'CS');\n cs = _colorspace.ColorSpace.parse(cs, xref, res);\n this.cs = cs;\n var t0 = 0.0,\n t1 = 1.0;\n if (dict.has('Domain')) {\n var domainArr = dict.getArray('Domain');\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n var extendStart = false,\n extendEnd = false;\n if (dict.has('Extend')) {\n var extendArr = dict.getArray('Extend');\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\n var x1 = this.coordsArr[0];\n var y1 = this.coordsArr[1];\n var r1 = this.coordsArr[2];\n var x2 = this.coordsArr[3];\n var y2 = this.coordsArr[4];\n var r2 = this.coordsArr[5];\n var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n (0, _util.warn)('Unsupported radial gradient.');\n }\n }\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n var fnObj = dict.get('Function');\n var fn = _function.PDFFunction.parseArray(xref, fnObj);\n var diff = t1 - t0;\n var step = diff / 10;\n var colorStops = this.colorStops = [];\n if (t0 >= t1 || step <= 0) {\n (0, _util.info)('Bad shading domain.');\n return;\n }\n var color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n var rgbColor;\n for (var i = t0; i <= t1; i += step) {\n ratio[0] = i;\n fn(ratio, 0, color, 0);\n rgbColor = cs.getRgb(color, 0);\n var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n colorStops.push([(i - t0) / diff, cssColor]);\n }\n var background = 'transparent';\n if (dict.has('Background')) {\n rgbColor = cs.getRgb(dict.get('Background'), 0);\n background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n if (!extendStart) {\n colorStops.unshift([0, background]);\n colorStops[1][0] += Shadings.SMALL_NUMBER;\n }\n if (!extendEnd) {\n colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER;\n colorStops.push([1, background]);\n }\n this.colorStops = colorStops;\n }\n RadialAxial.prototype = {\n getIR: function RadialAxial_getIR() {\n var coordsArr = this.coordsArr;\n var shadingType = this.shadingType;\n var type, p0, p1, r0, r1;\n if (shadingType === ShadingType.AXIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[2], coordsArr[3]];\n r0 = null;\n r1 = null;\n type = 'axial';\n } else if (shadingType === ShadingType.RADIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[3], coordsArr[4]];\n r0 = coordsArr[2];\n r1 = coordsArr[5];\n type = 'radial';\n } else {\n (0, _util.unreachable)('getPattern type unknown: ' + shadingType);\n }\n var matrix = this.matrix;\n if (matrix) {\n p0 = _util.Util.applyTransform(p0, matrix);\n p1 = _util.Util.applyTransform(p1, matrix);\n if (shadingType === ShadingType.RADIAL) {\n var scale = _util.Util.singularValueDecompose2dScale(matrix);\n r0 *= scale[0];\n r1 *= scale[1];\n }\n }\n return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1];\n }\n };\n return RadialAxial;\n}();\nShadings.Mesh = function MeshClosure() {\n function MeshStreamReader(stream, context) {\n this.stream = stream;\n this.context = context;\n this.buffer = 0;\n this.bufferLength = 0;\n var numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n var csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n }\n MeshStreamReader.prototype = {\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n if (this.bufferLength > 0) {\n return true;\n }\n var nextByte = this.stream.getByte();\n if (nextByte < 0) {\n return false;\n }\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n },\n readBits: function MeshStreamReader_readBits(n) {\n var buffer = this.buffer;\n var bufferLength = this.bufferLength;\n if (n === 32) {\n if (bufferLength === 0) {\n return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0;\n }\n buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();\n var nextByte = this.stream.getByte();\n this.buffer = nextByte & (1 << bufferLength) - 1;\n return (buffer << 8 - bufferLength | (nextByte & 0xFF) >> bufferLength) >>> 0;\n }\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n while (bufferLength < n) {\n buffer = buffer << 8 | this.stream.getByte();\n bufferLength += 8;\n }\n bufferLength -= n;\n this.bufferLength = bufferLength;\n this.buffer = buffer & (1 << bufferLength) - 1;\n return buffer >> bufferLength;\n },\n align: function MeshStreamReader_align() {\n this.buffer = 0;\n this.bufferLength = 0;\n },\n readFlag: function MeshStreamReader_readFlag() {\n return this.readBits(this.context.bitsPerFlag);\n },\n readCoordinate: function MeshStreamReader_readCoordinate() {\n var bitsPerCoordinate = this.context.bitsPerCoordinate;\n var xi = this.readBits(bitsPerCoordinate);\n var yi = this.readBits(bitsPerCoordinate);\n var decode = this.context.decode;\n var scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n },\n readComponents: function MeshStreamReader_readComponents() {\n var numComps = this.context.numComps;\n var bitsPerComponent = this.context.bitsPerComponent;\n var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n var decode = this.context.decode;\n var components = this.tmpCompsBuf;\n for (var i = 0, j = 4; i < numComps; i++, j += 2) {\n var ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n var color = this.tmpCsCompsBuf;\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\n return this.context.colorSpace.getRgb(color, 0);\n }\n };\n function decodeType4Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var operators = [];\n var ps = [];\n var verticesLeft = 0;\n while (reader.hasData) {\n var f = reader.readFlag();\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n if (verticesLeft === 0) {\n if (!(0 <= f && f <= 2)) {\n throw new _util.FormatError('Unknown type4 flag');\n }\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n case 1:\n ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n case 2:\n ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n }\n operators.push(f);\n }\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n reader.align();\n }\n mesh.figures.push({\n type: 'triangles',\n coords: new Int32Array(ps),\n colors: new Int32Array(ps)\n });\n }\n function decodeType5Shading(mesh, reader, verticesPerRow) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = [];\n while (reader.hasData) {\n var coord = reader.readCoordinate();\n var color = reader.readComponents();\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n }\n mesh.figures.push({\n type: 'lattice',\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n verticesPerRow: verticesPerRow\n });\n }\n var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n var TRIANGLE_DENSITY = 20;\n var getB = function getBClosure() {\n function buildB(count) {\n var lut = [];\n for (var i = 0; i <= count; i++) {\n var t = i / count,\n t_ = 1 - t;\n lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t]));\n }\n return lut;\n }\n var cache = [];\n return function getB(count) {\n if (!cache[count]) {\n cache[count] = buildB(count);\n }\n return cache[count];\n };\n }();\n function buildFigureFromPatch(mesh, index) {\n var figure = mesh.figures[index];\n (0, _util.assert)(figure.type === 'patch', 'Unexpected patch mesh figure');\n var coords = mesh.coords,\n colors = mesh.colors;\n var pi = figure.coords;\n var ci = figure.colors;\n var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / (mesh.bounds[2] - mesh.bounds[0]));\n splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy));\n var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / (mesh.bounds[3] - mesh.bounds[1]));\n splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy));\n var verticesPerRow = splitXBy + 1;\n var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n var k = 0;\n var cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n var c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n var bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n for (var row = 0; row <= splitYBy; row++) {\n cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0;\n cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0;\n cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0;\n cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0;\n cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0;\n cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0;\n for (var col = 0; col <= splitXBy; col++, k++) {\n if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n continue;\n }\n var x = 0,\n y = 0;\n var q = 0;\n for (var i = 0; i <= 3; i++) {\n for (var j = 0; j <= 3; j++, q++) {\n var m = bRow[row][i] * bCol[col][j];\n x += coords[pi[q]][0] * m;\n y += coords[pi[q]][1] * m;\n }\n }\n figureCoords[k] = coords.length;\n coords.push([x, y]);\n figureColors[k] = colors.length;\n var newColor = new Uint8Array(3);\n newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0;\n newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0;\n newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0;\n colors.push(newColor);\n }\n }\n figureCoords[0] = pi[0];\n figureColors[0] = ci[0];\n figureCoords[splitXBy] = pi[3];\n figureColors[splitXBy] = ci[1];\n figureCoords[verticesPerRow * splitYBy] = pi[12];\n figureColors[verticesPerRow * splitYBy] = ci[2];\n figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n mesh.figures[index] = {\n type: 'lattice',\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow: verticesPerRow\n };\n }\n function decodeType6Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n while (reader.hasData) {\n var f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError('Unknown type6 flag');\n }\n var i, ii;\n var pi = coords.length;\n for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n var ci = colors.length;\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n var tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n case 0:\n ps[12] = pi + 3;\n ps[13] = pi + 4;\n ps[14] = pi + 5;\n ps[15] = pi + 6;\n ps[8] = pi + 2;\n ps[11] = pi + 7;\n ps[4] = pi + 1;\n ps[7] = pi + 8;\n ps[0] = pi;\n ps[1] = pi + 11;\n ps[2] = pi + 10;\n ps[3] = pi + 9;\n cs[2] = ci + 1;\n cs[3] = ci + 2;\n cs[0] = ci;\n cs[1] = ci + 3;\n break;\n case 1:\n tmp1 = ps[12];\n tmp2 = ps[13];\n tmp3 = ps[14];\n tmp4 = ps[15];\n ps[12] = tmp4;\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = tmp3;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[2];\n tmp2 = cs[3];\n cs[2] = tmp2;\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[7];\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1];\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n case 3:\n ps[12] = ps[0];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[1];\n ps[11] = pi + 3;\n ps[4] = ps[2];\n ps[7] = pi + 4;\n ps[0] = ps[3];\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n cs[2] = cs[0];\n cs[3] = ci;\n cs[0] = cs[1];\n cs[1] = ci + 1;\n break;\n }\n ps[5] = coords.length;\n coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]);\n ps[6] = coords.length;\n coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]);\n ps[9] = coords.length;\n coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]);\n ps[10] = coords.length;\n coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]);\n mesh.figures.push({\n type: 'patch',\n coords: new Int32Array(ps),\n colors: new Int32Array(cs)\n });\n }\n }\n function decodeType7Shading(mesh, reader) {\n var coords = mesh.coords;\n var colors = mesh.colors;\n var ps = new Int32Array(16);\n var cs = new Int32Array(4);\n while (reader.hasData) {\n var f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new _util.FormatError('Unknown type7 flag');\n }\n var i, ii;\n var pi = coords.length;\n for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n var ci = colors.length;\n for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n var tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n case 0:\n ps[12] = pi + 3;\n ps[13] = pi + 4;\n ps[14] = pi + 5;\n ps[15] = pi + 6;\n ps[8] = pi + 2;\n ps[9] = pi + 13;\n ps[10] = pi + 14;\n ps[11] = pi + 7;\n ps[4] = pi + 1;\n ps[5] = pi + 12;\n ps[6] = pi + 15;\n ps[7] = pi + 8;\n ps[0] = pi;\n ps[1] = pi + 11;\n ps[2] = pi + 10;\n ps[3] = pi + 9;\n cs[2] = ci + 1;\n cs[3] = ci + 2;\n cs[0] = ci;\n cs[1] = ci + 3;\n break;\n case 1:\n tmp1 = ps[12];\n tmp2 = ps[13];\n tmp3 = ps[14];\n tmp4 = ps[15];\n ps[12] = tmp4;\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = tmp3;\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[2];\n tmp2 = cs[3];\n cs[2] = tmp2;\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[7];\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = tmp2;\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = tmp1;\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1];\n cs[3] = ci;\n cs[0] = tmp1;\n cs[1] = ci + 1;\n break;\n case 3:\n ps[12] = ps[0];\n ps[13] = pi + 0;\n ps[14] = pi + 1;\n ps[15] = pi + 2;\n ps[8] = ps[1];\n ps[9] = pi + 9;\n ps[10] = pi + 10;\n ps[11] = pi + 3;\n ps[4] = ps[2];\n ps[5] = pi + 8;\n ps[6] = pi + 11;\n ps[7] = pi + 4;\n ps[0] = ps[3];\n ps[1] = pi + 7;\n ps[2] = pi + 6;\n ps[3] = pi + 5;\n cs[2] = cs[0];\n cs[3] = ci;\n cs[0] = cs[1];\n cs[1] = ci + 1;\n break;\n }\n mesh.figures.push({\n type: 'patch',\n coords: new Int32Array(ps),\n colors: new Int32Array(cs)\n });\n }\n }\n function updateBounds(mesh) {\n var minX = mesh.coords[0][0],\n minY = mesh.coords[0][1],\n maxX = minX,\n maxY = minY;\n for (var i = 1, ii = mesh.coords.length; i < ii; i++) {\n var x = mesh.coords[i][0],\n y = mesh.coords[i][1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n mesh.bounds = [minX, minY, maxX, maxY];\n }\n function packData(mesh) {\n var i, ii, j, jj;\n var coords = mesh.coords;\n var coordsPacked = new Float32Array(coords.length * 2);\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n var xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n mesh.coords = coordsPacked;\n var colors = mesh.colors;\n var colorsPacked = new Uint8Array(colors.length * 3);\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n var c = colors[i];\n colorsPacked[j++] = c[0];\n colorsPacked[j++] = c[1];\n colorsPacked[j++] = c[2];\n }\n mesh.colors = colorsPacked;\n var figures = mesh.figures;\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n for (j = 0, jj = ps.length; j < jj; j++) {\n ps[j] *= 2;\n cs[j] *= 3;\n }\n }\n }\n function Mesh(stream, matrix, xref, res) {\n if (!(0, _primitives.isStream)(stream)) {\n throw new _util.FormatError('Mesh data is not a stream');\n }\n var dict = stream.dict;\n this.matrix = matrix;\n this.shadingType = dict.get('ShadingType');\n this.type = 'Pattern';\n this.bbox = dict.getArray('BBox');\n var cs = dict.get('ColorSpace', 'CS');\n cs = _colorspace.ColorSpace.parse(cs, xref, res);\n this.cs = cs;\n this.background = dict.has('Background') ? cs.getRgb(dict.get('Background'), 0) : null;\n var fnObj = dict.get('Function');\n var fn = fnObj ? _function.PDFFunction.parseArray(xref, fnObj) : null;\n this.coords = [];\n this.colors = [];\n this.figures = [];\n var decodeContext = {\n bitsPerCoordinate: dict.get('BitsPerCoordinate'),\n bitsPerComponent: dict.get('BitsPerComponent'),\n bitsPerFlag: dict.get('BitsPerFlag'),\n decode: dict.getArray('Decode'),\n colorFn: fn,\n colorSpace: cs,\n numComps: fn ? 1 : cs.numComps\n };\n var reader = new MeshStreamReader(stream, decodeContext);\n var patchMesh = false;\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n decodeType4Shading(this, reader);\n break;\n case ShadingType.LATTICE_FORM_MESH:\n var verticesPerRow = dict.get('VerticesPerRow') | 0;\n if (verticesPerRow < 2) {\n throw new _util.FormatError('Invalid VerticesPerRow');\n }\n decodeType5Shading(this, reader, verticesPerRow);\n break;\n case ShadingType.COONS_PATCH_MESH:\n decodeType6Shading(this, reader);\n patchMesh = true;\n break;\n case ShadingType.TENSOR_PATCH_MESH:\n decodeType7Shading(this, reader);\n patchMesh = true;\n break;\n default:\n (0, _util.unreachable)('Unsupported mesh type.');\n break;\n }\n if (patchMesh) {\n updateBounds(this);\n for (var i = 0, ii = this.figures.length; i < ii; i++) {\n buildFigureFromPatch(this, i);\n }\n }\n updateBounds(this);\n packData(this);\n }\n Mesh.prototype = {\n getIR: function Mesh_getIR() {\n return ['Mesh', this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background];\n }\n };\n return Mesh;\n}();\nShadings.Dummy = function DummyClosure() {\n function Dummy() {\n this.type = 'Pattern';\n }\n Dummy.prototype = {\n getIR: function Dummy_getIR() {\n return ['Dummy'];\n }\n };\n return Dummy;\n}();\nfunction getTilingPatternIR(operatorList, dict, args) {\n var matrix = dict.getArray('Matrix');\n var bbox = _util.Util.normalizeRect(dict.getArray('BBox'));\n var xstep = dict.get('XStep');\n var ystep = dict.get('YStep');\n var paintType = dict.get('PaintType');\n var tilingType = dict.get('TilingType');\n if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new _util.FormatError('Invalid getTilingPatternIR /BBox array: [' + bbox + '].');\n }\n return ['TilingPattern', args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n}\nexports.Pattern = Pattern;\nexports.getTilingPatternIR = getTilingPatternIR;\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NetworkPdfManager = exports.LocalPdfManager = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _chunked_stream = __w_pdfjs_require__(54);\n\nvar _document = __w_pdfjs_require__(91);\n\nvar _stream = __w_pdfjs_require__(3);\n\nvar BasePdfManager = function BasePdfManagerClosure() {\n function BasePdfManager() {\n throw new Error('Cannot initialize BaseManagerManager');\n }\n BasePdfManager.prototype = {\n get docId() {\n return this._docId;\n },\n get password() {\n return this._password;\n },\n get docBaseUrl() {\n var docBaseUrl = null;\n if (this._docBaseUrl) {\n var absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl);\n if (absoluteUrl) {\n docBaseUrl = absoluteUrl.href;\n } else {\n (0, _util.warn)('Invalid absolute docBaseUrl: \"' + this._docBaseUrl + '\".');\n }\n }\n return (0, _util.shadow)(this, 'docBaseUrl', docBaseUrl);\n },\n onLoadedStream: function BasePdfManager_onLoadedStream() {\n throw new _util.NotImplementedException();\n },\n ensureDoc: function BasePdfManager_ensureDoc(prop, args) {\n return this.ensure(this.pdfDocument, prop, args);\n },\n ensureXRef: function BasePdfManager_ensureXRef(prop, args) {\n return this.ensure(this.pdfDocument.xref, prop, args);\n },\n ensureCatalog: function BasePdfManager_ensureCatalog(prop, args) {\n return this.ensure(this.pdfDocument.catalog, prop, args);\n },\n getPage: function BasePdfManager_getPage(pageIndex) {\n return this.pdfDocument.getPage(pageIndex);\n },\n cleanup: function BasePdfManager_cleanup() {\n return this.pdfDocument.cleanup();\n },\n ensure: function BasePdfManager_ensure(obj, prop, args) {\n return new _util.NotImplementedException();\n },\n requestRange: function BasePdfManager_requestRange(begin, end) {\n return new _util.NotImplementedException();\n },\n requestLoadedStream: function BasePdfManager_requestLoadedStream() {\n return new _util.NotImplementedException();\n },\n sendProgressiveData: function BasePdfManager_sendProgressiveData(chunk) {\n return new _util.NotImplementedException();\n },\n updatePassword: function BasePdfManager_updatePassword(password) {\n this._password = password;\n },\n terminate: function BasePdfManager_terminate() {\n return new _util.NotImplementedException();\n }\n };\n return BasePdfManager;\n}();\nvar LocalPdfManager = function LocalPdfManagerClosure() {\n function LocalPdfManager(docId, data, password, evaluatorOptions, docBaseUrl) {\n this._docId = docId;\n this._password = password;\n this._docBaseUrl = docBaseUrl;\n this.evaluatorOptions = evaluatorOptions;\n var stream = new _stream.Stream(data);\n this.pdfDocument = new _document.PDFDocument(this, stream);\n this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n this._loadedStreamCapability.resolve(stream);\n }\n _util.Util.inherit(LocalPdfManager, BasePdfManager, {\n ensure: function LocalPdfManager_ensure(obj, prop, args) {\n return new Promise(function (resolve, reject) {\n try {\n var value = obj[prop];\n var result;\n if (typeof value === 'function') {\n result = value.apply(obj, args);\n } else {\n result = value;\n }\n resolve(result);\n } catch (e) {\n reject(e);\n }\n });\n },\n requestRange: function LocalPdfManager_requestRange(begin, end) {\n return Promise.resolve();\n },\n requestLoadedStream: function LocalPdfManager_requestLoadedStream() {},\n onLoadedStream: function LocalPdfManager_onLoadedStream() {\n return this._loadedStreamCapability.promise;\n },\n terminate: function LocalPdfManager_terminate() {}\n });\n return LocalPdfManager;\n}();\nvar NetworkPdfManager = function NetworkPdfManagerClosure() {\n function NetworkPdfManager(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) {\n this._docId = docId;\n this._password = args.password;\n this._docBaseUrl = docBaseUrl;\n this.msgHandler = args.msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n var params = {\n msgHandler: args.msgHandler,\n url: args.url,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize\n };\n this.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, params);\n this.pdfDocument = new _document.PDFDocument(this, this.streamManager.getStream());\n }\n _util.Util.inherit(NetworkPdfManager, BasePdfManager, {\n ensure: function NetworkPdfManager_ensure(obj, prop, args) {\n var pdfManager = this;\n return new Promise(function (resolve, reject) {\n function ensureHelper() {\n try {\n var result;\n var value = obj[prop];\n if (typeof value === 'function') {\n result = value.apply(obj, args);\n } else {\n result = value;\n }\n resolve(result);\n } catch (e) {\n if (!(e instanceof _util.MissingDataException)) {\n reject(e);\n return;\n }\n pdfManager.streamManager.requestRange(e.begin, e.end).then(ensureHelper, reject);\n }\n }\n ensureHelper();\n });\n },\n requestRange: function NetworkPdfManager_requestRange(begin, end) {\n return this.streamManager.requestRange(begin, end);\n },\n requestLoadedStream: function NetworkPdfManager_requestLoadedStream() {\n this.streamManager.requestAllChunks();\n },\n sendProgressiveData: function NetworkPdfManager_sendProgressiveData(chunk) {\n this.streamManager.onReceiveData({ chunk: chunk });\n },\n onLoadedStream: function NetworkPdfManager_onLoadedStream() {\n return this.streamManager.onLoadedStream();\n },\n terminate: function NetworkPdfManager_terminate() {\n this.streamManager.abort();\n }\n });\n return NetworkPdfManager;\n}();\nexports.LocalPdfManager = LocalPdfManager;\nexports.NetworkPdfManager = NetworkPdfManager;\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PostScriptParser = exports.PostScriptLexer = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _primitives = __w_pdfjs_require__(1);\n\nvar PostScriptParser = function PostScriptParserClosure() {\n function PostScriptParser(lexer) {\n this.lexer = lexer;\n this.operators = [];\n this.token = null;\n this.prev = null;\n }\n PostScriptParser.prototype = {\n nextToken: function PostScriptParser_nextToken() {\n this.prev = this.token;\n this.token = this.lexer.getToken();\n },\n accept: function PostScriptParser_accept(type) {\n if (this.token.type === type) {\n this.nextToken();\n return true;\n }\n return false;\n },\n expect: function PostScriptParser_expect(type) {\n if (this.accept(type)) {\n return true;\n }\n throw new _util.FormatError('Unexpected symbol: found ' + this.token.type + ' expected ' + type + '.');\n },\n parse: function PostScriptParser_parse() {\n this.nextToken();\n this.expect(PostScriptTokenTypes.LBRACE);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n return this.operators;\n },\n parseBlock: function PostScriptParser_parseBlock() {\n while (true) {\n if (this.accept(PostScriptTokenTypes.NUMBER)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n this.parseCondition();\n } else {\n return;\n }\n }\n },\n parseCondition: function PostScriptParser_parseCondition() {\n var conditionLocation = this.operators.length;\n this.operators.push(null, null);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n if (this.accept(PostScriptTokenTypes.IF)) {\n this.operators[conditionLocation] = this.operators.length;\n this.operators[conditionLocation + 1] = 'jz';\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n var jumpLocation = this.operators.length;\n this.operators.push(null, null);\n var endOfTrue = this.operators.length;\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n this.expect(PostScriptTokenTypes.IFELSE);\n this.operators[jumpLocation] = this.operators.length;\n this.operators[jumpLocation + 1] = 'j';\n this.operators[conditionLocation] = endOfTrue;\n this.operators[conditionLocation + 1] = 'jz';\n } else {\n throw new _util.FormatError('PS Function: error parsing conditional.');\n }\n }\n };\n return PostScriptParser;\n}();\nvar PostScriptTokenTypes = {\n LBRACE: 0,\n RBRACE: 1,\n NUMBER: 2,\n OPERATOR: 3,\n IF: 4,\n IFELSE: 5\n};\nvar PostScriptToken = function PostScriptTokenClosure() {\n function PostScriptToken(type, value) {\n this.type = type;\n this.value = value;\n }\n var opCache = Object.create(null);\n PostScriptToken.getOperator = function PostScriptToken_getOperator(op) {\n var opValue = opCache[op];\n if (opValue) {\n return opValue;\n }\n return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n };\n PostScriptToken.LBRACE = new PostScriptToken(PostScriptTokenTypes.LBRACE, '{');\n PostScriptToken.RBRACE = new PostScriptToken(PostScriptTokenTypes.RBRACE, '}');\n PostScriptToken.IF = new PostScriptToken(PostScriptTokenTypes.IF, 'IF');\n PostScriptToken.IFELSE = new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE');\n return PostScriptToken;\n}();\nvar PostScriptLexer = function PostScriptLexerClosure() {\n function PostScriptLexer(stream) {\n this.stream = stream;\n this.nextChar();\n this.strBuf = [];\n }\n PostScriptLexer.prototype = {\n nextChar: function PostScriptLexer_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n getToken: function PostScriptLexer_getToken() {\n var comment = false;\n var ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return _primitives.EOF;\n }\n if (comment) {\n if (ch === 0x0A || ch === 0x0D) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (!(0, _util.isSpace)(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n switch (ch | 0) {\n case 0x30:\n case 0x31:\n case 0x32:\n case 0x33:\n case 0x34:\n case 0x35:\n case 0x36:\n case 0x37:\n case 0x38:\n case 0x39:\n case 0x2B:\n case 0x2D:\n case 0x2E:\n return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());\n case 0x7B:\n this.nextChar();\n return PostScriptToken.LBRACE;\n case 0x7D:\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n var strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A)) {\n strBuf.push(String.fromCharCode(ch));\n }\n var str = strBuf.join('');\n switch (str.toLowerCase()) {\n case 'if':\n return PostScriptToken.IF;\n case 'ifelse':\n return PostScriptToken.IFELSE;\n default:\n return PostScriptToken.getOperator(str);\n }\n },\n getNumber: function PostScriptLexer_getNumber() {\n var ch = this.currentChar;\n var strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= 0x30 && ch <= 0x39 || ch === 0x2D || ch === 0x2E) {\n strBuf.push(String.fromCharCode(ch));\n } else {\n break;\n }\n }\n var value = parseFloat(strBuf.join(''));\n if (isNaN(value)) {\n throw new _util.FormatError('Invalid floating point number: ' + value);\n }\n return value;\n }\n };\n return PostScriptLexer;\n}();\nexports.PostScriptLexer = PostScriptLexer;\nexports.PostScriptParser = PostScriptParser;\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Type1Parser = undefined;\n\nvar _util = __w_pdfjs_require__(0);\n\nvar _encodings = __w_pdfjs_require__(16);\n\nvar _stream = __w_pdfjs_require__(3);\n\nvar HINTING_ENABLED = false;\nvar Type1CharString = function Type1CharStringClosure() {\n var COMMAND_MAP = {\n 'hstem': [1],\n 'vstem': [3],\n 'vmoveto': [4],\n 'rlineto': [5],\n 'hlineto': [6],\n 'vlineto': [7],\n 'rrcurveto': [8],\n 'callsubr': [10],\n 'flex': [12, 35],\n 'drop': [12, 18],\n 'endchar': [14],\n 'rmoveto': [21],\n 'hmoveto': [22],\n 'vhcurveto': [30],\n 'hvcurveto': [31]\n };\n function Type1CharString() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n Type1CharString.prototype = {\n convert: function Type1CharString_convert(encoded, subrs, seacAnalysisEnabled) {\n var count = encoded.length;\n var error = false;\n var wx, sbx, subrNumber;\n for (var i = 0; i < count; i++) {\n var value = encoded[i];\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n switch (value) {\n case 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case 3:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case 4:\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n var dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n case 5:\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n case 6:\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n case 7:\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n case 8:\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n case 9:\n this.stack = [];\n break;\n case 10:\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n break;\n case 11:\n return error;\n case 13:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n wx = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx);\n error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n break;\n case 14:\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n case 21:\n if (this.flexing) {\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n case 22:\n if (this.flexing) {\n this.stack.push(0);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n case 30:\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n case 31:\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n case (12 << 8) + 0:\n this.stack = [];\n break;\n case (12 << 8) + 1:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case (12 << 8) + 2:\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case (12 << 8) + 6:\n if (seacAnalysisEnabled) {\n this.seac = this.stack.splice(-4, 4);\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n break;\n case (12 << 8) + 7:\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n this.stack.pop();\n wx = this.stack.pop();\n var sby = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx, sby);\n error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n break;\n case (12 << 8) + 12:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n var num2 = this.stack.pop();\n var num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n case (12 << 8) + 16:\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n var numArgs = this.stack.pop();\n if (subrNumber === 0 && numArgs === 3) {\n var flexArgs = this.stack.splice(this.stack.length - 17, 17);\n this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]);\n error = this.executeCommand(13, COMMAND_MAP.flex, true);\n this.flexing = false;\n this.stack.push(flexArgs[15], flexArgs[16]);\n } else if (subrNumber === 1 && numArgs === 0) {\n this.flexing = true;\n }\n break;\n case (12 << 8) + 17:\n break;\n case (12 << 8) + 33:\n this.stack = [];\n break;\n default:\n (0, _util.warn)('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n if (error) {\n break;\n }\n continue;\n } else if (value <= 246) {\n value = value - 139;\n } else if (value <= 250) {\n value = (value - 247) * 256 + encoded[++i] + 108;\n } else if (value <= 254) {\n value = -((value - 251) * 256) - encoded[++i] - 108;\n } else {\n value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n }\n this.stack.push(value);\n }\n return error;\n },\n executeCommand: function executeCommand(howManyArgs, command, keepStack) {\n var stackLength = this.stack.length;\n if (howManyArgs > stackLength) {\n return true;\n }\n var start = stackLength - howManyArgs;\n for (var i = start; i < stackLength; i++) {\n var value = this.stack[i];\n if (value === (value | 0)) {\n this.output.push(28, value >> 8 & 0xff, value & 0xff);\n } else {\n value = 65536 * value | 0;\n this.output.push(255, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF);\n }\n }\n this.output.push.apply(this.output, command);\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n return false;\n }\n };\n return Type1CharString;\n}();\nvar Type1Parser = function Type1ParserClosure() {\n var EEXEC_ENCRYPT_KEY = 55665;\n var CHAR_STRS_ENCRYPT_KEY = 4330;\n function isHexDigit(code) {\n return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n }\n function decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n var r = key | 0,\n c1 = 52845,\n c2 = 22719,\n i,\n j;\n for (i = 0; i < discardNumber; i++) {\n r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n }\n var count = data.length - discardNumber;\n var decrypted = new Uint8Array(count);\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n var value = data[i];\n decrypted[j] = value ^ r >> 8;\n r = (value + r) * c1 + c2 & (1 << 16) - 1;\n }\n return decrypted;\n }\n function decryptAscii(data, key, discardNumber) {\n var r = key | 0,\n c1 = 52845,\n c2 = 22719;\n var count = data.length,\n maybeLength = count >>> 1;\n var decrypted = new Uint8Array(maybeLength);\n var i, j;\n for (i = 0, j = 0; i < count; i++) {\n var digit1 = data[i];\n if (!isHexDigit(digit1)) {\n continue;\n }\n i++;\n var digit2;\n while (i < count && !isHexDigit(digit2 = data[i])) {\n i++;\n }\n if (i < count) {\n var value = parseInt(String.fromCharCode(digit1, digit2), 16);\n decrypted[j++] = value ^ r >> 8;\n r = (value + r) * c1 + c2 & (1 << 16) - 1;\n }\n }\n return Array.prototype.slice.call(decrypted, discardNumber, j);\n }\n function isSpecial(c) {\n return c === 0x2F || c === 0x5B || c === 0x5D || c === 0x7B || c === 0x7D || c === 0x28 || c === 0x29;\n }\n function Type1Parser(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n var data = stream.getBytes();\n var isBinary = !(isHexDigit(data[0]) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]));\n stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n }\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n this.stream = stream;\n this.nextChar();\n }\n Type1Parser.prototype = {\n readNumberArray: function Type1Parser_readNumberArray() {\n this.getToken();\n var array = [];\n while (true) {\n var token = this.getToken();\n if (token === null || token === ']' || token === '}') {\n break;\n }\n array.push(parseFloat(token || 0));\n }\n return array;\n },\n readNumber: function Type1Parser_readNumber() {\n var token = this.getToken();\n return parseFloat(token || 0);\n },\n readInt: function Type1Parser_readInt() {\n var token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n },\n readBoolean: function Type1Parser_readBoolean() {\n var token = this.getToken();\n return token === 'true' ? 1 : 0;\n },\n nextChar: function Type1_nextChar() {\n return this.currentChar = this.stream.getByte();\n },\n getToken: function Type1Parser_getToken() {\n var comment = false;\n var ch = this.currentChar;\n while (true) {\n if (ch === -1) {\n return null;\n }\n if (comment) {\n if (ch === 0x0A || ch === 0x0D) {\n comment = false;\n }\n } else if (ch === 0x25) {\n comment = true;\n } else if (!(0, _util.isSpace)(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n var token = '';\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !(0, _util.isSpace)(ch) && !isSpecial(ch));\n return token;\n },\n extractFontProgram: function Type1Parser_extractFontProgram() {\n var stream = this.stream;\n var subrs = [],\n charstrings = [];\n var privateData = Object.create(null);\n privateData['lenIV'] = 4;\n var program = {\n subrs: [],\n charstrings: [],\n properties: { 'privateData': privateData }\n };\n var token, length, data, lenIV, encoded;\n while ((token = this.getToken()) !== null) {\n if (token !== '/') {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case 'CharStrings':\n this.getToken();\n this.getToken();\n this.getToken();\n this.getToken();\n while (true) {\n token = this.getToken();\n if (token === null || token === 'end') {\n break;\n }\n if (token !== '/') {\n continue;\n }\n var glyph = this.getToken();\n length = this.readInt();\n this.getToken();\n data = stream.makeSubStream(stream.pos, length);\n lenIV = program.properties.privateData['lenIV'];\n encoded = decrypt(data.getBytes(), CHAR_STRS_ENCRYPT_KEY, lenIV);\n stream.skip(length);\n this.nextChar();\n token = this.getToken();\n if (token === 'noaccess') {\n this.getToken();\n }\n charstrings.push({\n glyph: glyph,\n encoded: encoded\n });\n }\n break;\n case 'Subrs':\n this.readInt();\n this.getToken();\n while ((token = this.getToken()) === 'dup') {\n var index = this.readInt();\n length = this.readInt();\n this.getToken();\n data = stream.makeSubStream(stream.pos, length);\n lenIV = program.properties.privateData['lenIV'];\n encoded = decrypt(data.getBytes(), CHAR_STRS_ENCRYPT_KEY, lenIV);\n stream.skip(length);\n this.nextChar();\n token = this.getToken();\n if (token === 'noaccess') {\n this.getToken();\n }\n subrs[index] = encoded;\n }\n break;\n case 'BlueValues':\n case 'OtherBlues':\n case 'FamilyBlues':\n case 'FamilyOtherBlues':\n var blueArray = this.readNumberArray();\n if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n program.properties.privateData[token] = blueArray;\n }\n break;\n case 'StemSnapH':\n case 'StemSnapV':\n program.properties.privateData[token] = this.readNumberArray();\n break;\n case 'StdHW':\n case 'StdVW':\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n case 'BlueShift':\n case 'lenIV':\n case 'BlueFuzz':\n case 'BlueScale':\n case 'LanguageGroup':\n case 'ExpansionFactor':\n program.properties.privateData[token] = this.readNumber();\n break;\n case 'ForceBold':\n program.properties.privateData[token] = this.readBoolean();\n break;\n }\n }\n for (var i = 0; i < charstrings.length; i++) {\n glyph = charstrings[i].glyph;\n encoded = charstrings[i].encoded;\n var charString = new Type1CharString();\n var error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n var output = charString.output;\n if (error) {\n output = [14];\n }\n program.charstrings.push({\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac\n });\n }\n return program;\n },\n extractFontHeader: function Type1Parser_extractFontHeader(properties) {\n var token;\n while ((token = this.getToken()) !== null) {\n if (token !== '/') {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case 'FontMatrix':\n var matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n case 'Encoding':\n var encodingArg = this.getToken();\n var encoding;\n if (!/^\\d+$/.test(encodingArg)) {\n encoding = (0, _encodings.getEncoding)(encodingArg);\n } else {\n encoding = [];\n var size = parseInt(encodingArg, 10) | 0;\n this.getToken();\n for (var j = 0; j < size; j++) {\n token = this.getToken();\n while (token !== 'dup' && token !== 'def') {\n token = this.getToken();\n if (token === null) {\n return;\n }\n }\n if (token === 'def') {\n break;\n }\n var index = this.readInt();\n this.getToken();\n var glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken();\n }\n }\n properties.builtInEncoding = encoding;\n break;\n case 'FontBBox':\n var fontBBox = this.readNumberArray();\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n break;\n }\n }\n }\n };\n return Type1Parser;\n}();\nexports.Type1Parser = Type1Parser;\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pdfjsVersion = '1.9.489';\nvar pdfjsBuild = 'b7fcaff0';\nvar pdfjsCoreWorker = __w_pdfjs_require__(61);\nexports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nif (typeof PDFJS === 'undefined' || !PDFJS.compatibilityChecked) {\n var globalScope = __w_pdfjs_require__(105);\n var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';\n var isAndroid = /Android/.test(userAgent);\n var isAndroidPre3 = /Android\\s[0-2][^\\d]/.test(userAgent);\n var isAndroidPre5 = /Android\\s[0-4][^\\d]/.test(userAgent);\n var isChrome = userAgent.indexOf('Chrom') >= 0;\n var isChromeWithRangeBug = /Chrome\\/(39|40)\\./.test(userAgent);\n var isIOSChrome = userAgent.indexOf('CriOS') >= 0;\n var isIE = userAgent.indexOf('Trident') >= 0;\n var isIOS = /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent);\n var isOpera = userAgent.indexOf('Opera') >= 0;\n var isSafari = /Safari\\//.test(userAgent) && !/(Chrome\\/|Android\\s)/.test(userAgent);\n var hasDOM = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object';\n if (typeof PDFJS === 'undefined') {\n globalScope.PDFJS = {};\n }\n PDFJS.compatibilityChecked = true;\n (function checkTypedArrayCompatibility() {\n if (typeof Uint8ClampedArray === 'undefined') {\n globalScope.Uint8ClampedArray = __w_pdfjs_require__(63);\n }\n if (typeof Uint8Array !== 'undefined') {\n if (typeof Uint8Array.prototype.subarray === 'undefined') {\n Uint8Array.prototype.subarray = function subarray(start, end) {\n return new Uint8Array(this.slice(start, end));\n };\n Float32Array.prototype.subarray = function subarray(start, end) {\n return new Float32Array(this.slice(start, end));\n };\n }\n if (typeof Float64Array === 'undefined') {\n globalScope.Float64Array = Float32Array;\n }\n return;\n }\n function subarray(start, end) {\n return new TypedArray(this.slice(start, end));\n }\n function setArrayOffset(array, offset) {\n if (arguments.length < 2) {\n offset = 0;\n }\n for (var i = 0, n = array.length; i < n; ++i, ++offset) {\n this[offset] = array[i] & 0xFF;\n }\n }\n function Uint32ArrayView(buffer, length) {\n this.buffer = buffer;\n this.byteLength = buffer.length;\n this.length = length;\n ensureUint32ArrayViewProps(this.length);\n }\n Uint32ArrayView.prototype = Object.create(null);\n var uint32ArrayViewSetters = 0;\n function createUint32ArrayProp(index) {\n return {\n get: function get() {\n var buffer = this.buffer,\n offset = index << 2;\n return (buffer[offset] | buffer[offset + 1] << 8 | buffer[offset + 2] << 16 | buffer[offset + 3] << 24) >>> 0;\n },\n set: function set(value) {\n var buffer = this.buffer,\n offset = index << 2;\n buffer[offset] = value & 255;\n buffer[offset + 1] = value >> 8 & 255;\n buffer[offset + 2] = value >> 16 & 255;\n buffer[offset + 3] = value >>> 24 & 255;\n }\n };\n }\n function ensureUint32ArrayViewProps(length) {\n while (uint32ArrayViewSetters < length) {\n Object.defineProperty(Uint32ArrayView.prototype, uint32ArrayViewSetters, createUint32ArrayProp(uint32ArrayViewSetters));\n uint32ArrayViewSetters++;\n }\n }\n function TypedArray(arg1) {\n var result, i, n;\n if (typeof arg1 === 'number') {\n result = [];\n for (i = 0; i < arg1; ++i) {\n result[i] = 0;\n }\n } else if ('slice' in arg1) {\n result = arg1.slice(0);\n } else {\n result = [];\n for (i = 0, n = arg1.length; i < n; ++i) {\n result[i] = arg1[i];\n }\n }\n result.subarray = subarray;\n result.buffer = result;\n result.byteLength = result.length;\n result.set = setArrayOffset;\n if ((typeof arg1 === 'undefined' ? 'undefined' : _typeof(arg1)) === 'object' && arg1.buffer) {\n result.buffer = arg1.buffer;\n }\n return result;\n }\n globalScope.Uint8Array = TypedArray;\n globalScope.Int8Array = TypedArray;\n globalScope.Int32Array = TypedArray;\n globalScope.Uint16Array = TypedArray;\n globalScope.Float32Array = TypedArray;\n globalScope.Float64Array = TypedArray;\n globalScope.Uint32Array = function () {\n if (arguments.length === 3) {\n if (arguments[1] !== 0) {\n throw new Error('offset !== 0 is not supported');\n }\n return new Uint32ArrayView(arguments[0], arguments[2]);\n }\n return TypedArray.apply(this, arguments);\n };\n })();\n (function canvasPixelArrayBuffer() {\n if (!hasDOM || !window.CanvasPixelArray) {\n return;\n }\n var cpaProto = window.CanvasPixelArray.prototype;\n if ('buffer' in cpaProto) {\n return;\n }\n Object.defineProperty(cpaProto, 'buffer', {\n get: function get() {\n return this;\n },\n\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(cpaProto, 'byteLength', {\n get: function get() {\n return this.length;\n },\n\n enumerable: false,\n configurable: true\n });\n })();\n (function normalizeURLObject() {\n if (!globalScope.URL) {\n globalScope.URL = globalScope.webkitURL;\n }\n })();\n (function checkObjectDefinePropertyCompatibility() {\n if (typeof Object.defineProperty !== 'undefined') {\n var definePropertyPossible = true;\n try {\n if (hasDOM) {\n Object.defineProperty(new Image(), 'id', { value: 'test' });\n }\n var Test = function Test() {};\n Test.prototype = {\n get id() {}\n };\n Object.defineProperty(new Test(), 'id', {\n value: '',\n configurable: true,\n enumerable: true,\n writable: false\n });\n } catch (e) {\n definePropertyPossible = false;\n }\n if (definePropertyPossible) {\n return;\n }\n }\n Object.defineProperty = function objectDefineProperty(obj, name, def) {\n delete obj[name];\n if ('get' in def) {\n obj.__defineGetter__(name, def['get']);\n }\n if ('set' in def) {\n obj.__defineSetter__(name, def['set']);\n }\n if ('value' in def) {\n obj.__defineSetter__(name, function objectDefinePropertySetter(value) {\n this.__defineGetter__(name, function objectDefinePropertyGetter() {\n return value;\n });\n return value;\n });\n obj[name] = def.value;\n }\n };\n })();\n (function checkXMLHttpRequestResponseCompatibility() {\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n var xhrPrototype = XMLHttpRequest.prototype;\n var xhr = new XMLHttpRequest();\n if (!('overrideMimeType' in xhr)) {\n Object.defineProperty(xhrPrototype, 'overrideMimeType', {\n value: function xmlHttpRequestOverrideMimeType(mimeType) {}\n });\n }\n if ('responseType' in xhr) {\n return;\n }\n Object.defineProperty(xhrPrototype, 'responseType', {\n get: function xmlHttpRequestGetResponseType() {\n return this._responseType || 'text';\n },\n set: function xmlHttpRequestSetResponseType(value) {\n if (value === 'text' || value === 'arraybuffer') {\n this._responseType = value;\n if (value === 'arraybuffer' && typeof this.overrideMimeType === 'function') {\n this.overrideMimeType('text/plain; charset=x-user-defined');\n }\n }\n }\n });\n if (typeof VBArray !== 'undefined') {\n Object.defineProperty(xhrPrototype, 'response', {\n get: function xmlHttpRequestResponseGet() {\n if (this.responseType === 'arraybuffer') {\n return new Uint8Array(new VBArray(this.responseBody).toArray());\n }\n return this.responseText;\n }\n });\n return;\n }\n Object.defineProperty(xhrPrototype, 'response', {\n get: function xmlHttpRequestResponseGet() {\n if (this.responseType !== 'arraybuffer') {\n return this.responseText;\n }\n var text = this.responseText;\n var i,\n n = text.length;\n var result = new Uint8Array(n);\n for (i = 0; i < n; ++i) {\n result[i] = text.charCodeAt(i) & 0xFF;\n }\n return result.buffer;\n }\n });\n })();\n (function checkWindowBtoaCompatibility() {\n if ('btoa' in globalScope) {\n return;\n }\n var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n globalScope.btoa = function (chars) {\n var buffer = '';\n var i, n;\n for (i = 0, n = chars.length; i < n; i += 3) {\n var b1 = chars.charCodeAt(i) & 0xFF;\n var b2 = chars.charCodeAt(i + 1) & 0xFF;\n var b3 = chars.charCodeAt(i + 2) & 0xFF;\n var d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n var d3 = i + 1 < n ? (b2 & 0xF) << 2 | b3 >> 6 : 64;\n var d4 = i + 2 < n ? b3 & 0x3F : 64;\n buffer += digits.charAt(d1) + digits.charAt(d2) + digits.charAt(d3) + digits.charAt(d4);\n }\n return buffer;\n };\n })();\n (function checkWindowAtobCompatibility() {\n if ('atob' in globalScope) {\n return;\n }\n var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n globalScope.atob = function (input) {\n input = input.replace(/=+$/, '');\n if (input.length % 4 === 1) {\n throw new Error('bad atob input');\n }\n for (var bc = 0, bs, buffer, idx = 0, output = ''; buffer = input.charAt(idx++); ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) {\n buffer = digits.indexOf(buffer);\n }\n return output;\n };\n })();\n (function checkFunctionPrototypeBindCompatibility() {\n if (typeof Function.prototype.bind !== 'undefined') {\n return;\n }\n Function.prototype.bind = function functionPrototypeBind(obj) {\n var fn = this,\n headArgs = Array.prototype.slice.call(arguments, 1);\n var bound = function functionPrototypeBindBound() {\n var args = headArgs.concat(Array.prototype.slice.call(arguments));\n return fn.apply(obj, args);\n };\n return bound;\n };\n })();\n (function checkDatasetProperty() {\n if (!hasDOM) {\n return;\n }\n var div = document.createElement('div');\n if ('dataset' in div) {\n return;\n }\n Object.defineProperty(HTMLElement.prototype, 'dataset', {\n get: function get() {\n if (this._dataset) {\n return this._dataset;\n }\n var dataset = {};\n for (var j = 0, jj = this.attributes.length; j < jj; j++) {\n var attribute = this.attributes[j];\n if (attribute.name.substring(0, 5) !== 'data-') {\n continue;\n }\n var key = attribute.name.substring(5).replace(/\\-([a-z])/g, function (all, ch) {\n return ch.toUpperCase();\n });\n dataset[key] = attribute.value;\n }\n Object.defineProperty(this, '_dataset', {\n value: dataset,\n writable: false,\n enumerable: false\n });\n return dataset;\n },\n\n enumerable: true\n });\n })();\n (function checkClassListProperty() {\n function changeList(element, itemName, add, remove) {\n var s = element.className || '';\n var list = s.split(/\\s+/g);\n if (list[0] === '') {\n list.shift();\n }\n var index = list.indexOf(itemName);\n if (index < 0 && add) {\n list.push(itemName);\n }\n if (index >= 0 && remove) {\n list.splice(index, 1);\n }\n element.className = list.join(' ');\n return index >= 0;\n }\n if (!hasDOM) {\n return;\n }\n var div = document.createElement('div');\n if ('classList' in div) {\n return;\n }\n var classListPrototype = {\n add: function add(name) {\n changeList(this.element, name, true, false);\n },\n contains: function contains(name) {\n return changeList(this.element, name, false, false);\n },\n remove: function remove(name) {\n changeList(this.element, name, false, true);\n },\n toggle: function toggle(name) {\n changeList(this.element, name, true, true);\n }\n };\n Object.defineProperty(HTMLElement.prototype, 'classList', {\n get: function get() {\n if (this._classList) {\n return this._classList;\n }\n var classList = Object.create(classListPrototype, {\n element: {\n value: this,\n writable: false,\n enumerable: true\n }\n });\n Object.defineProperty(this, '_classList', {\n value: classList,\n writable: false,\n enumerable: false\n });\n return classList;\n },\n\n enumerable: true\n });\n })();\n (function checkWorkerConsoleCompatibility() {\n if (typeof importScripts === 'undefined' || 'console' in globalScope) {\n return;\n }\n var consoleTimer = {};\n var workerConsole = {\n log: function log() {\n var args = Array.prototype.slice.call(arguments);\n globalScope.postMessage({\n targetName: 'main',\n action: 'console_log',\n data: args\n });\n },\n error: function error() {\n var args = Array.prototype.slice.call(arguments);\n globalScope.postMessage({\n targetName: 'main',\n action: 'console_error',\n data: args\n });\n },\n time: function time(name) {\n consoleTimer[name] = Date.now();\n },\n timeEnd: function timeEnd(name) {\n var time = consoleTimer[name];\n if (!time) {\n throw new Error('Unknown timer name ' + name);\n }\n this.log('Timer:', name, Date.now() - time);\n }\n };\n globalScope.console = workerConsole;\n })();\n (function checkConsoleCompatibility() {\n if (!hasDOM) {\n return;\n }\n if (!('console' in window)) {\n window.console = {\n log: function log() {},\n error: function error() {},\n warn: function warn() {}\n };\n return;\n }\n if (!('bind' in console.log)) {\n console.log = function (fn) {\n return function (msg) {\n return fn(msg);\n };\n }(console.log);\n console.error = function (fn) {\n return function (msg) {\n return fn(msg);\n };\n }(console.error);\n console.warn = function (fn) {\n return function (msg) {\n return fn(msg);\n };\n }(console.warn);\n return;\n }\n })();\n (function checkOnClickCompatibility() {\n function ignoreIfTargetDisabled(event) {\n if (isDisabled(event.target)) {\n event.stopPropagation();\n }\n }\n function isDisabled(node) {\n return node.disabled || node.parentNode && isDisabled(node.parentNode);\n }\n if (isOpera) {\n document.addEventListener('click', ignoreIfTargetDisabled, true);\n }\n })();\n (function checkOnBlobSupport() {\n if (isIE || isIOSChrome) {\n PDFJS.disableCreateObjectURL = true;\n }\n })();\n (function checkNavigatorLanguage() {\n if (typeof navigator === 'undefined') {\n return;\n }\n if ('language' in navigator) {\n return;\n }\n PDFJS.locale = navigator.userLanguage || 'en-US';\n })();\n (function checkRangeRequests() {\n if (isSafari || isAndroidPre3 || isChromeWithRangeBug || isIOS) {\n PDFJS.disableRange = true;\n PDFJS.disableStream = true;\n }\n })();\n (function checkHistoryManipulation() {\n if (!hasDOM) {\n return;\n }\n if (!history.pushState || isAndroidPre3) {\n PDFJS.disableHistory = true;\n }\n })();\n (function checkSetPresenceInImageData() {\n if (!hasDOM) {\n return;\n }\n if (window.CanvasPixelArray) {\n if (typeof window.CanvasPixelArray.prototype.set !== 'function') {\n window.CanvasPixelArray.prototype.set = function (arr) {\n for (var i = 0, ii = this.length; i < ii; i++) {\n this[i] = arr[i];\n }\n };\n }\n } else {\n var polyfill = false,\n versionMatch;\n if (isChrome) {\n versionMatch = userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\n polyfill = versionMatch && parseInt(versionMatch[2]) < 21;\n } else if (isAndroid) {\n polyfill = isAndroidPre5;\n } else if (isSafari) {\n versionMatch = userAgent.match(/Version\\/([0-9]+)\\.([0-9]+)\\.([0-9]+) Safari\\//);\n polyfill = versionMatch && parseInt(versionMatch[1]) < 6;\n }\n if (polyfill) {\n var contextPrototype = window.CanvasRenderingContext2D.prototype;\n var createImageData = contextPrototype.createImageData;\n contextPrototype.createImageData = function (w, h) {\n var imageData = createImageData.call(this, w, h);\n imageData.data.set = function (arr) {\n for (var i = 0, ii = this.length; i < ii; i++) {\n this[i] = arr[i];\n }\n };\n return imageData;\n };\n contextPrototype = null;\n }\n }\n })();\n (function checkRequestAnimationFrame() {\n function installFakeAnimationFrameFunctions() {\n window.requestAnimationFrame = function (callback) {\n return window.setTimeout(callback, 20);\n };\n window.cancelAnimationFrame = function (timeoutID) {\n window.clearTimeout(timeoutID);\n };\n }\n if (!hasDOM) {\n return;\n }\n if (isIOS) {\n installFakeAnimationFrameFunctions();\n return;\n }\n if ('requestAnimationFrame' in window) {\n return;\n }\n window.requestAnimationFrame = window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame;\n if (window.requestAnimationFrame) {\n return;\n }\n installFakeAnimationFrameFunctions();\n })();\n (function checkCanvasSizeLimitation() {\n if (isIOS || isAndroid) {\n PDFJS.maxCanvasPixels = 5242880;\n }\n })();\n (function checkFullscreenSupport() {\n if (!hasDOM) {\n return;\n }\n if (isIE && window.parent !== window) {\n PDFJS.disableFullscreen = true;\n }\n })();\n (function checkCurrentScript() {\n if (!hasDOM) {\n return;\n }\n if ('currentScript' in document) {\n return;\n }\n Object.defineProperty(document, 'currentScript', {\n get: function get() {\n var scripts = document.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n },\n\n enumerable: true,\n configurable: true\n });\n })();\n (function checkInputTypeNumberAssign() {\n if (!hasDOM) {\n return;\n }\n var el = document.createElement('input');\n try {\n el.type = 'number';\n } catch (ex) {\n var inputProto = el.constructor.prototype;\n var typeProperty = Object.getOwnPropertyDescriptor(inputProto, 'type');\n Object.defineProperty(inputProto, 'type', {\n get: function get() {\n return typeProperty.get.call(this);\n },\n set: function set(value) {\n typeProperty.set.call(this, value === 'number' ? 'text' : value);\n },\n\n enumerable: true,\n configurable: true\n });\n }\n })();\n (function checkDocumentReadyState() {\n if (!hasDOM) {\n return;\n }\n if (!document.attachEvent) {\n return;\n }\n var documentProto = document.constructor.prototype;\n var readyStateProto = Object.getOwnPropertyDescriptor(documentProto, 'readyState');\n Object.defineProperty(documentProto, 'readyState', {\n get: function get() {\n var value = readyStateProto.get.call(this);\n return value === 'interactive' ? 'loading' : value;\n },\n set: function set(value) {\n readyStateProto.set.call(this, value);\n },\n\n enumerable: true,\n configurable: true\n });\n })();\n (function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n })();\n (function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = function (value) {\n return typeof value === 'number' && isNaN(value);\n };\n })();\n (function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n };\n })();\n (function checkPromise() {\n if (globalScope.Promise) {\n if (typeof globalScope.Promise.all !== 'function') {\n globalScope.Promise.all = function (iterable) {\n var count = 0,\n results = [],\n resolve,\n reject;\n var promise = new globalScope.Promise(function (resolve_, reject_) {\n resolve = resolve_;\n reject = reject_;\n });\n iterable.forEach(function (p, i) {\n count++;\n p.then(function (result) {\n results[i] = result;\n count--;\n if (count === 0) {\n resolve(results);\n }\n }, reject);\n });\n if (count === 0) {\n resolve(results);\n }\n return promise;\n };\n }\n if (typeof globalScope.Promise.resolve !== 'function') {\n globalScope.Promise.resolve = function (value) {\n return new globalScope.Promise(function (resolve) {\n resolve(value);\n });\n };\n }\n if (typeof globalScope.Promise.reject !== 'function') {\n globalScope.Promise.reject = function (reason) {\n return new globalScope.Promise(function (resolve, reject) {\n reject(reason);\n });\n };\n }\n if (typeof globalScope.Promise.prototype.catch !== 'function') {\n globalScope.Promise.prototype.catch = function (onReject) {\n return globalScope.Promise.prototype.then(undefined, onReject);\n };\n }\n return;\n }\n var STATUS_PENDING = 0;\n var STATUS_RESOLVED = 1;\n var STATUS_REJECTED = 2;\n var REJECTION_TIMEOUT = 500;\n var HandlerManager = {\n handlers: [],\n running: false,\n unhandledRejections: [],\n pendingRejectionCheck: false,\n scheduleHandlers: function scheduleHandlers(promise) {\n if (promise._status === STATUS_PENDING) {\n return;\n }\n this.handlers = this.handlers.concat(promise._handlers);\n promise._handlers = [];\n if (this.running) {\n return;\n }\n this.running = true;\n setTimeout(this.runHandlers.bind(this), 0);\n },\n runHandlers: function runHandlers() {\n var RUN_TIMEOUT = 1;\n var timeoutAt = Date.now() + RUN_TIMEOUT;\n while (this.handlers.length > 0) {\n var handler = this.handlers.shift();\n var nextStatus = handler.thisPromise._status;\n var nextValue = handler.thisPromise._value;\n try {\n if (nextStatus === STATUS_RESOLVED) {\n if (typeof handler.onResolve === 'function') {\n nextValue = handler.onResolve(nextValue);\n }\n } else if (typeof handler.onReject === 'function') {\n nextValue = handler.onReject(nextValue);\n nextStatus = STATUS_RESOLVED;\n if (handler.thisPromise._unhandledRejection) {\n this.removeUnhandeledRejection(handler.thisPromise);\n }\n }\n } catch (ex) {\n nextStatus = STATUS_REJECTED;\n nextValue = ex;\n }\n handler.nextPromise._updateStatus(nextStatus, nextValue);\n if (Date.now() >= timeoutAt) {\n break;\n }\n }\n if (this.handlers.length > 0) {\n setTimeout(this.runHandlers.bind(this), 0);\n return;\n }\n this.running = false;\n },\n addUnhandledRejection: function addUnhandledRejection(promise) {\n this.unhandledRejections.push({\n promise: promise,\n time: Date.now()\n });\n this.scheduleRejectionCheck();\n },\n removeUnhandeledRejection: function removeUnhandeledRejection(promise) {\n promise._unhandledRejection = false;\n for (var i = 0; i < this.unhandledRejections.length; i++) {\n if (this.unhandledRejections[i].promise === promise) {\n this.unhandledRejections.splice(i);\n i--;\n }\n }\n },\n scheduleRejectionCheck: function scheduleRejectionCheck() {\n var _this = this;\n\n if (this.pendingRejectionCheck) {\n return;\n }\n this.pendingRejectionCheck = true;\n setTimeout(function () {\n _this.pendingRejectionCheck = false;\n var now = Date.now();\n for (var i = 0; i < _this.unhandledRejections.length; i++) {\n if (now - _this.unhandledRejections[i].time > REJECTION_TIMEOUT) {\n var unhandled = _this.unhandledRejections[i].promise._value;\n var msg = 'Unhandled rejection: ' + unhandled;\n if (unhandled.stack) {\n msg += '\\n' + unhandled.stack;\n }\n try {\n throw new Error(msg);\n } catch (_) {\n console.warn(msg);\n }\n _this.unhandledRejections.splice(i);\n i--;\n }\n }\n if (_this.unhandledRejections.length) {\n _this.scheduleRejectionCheck();\n }\n }, REJECTION_TIMEOUT);\n }\n };\n var Promise = function Promise(resolver) {\n this._status = STATUS_PENDING;\n this._handlers = [];\n try {\n resolver.call(this, this._resolve.bind(this), this._reject.bind(this));\n } catch (e) {\n this._reject(e);\n }\n };\n Promise.all = function Promise_all(promises) {\n var resolveAll, rejectAll;\n var deferred = new Promise(function (resolve, reject) {\n resolveAll = resolve;\n rejectAll = reject;\n });\n var unresolved = promises.length;\n var results = [];\n if (unresolved === 0) {\n resolveAll(results);\n return deferred;\n }\n function reject(reason) {\n if (deferred._status === STATUS_REJECTED) {\n return;\n }\n results = [];\n rejectAll(reason);\n }\n for (var i = 0, ii = promises.length; i < ii; ++i) {\n var promise = promises[i];\n var resolve = function (i) {\n return function (value) {\n if (deferred._status === STATUS_REJECTED) {\n return;\n }\n results[i] = value;\n unresolved--;\n if (unresolved === 0) {\n resolveAll(results);\n }\n };\n }(i);\n if (Promise.isPromise(promise)) {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n return deferred;\n };\n Promise.isPromise = function Promise_isPromise(value) {\n return value && typeof value.then === 'function';\n };\n Promise.resolve = function Promise_resolve(value) {\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function Promise_reject(reason) {\n return new Promise(function (resolve, reject) {\n reject(reason);\n });\n };\n Promise.prototype = {\n _status: null,\n _value: null,\n _handlers: null,\n _unhandledRejection: null,\n _updateStatus: function Promise__updateStatus(status, value) {\n if (this._status === STATUS_RESOLVED || this._status === STATUS_REJECTED) {\n return;\n }\n if (status === STATUS_RESOLVED && Promise.isPromise(value)) {\n value.then(this._updateStatus.bind(this, STATUS_RESOLVED), this._updateStatus.bind(this, STATUS_REJECTED));\n return;\n }\n this._status = status;\n this._value = value;\n if (status === STATUS_REJECTED && this._handlers.length === 0) {\n this._unhandledRejection = true;\n HandlerManager.addUnhandledRejection(this);\n }\n HandlerManager.scheduleHandlers(this);\n },\n _resolve: function Promise_resolve(value) {\n this._updateStatus(STATUS_RESOLVED, value);\n },\n _reject: function Promise_reject(reason) {\n this._updateStatus(STATUS_REJECTED, reason);\n },\n then: function Promise_then(onResolve, onReject) {\n var nextPromise = new Promise(function (resolve, reject) {\n this.resolve = resolve;\n this.reject = reject;\n });\n this._handlers.push({\n thisPromise: this,\n onResolve: onResolve,\n onReject: onReject,\n nextPromise: nextPromise\n });\n HandlerManager.scheduleHandlers(this);\n return nextPromise;\n },\n catch: function Promise_catch(onReject) {\n return this.then(undefined, onReject);\n }\n };\n globalScope.Promise = Promise;\n })();\n (function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n var id = 0;\n function WeakMap() {\n this.id = '$weakmap' + id++;\n }\n WeakMap.prototype = {\n has: function has(obj) {\n if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' && typeof obj !== 'function' || obj === null) {\n return false;\n }\n return !!Object.getOwnPropertyDescriptor(obj, this.id);\n },\n get: function get(obj) {\n return this.has(obj) ? obj[this.id] : undefined;\n },\n set: function set(obj, value) {\n Object.defineProperty(obj, this.id, {\n value: value,\n enumerable: false,\n configurable: true\n });\n },\n delete: function _delete(obj) {\n delete obj[this.id];\n }\n };\n globalScope.WeakMap = WeakMap;\n })();\n (function checkURLConstructor() {\n var hasWorkingUrl = false;\n try {\n if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {\n var u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n hasWorkingUrl = u.href === 'http://a/c%20d';\n }\n } catch (e) {}\n if (hasWorkingUrl) {\n return;\n }\n var relative = Object.create(null);\n relative['ftp'] = 21;\n relative['file'] = 0;\n relative['gopher'] = 70;\n relative['http'] = 80;\n relative['https'] = 443;\n relative['ws'] = 80;\n relative['wss'] = 443;\n var relativePathDotMapping = Object.create(null);\n relativePathDotMapping['%2e'] = '.';\n relativePathDotMapping['.%2e'] = '..';\n relativePathDotMapping['%2e.'] = '..';\n relativePathDotMapping['%2e%2e'] = '..';\n function isRelativeScheme(scheme) {\n return relative[scheme] !== undefined;\n }\n function invalid() {\n clear.call(this);\n this._isInvalid = true;\n }\n function IDNAToASCII(h) {\n if (h === '') {\n invalid.call(this);\n }\n return h.toLowerCase();\n }\n function percentEscape(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n return encodeURIComponent(c);\n }\n function percentEscapeQuery(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {\n return c;\n }\n return encodeURIComponent(c);\n }\n var EOF,\n ALPHA = /[a-zA-Z]/,\n ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n function parse(input, stateOverride, base) {\n function err(message) {\n errors.push(message);\n }\n var state = stateOverride || 'scheme start',\n cursor = 0,\n buffer = '',\n seenAt = false,\n seenBracket = false,\n errors = [];\n loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {\n var c = input[cursor];\n switch (state) {\n case 'scheme start':\n if (c && ALPHA.test(c)) {\n buffer += c.toLowerCase();\n state = 'scheme';\n } else if (!stateOverride) {\n buffer = '';\n state = 'no scheme';\n continue;\n } else {\n err('Invalid scheme.');\n break loop;\n }\n break;\n case 'scheme':\n if (c && ALPHANUMERIC.test(c)) {\n buffer += c.toLowerCase();\n } else if (c === ':') {\n this._scheme = buffer;\n buffer = '';\n if (stateOverride) {\n break loop;\n }\n if (isRelativeScheme(this._scheme)) {\n this._isRelative = true;\n }\n if (this._scheme === 'file') {\n state = 'relative';\n } else if (this._isRelative && base && base._scheme === this._scheme) {\n state = 'relative or authority';\n } else if (this._isRelative) {\n state = 'authority first slash';\n } else {\n state = 'scheme data';\n }\n } else if (!stateOverride) {\n buffer = '';\n cursor = 0;\n state = 'no scheme';\n continue;\n } else if (c === EOF) {\n break loop;\n } else {\n err('Code point not allowed in scheme: ' + c);\n break loop;\n }\n break;\n case 'scheme data':\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else {\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._schemeData += percentEscape(c);\n }\n }\n break;\n case 'no scheme':\n if (!base || !isRelativeScheme(base._scheme)) {\n err('Missing scheme.');\n invalid.call(this);\n } else {\n state = 'relative';\n continue;\n }\n break;\n case 'relative or authority':\n if (c === '/' && input[cursor + 1] === '/') {\n state = 'authority ignore slashes';\n } else {\n err('Expected /, got: ' + c);\n state = 'relative';\n continue;\n }\n break;\n case 'relative':\n this._isRelative = true;\n if (this._scheme !== 'file') {\n this._scheme = base._scheme;\n }\n if (c === EOF) {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._username = base._username;\n this._password = base._password;\n break loop;\n } else if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n state = 'relative slash';\n } else if (c === '?') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = '?';\n this._username = base._username;\n this._password = base._password;\n state = 'query';\n } else if (c === '#') {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._fragment = '#';\n this._username = base._username;\n this._password = base._password;\n state = 'fragment';\n } else {\n var nextC = input[cursor + 1];\n var nextNextC = input[cursor + 2];\n if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' && nextNextC !== '?' && nextNextC !== '#') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n this._path = base._path.slice();\n this._path.pop();\n }\n state = 'relative path';\n continue;\n }\n break;\n case 'relative slash':\n if (c === '/' || c === '\\\\') {\n if (c === '\\\\') {\n err('\\\\ is an invalid code point.');\n }\n if (this._scheme === 'file') {\n state = 'file host';\n } else {\n state = 'authority ignore slashes';\n }\n } else {\n if (this._scheme !== 'file') {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n }\n state = 'relative path';\n continue;\n }\n break;\n case 'authority first slash':\n if (c === '/') {\n state = 'authority second slash';\n } else {\n err('Expected \\'/\\', got: ' + c);\n state = 'authority ignore slashes';\n continue;\n }\n break;\n case 'authority second slash':\n state = 'authority ignore slashes';\n if (c !== '/') {\n err('Expected \\'/\\', got: ' + c);\n continue;\n }\n break;\n case 'authority ignore slashes':\n if (c !== '/' && c !== '\\\\') {\n state = 'authority';\n continue;\n } else {\n err('Expected authority, got: ' + c);\n }\n break;\n case 'authority':\n if (c === '@') {\n if (seenAt) {\n err('@ already seen.');\n buffer += '%40';\n }\n seenAt = true;\n for (var i = 0; i < buffer.length; i++) {\n var cp = buffer[i];\n if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n err('Invalid whitespace in authority.');\n continue;\n }\n if (cp === ':' && this._password === null) {\n this._password = '';\n continue;\n }\n var tempC = percentEscape(cp);\n if (this._password !== null) {\n this._password += tempC;\n } else {\n this._username += tempC;\n }\n }\n buffer = '';\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n cursor -= buffer.length;\n buffer = '';\n state = 'host';\n continue;\n } else {\n buffer += c;\n }\n break;\n case 'file host':\n if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {\n state = 'relative path';\n } else if (buffer.length === 0) {\n state = 'relative path start';\n } else {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n }\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid whitespace in file host.');\n } else {\n buffer += c;\n }\n break;\n case 'host':\n case 'hostname':\n if (c === ':' && !seenBracket) {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'port';\n if (stateOverride === 'hostname') {\n break loop;\n }\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n if (stateOverride) {\n break loop;\n }\n continue;\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n if (c === '[') {\n seenBracket = true;\n } else if (c === ']') {\n seenBracket = false;\n }\n buffer += c;\n } else {\n err('Invalid code point in host/hostname: ' + c);\n }\n break;\n case 'port':\n if (/[0-9]/.test(c)) {\n buffer += c;\n } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#' || stateOverride) {\n if (buffer !== '') {\n var temp = parseInt(buffer, 10);\n if (temp !== relative[this._scheme]) {\n this._port = temp + '';\n }\n buffer = '';\n }\n if (stateOverride) {\n break loop;\n }\n state = 'relative path start';\n continue;\n } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n err('Invalid code point in port: ' + c);\n } else {\n invalid.call(this);\n }\n break;\n case 'relative path start':\n if (c === '\\\\') {\n err('\\'\\\\\\' not allowed in path.');\n }\n state = 'relative path';\n if (c !== '/' && c !== '\\\\') {\n continue;\n }\n break;\n case 'relative path':\n if (c === EOF || c === '/' || c === '\\\\' || !stateOverride && (c === '?' || c === '#')) {\n if (c === '\\\\') {\n err('\\\\ not allowed in relative path.');\n }\n var tmp;\n if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n buffer = tmp;\n }\n if (buffer === '..') {\n this._path.pop();\n if (c !== '/' && c !== '\\\\') {\n this._path.push('');\n }\n } else if (buffer === '.' && c !== '/' && c !== '\\\\') {\n this._path.push('');\n } else if (buffer !== '.') {\n if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {\n buffer = buffer[0] + ':';\n }\n this._path.push(buffer);\n }\n buffer = '';\n if (c === '?') {\n this._query = '?';\n state = 'query';\n } else if (c === '#') {\n this._fragment = '#';\n state = 'fragment';\n }\n } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n buffer += percentEscape(c);\n }\n break;\n case 'query':\n if (!stateOverride && c === '#') {\n this._fragment = '#';\n state = 'fragment';\n } else if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._query += percentEscapeQuery(c);\n }\n break;\n case 'fragment':\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._fragment += c;\n }\n break;\n }\n cursor++;\n }\n }\n function clear() {\n this._scheme = '';\n this._schemeData = '';\n this._username = '';\n this._password = null;\n this._host = '';\n this._port = '';\n this._path = [];\n this._query = '';\n this._fragment = '';\n this._isInvalid = false;\n this._isRelative = false;\n }\n function JURL(url, base) {\n if (base !== undefined && !(base instanceof JURL)) {\n base = new JURL(String(base));\n }\n this._url = url;\n clear.call(this);\n var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n parse.call(this, input, null, base);\n }\n JURL.prototype = {\n toString: function toString() {\n return this.href;\n },\n\n get href() {\n if (this._isInvalid) {\n return this._url;\n }\n var authority = '';\n if (this._username !== '' || this._password !== null) {\n authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';\n }\n return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n },\n set href(value) {\n clear.call(this);\n parse.call(this, value);\n },\n get protocol() {\n return this._scheme + ':';\n },\n set protocol(value) {\n if (this._isInvalid) {\n return;\n }\n parse.call(this, value + ':', 'scheme start');\n },\n get host() {\n return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n },\n set host(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'host');\n },\n get hostname() {\n return this._host;\n },\n set hostname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'hostname');\n },\n get port() {\n return this._port;\n },\n set port(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n parse.call(this, value, 'port');\n },\n get pathname() {\n return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n },\n set pathname(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._path = [];\n parse.call(this, value, 'relative path start');\n },\n get search() {\n return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;\n },\n set search(value) {\n if (this._isInvalid || !this._isRelative) {\n return;\n }\n this._query = '?';\n if (value[0] === '?') {\n value = value.slice(1);\n }\n parse.call(this, value, 'query');\n },\n get hash() {\n return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;\n },\n set hash(value) {\n if (this._isInvalid) {\n return;\n }\n this._fragment = '#';\n if (value[0] === '#') {\n value = value.slice(1);\n }\n parse.call(this, value, 'fragment');\n },\n get origin() {\n var host;\n if (this._isInvalid || !this._scheme) {\n return '';\n }\n switch (this._scheme) {\n case 'data':\n case 'file':\n case 'javascript':\n case 'mailto':\n return 'null';\n case 'blob':\n try {\n return new JURL(this._schemeData).origin || 'null';\n } catch (_) {}\n return 'null';\n }\n host = this.host;\n if (!host) {\n return '';\n }\n return this._scheme + '://' + host;\n }\n };\n var OriginalURL = globalScope.URL;\n if (OriginalURL) {\n JURL.createObjectURL = function (blob) {\n return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n };\n JURL.revokeObjectURL = function (url) {\n OriginalURL.revokeObjectURL(url);\n };\n }\n globalScope.URL = JURL;\n })();\n}\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {};\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isReadableStreamSupported = false;\nif (typeof ReadableStream !== 'undefined') {\n try {\n new ReadableStream({\n start: function start(controller) {\n controller.close();\n }\n });\n isReadableStreamSupported = true;\n } catch (e) {}\n}\nif (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n} else {\n exports.ReadableStream = __w_pdfjs_require__(62).ReadableStream;\n}\n\n/***/ })\n/******/ ]);\n});\n"],"mappings":"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O,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAA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C,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAED,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAED,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC;QAChyE,IAAIQ,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAEZ,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxX,IAAIa,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/3I,IAAIC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAEd,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAEA,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACp4C,IAAIe,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzwD,IAAIC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC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AAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,E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AC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CA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W,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM;QACrBA,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM;QACrBA,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM;QACrBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM;QACpBA,CAAC,CAAC,WAAW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CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM;QAChBA,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM;QAChBA,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM;QAChBA,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM;QAChBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM;QAClBA,CAAC,CAAC,MAAM,CAAC,G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UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAAM;UACVC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,EAAE;UACRC,UAAU,EAAE;QACd,CAAC,EAAE;UACDH,EAAE,EAAE,MAA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,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAIA,MAAM,CAAC,UAAU,EAAE,U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AE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3hD,IAAI5U,CAAC,GAAG,IAAI4U,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxhD,IAAIuvD,KAAK,GAAG,IAAIvvD,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5hD,IAAIwvD,MAAM,GAAG,IAAIxvD,UAAU,CAAC,GAAG,CAAC;QAChC,KAAK,IAAIpW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,GAAG,EAAEA,CAAC,EAAE,EAAE;UAC5B,IAAIA,CAAC,GAAG,GAAG,EAAE;YACX4lE,MAAM,CAAC5lE,CAAC,CAAC,GAAGA,CAAC,IAAI,CAAC;UACpB,CAAC,MAAM;YACL4lE,MAAM,CAAC5lE,CAAC,CAAC,GAAGA,CAAC,IAAI,CAAC,GAAG,IAAI;UAC3B;QACF;QACA,IAAI6lE,GAAG,GAAG,IAAIzuD,WAAW,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,U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AI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxhD,IAAIuvD,KAAK,GAAG,IAAIvvD,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5hD,IAAIwvD,MAAM,GAAG,IAAIxvD,UAAU,CAAC,GAAG,CAAC;QAChC,KAAK,IAAIpW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,GAAG,EAAEA,CAAC,EAAE,EAAE;UAC5B,IAAIA,CAAC,GAAG,GAAG,EAAE;YACX4lE,MAAM,CAAC5lE,CAAC,CAAC,GAAGA,CAAC,IAAI,CAAC;UACpB,CAAC,MAAM;YACL4lE,MAAM,CAAC5lE,CAAC,CAAC,GAAGA,CAAC,IAAI,CAAC,GAAG,IAAI;UAC3B;QACF;QACA,IAAI6lE,GAAG,GAAG,IAAIzuD,WAAW,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EA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AE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;QACVA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACXA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;QACbA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK;QACfA,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK;QACfA,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK;QACfA,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK;QACfA,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK;QACfA,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK;QACfA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK;QACfA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;QACbA,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK;QACfA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;QACdA,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI;MAChB,CAAC,CAAC;MACF,IAAIw/E,oCAAoC,GAAG,CAAC,CAAC,EAAEzqF,KAAK,CAAC5kB,qBAAqB,EAAE,UAAU6vB,CAAC,EAAE;QACvFA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;QACZA,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;MACd,CAAC,CAAC;MACF9zB,OAAO,CAAC8kF,aAAa,GAAGA,aAAa;MACrC9kF,OAAO,CAACwzG,gBAAgB,GAAGA,gBAAgB;MAC3CxzG,OAAO,CAACykF,aAAa,GAAGA,aAAa;MACrCzkF,OAAO,CAACkmF,eAAe,GAAGA,eAAe;MACzClmF,OAAO,CAACuzG,2BAA2B,GAAGA,2BAA2B;MACjEvzG,OAAO,CAACszG,oCAAoC,GAAGA,oCAAoC;;MAEnF;IAAM,CAAC,EACP;IACA,KAAO,UAASrzG,MAAM,EAAED,OAAO,EAAEO,mBAAmB,EAAE;MAEtD,YAAY;;MAGZ,IAAI0D,qBAAqB,GAAG1D,mBAAmB,CAAC,CAAC,CAAC,CAAC0D,qBAAqB;MACxE,IAAIwvG,oBAAoB,GAAGxvG,qBAAqB,CAAC,UAAU6vB,CAAC,EAAE;QAC5DA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;QACjBA,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM;MACnB,CAAC,CAAC;MACF,SAAS4/E,uBAAuBA,CAAC5+F,IAAI,EAAE;QACrC,IAAIA,IAAI,IAAI,MAAM,IAAIA,IAAI,IAAI,MAAM,EAAE;UACpC,OAAO,CAAC;QACV,CAAC,MAAM,IAAIA,IAAI,IAAI,MAAM,IAAIA,IAAI,IAAI,MAAM,EAAE;UAC3C,OAAO2+F,oBAAoB,CAAC,CAAC,CAAC3+F,IAAI,CAAC,IAAIA,IAAI;QAC7C;QACA,OAAOA,IAAI;MACb;MACA,SAASqtE,kBAAkBA,CAACnhF,IAAI,EAAEkhF,gBAAgB,EAAE;QAClD,IAAI5D,OAAO,GAAG4D,gBAAgB,CAAClhF,IAAI,CAAC;QACpC,IAAIs9E,OAAO,KAAK93E,SAAS,EAAE;UACzB,OAAO83E,OAAO;QAChB;QACA,IAAI,CAACt9E,IAAI,EAAE;UACT,OAAO,CAAC,CAAC;QACX;QACA,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;UACnB,IAAI2yG,OAAO,GAAG3yG,IAAI,CAACgV,MAAM;YACrB49F,MAAM;UACV,IAAID,OAAO,KAAK,CAAC,IAAI3yG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACvD4yG,MAAM,GAAG5yG,IAAI,CAAC+3D,MAAM,CAAC,CAAC,CAAC;UACzB,CAAC,MAAM,IAAI46C,OAAO,IAAI,CAAC,IAAIA,OAAO,IAAI,CAAC,EAAE;YACvCC,MAAM,GAAG5yG,IAAI,CAAC+3D,MAAM,CAAC,CAAC,CAAC;UACzB,CAAC,MAAM;YACL,OAAO,CAAC,CAAC;UACX;UACA,IAAI66C,MAAM,KAAKA,MAAM,CAACC,WAAW,CAAC,CAAC,EAAE;YACnCv1B,OAAO,GAAG7lB,QAAQ,CAACm7C,MAAM,EAAE,EAAE,CAAC;YAC9B,IAAIt1B,OAAO,IAAI,CAAC,EAAE;cAChB,OAAOA,OAAO;YAChB;UACF;QACF;QACA,OAAO,CAAC,CAAC;MACX;MACA,IAAIw1B,aAAa,GAAG,CAAC;QACnB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;MACT,CAAC,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,K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BA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAA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,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,0BAA0B;QACxCA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,gBAAgB;QAC9BA,CAAC,CAAC,QAAQ,CAAC,GAAG,kCAAkC;QAChDA,CAAC,CAAC,QAAQ,CAAC,GAAG,4BAA4B;QAC1CA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU;QACxBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;QACnBA,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS;QACvBA,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClBA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,eAAe;QAC7BA,CAAC,CAAC,QAAQ,CAAC,GAAG,eAAe;QAC7BA,CAAC,CAAC,QAAQ,CAAC,GAAG,eAAe;QAC7BA,CAAC,CAAC,QAAQ,CAAC,GAAG,eAAe;QAC7BA,CAAC,CAAC,QAAQ,CAAC,GAAG,eAAe;QAC7BA,CAAC,CAAC,QAAQ,CAAC,GAAG,eAAe;QAC7BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,oBAAoB;QAClCA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG;QACjBA,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG;QACjBA,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG;QACjBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtBA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;QAC5BA,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc;MAC9B,CAAC,CAAC;MA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AAC;MAElC,IAAI8oI,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;MACl5C,IAAIC,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE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AAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,E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AE;QACL,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE;QACL,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE;QACL,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE;QACL,CAAC,CAAC,EAAE,CAAC;UACH7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC;UACJ6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC;UACJ6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC;UACJ6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC;UACJ6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC;UACJ6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC;UACJ6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE;QACL,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE;QACL,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE;QACL,CAAC,CAAC,EAAE,CAAC;UACH7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC;UACJ6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC;UACJ6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE,CAAC,CAAC;UACL6H,CAAC,EAAE,CAAC;QACN,CAAC,EAAE;UACD7H,CAAC,EAAE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C,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;UACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;UACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;UACbA,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;UACbA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;UACdA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI;UAChBA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;UACfA,CAAC,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"},"metadata":{},"sourceType":"script"}